विज्ञापन राजस्व मापें

अपने राजस्व स्रोतों को मापने से आपको अपने उपयोगकर्ताओं के जीवनकाल मूल्य को समझने और अपने ऐप व्यवसाय को बढ़ाने में मदद मिलती है। यह मार्गदर्शिका आपको दिखाती है कि अपने प्लेटफ़ॉर्म के लिए विज्ञापन राजस्व माप कैसे सेट करें।

विज्ञापन राजस्व माप सेट अप करने के बाद, आप निम्न में से कोई भी कार्य कर सकते हैं:

शुरू करने से पहले

यदि आपने पहले से नहीं किया है, तो निम्नलिखित कार्यों को पूरा करना सुनिश्चित करें:

  1. एनालिटिक्स के साथ आरंभ करें में वर्णित अनुसार अपना प्रोजेक्ट और ऐप सेट करें।

  2. सुनिश्चित करें कि आपने अपना फायरबेस प्रोजेक्ट Google Analytics खाते से लिंक कर लिया है।

  3. सुनिश्चित करें कि आपने अपने ऐप में Android SDK v17.6.0+ या Apple प्लेटफ़ॉर्म SDK v6.34.0+ शामिल किया है।

कार्यान्वयन

आप AdMob, AppLovin और आयरनसोर्स जैसे मुद्रीकरण प्लेटफ़ॉर्म पर विज्ञापन प्रदर्शित करने से उत्पन्न विज्ञापन राजस्व को मापने के लिए Google Analytics का उपयोग कर सकते हैं। विज्ञापन राजस्व मापने के लिए, जब भी आपका उपयोगकर्ता आपके ऐप में कोई विज्ञापन देखे तो आपको ad_impression इवेंट लॉग करना होगा। इन ईवेंट में विज्ञापन प्लेटफ़ॉर्म, स्रोत, मुद्रा और मूल्य जैसे विवरण शामिल हैं।

AdMob

यदि आप AdMob प्लेटफ़ॉर्म का उपयोग कर रहे हैं, तो विज्ञापन राजस्व के स्वचालित माप को सक्षम करने के लिए अपने AdMob ऐप को Firebase और Analytics से लिंक करें । जब भी आपके उपयोगकर्ता कोई विज्ञापन इंप्रेशन देखते हैं तो Google Analytics के लिए Firebase SDK स्वचालित रूप से ad_impression ईवेंट लॉग करता है।

अन्य विज्ञापन मुद्रीकरण प्लेटफ़ॉर्म

AppLovin और आयरनसोर्स जैसे प्लेटफ़ॉर्म इंप्रेशन-स्तरीय राजस्व डेटा प्रदान करते हैं जिसका उपयोग आप Google Analytics ad_impression ईवेंट लॉग करने के लिए कर सकते हैं।

निम्नलिखित अनुभाग कुछ अलग-अलग विज्ञापन मुद्रीकरण प्लेटफार्मों के लिए कार्यान्वयन उदाहरण दिखाते हैं।

AppLovin

तीव्र

नोट: यह फायरबेस उत्पाद macOS लक्ष्य पर उपलब्ध नहीं है।
func didPayRevenue(_ impressionData: MAAd?) {
  if let impressionData = impressionData {
    Analytics.logEvent(
      AnalyticsEventAdImpression,
      parameters: [
        AnalyticsParameterAdPlatform: "AppLovin",
        AnalyticsParameterAdUnitName: impressionData.adUnitIdentifier,
        AnalyticsParameterAdFormat: impressionData.format,
        AnalyticsParameterValue: impressionData.revenue,
        AnalyticsParameterCurrency: "USD",  // All Applovin revenue is sent in USD
        AnalyticsParameterAdSource: impressionData.networkName,
      ])
  }
}

उद्देश्य सी

नोट: यह फायरबेस उत्पाद macOS लक्ष्य पर उपलब्ध नहीं है।
- (void)didPayRevenueForAd:(MAAd *)impressionData {
    [FIRAnalytics logEventWithName:kFIREventAdImpression
                    parameters: @{
                        kFIRParameterAdPlatform: @"AppLovin",
                        kFIRParameterAdSource: impressionData.networkName,
                        kFIRParameterAdFormat: impressionData.format,
                        kFIRParameterAdUnitName: impressionData.adUnitIdentifier,
                        kFIRParameterCurrency: @"USD", // All Applovin revenue is sent in USD
                        kFIRParameterValue: impressionData.revenue
                    }];
}

Kotlin+KTX

override fun onAdRevenuePaid(impressionData: MaxAd?) {
    impressionData?.let {
        firebaseAnalytics = Firebase.analytics
        firebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION) {
            param(FirebaseAnalytics.Param.AD_PLATFORM, "appLovin")
            param(FirebaseAnalytics.Param.AD_UNIT_NAME, impressionData.adUnitId)
            param(FirebaseAnalytics.Param.AD_FORMAT, impressionData.format.label)
            param(FirebaseAnalytics.Param.AD_SOURCE, impressionData.networkName)
            param(FirebaseAnalytics.Param.VALUE, impressionData.revenue)
            param(FirebaseAnalytics.Param.CURRENCY, "USD") // All Applovin revenue is sent in USD
        }
    }
}

Java

@Override
public void onAdRevenuePaid(MaxAd impressionData) {

    double revenue = impressionData.getRevenue(); // In USD

    mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
    Bundle params = new Bundle();
    params.putString(FirebaseAnalytics.Param.AD_PLATFORM, "appLovin");
    params.putString(FirebaseAnalytics.Param.AD_SOURCE, impressionData.getNetworkName());
    params.putString(FirebaseAnalytics.Param.AD_FORMAT, impressionData.getFormat().getLabel());
    params.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, impressionData.getAdUnitId());
    params.putDouble(FirebaseAnalytics.Param.VALUE, revenue);
    params.putString(FirebaseAnalytics.Param.CURRENCY, "USD"); // All Applovin revenue is sent in USD
    mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, params);
}

एकता

// Attach callbacks based on the ad format(s) you are using
MaxSdkCallbacks.Interstitial.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;
MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;
MaxSdkCallbacks.Banner.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;
MaxSdkCallbacks.MRec.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent;
private void OnAdRevenuePaidEvent(string adUnitId, MaxSdkBase.AdInfo impressionData)
{
double revenue = impressionData.Revenue;
var impressionParameters = new[] {
  new Firebase.Analytics.Parameter("ad_platform", "AppLovin"),
  new Firebase.Analytics.Parameter("ad_source", impressionData.NetworkName),
  new Firebase.Analytics.Parameter("ad_unit_name", impressionData.AdUnitIdentifier),
  new Firebase.Analytics.Parameter("ad_format", impressionData.AdFormat),
  new Firebase.Analytics.Parameter("value", revenue),
  new Firebase.Analytics.Parameter("currency", "USD"), // All AppLovin revenue is sent in USD
};
Firebase.Analytics.FirebaseAnalytics.LogEvent("ad_impression", impressionParameters);
}

लौहस्रोत

तीव्र

नोट: यह फायरबेस उत्पाद macOS लक्ष्य पर उपलब्ध नहीं है।
func impressionDataDidSucceed(_ impressionData: ISImpressionData!) {
  Analytics.logEvent(
    AnalyticsEventAdImpression,
    parameters: [
      AnalyticsParameterAdPlatform: "ironSource",
      AnalyticsParameterAdSource: impressionData.ad_network ?? "No ad_network",
      AnalyticsParameterAdFormat: impressionData.ad_unit ?? "No ad_unit",
      AnalyticsParameterAdUnitName: impressionData.instance_name ?? "No instance_name",
      AnalyticsParameterCurrency: "USD",
      AnalyticsParameterValue: impressionData.revenue ?? 0,
    ])
}

उद्देश्य सी

नोट: यह फायरबेस उत्पाद macOS लक्ष्य पर उपलब्ध नहीं है।
- (void)impressionDataDidSucceed:(ISImpressionData *)impressionData {
  [FIRAnalytics logEventWithName:kFIREventAdImpression
                      parameters:@{
                        kFIRParameterAdPlatform: @"ironSource",
                        kFIRParameterAdSource: impressionData.ad_network,
                        kFIRParameterAdFormat: impressionData.ad_unit,
                        kFIRParameterAdUnitName: impressionData.instance_name,
                        kFIRParameterCurrency: @"USD",
                        kFIRParameterValue: impressionData.revenue
                      }];
}

Kotlin+KTX

override fun onImpressionSuccess(impressionData: ImpressionData) {
    // The onImpressionSuccess will be reported when the rewarded video and interstitial ad is
    // opened.
    // For banners, the impression is reported on load success. Log.d(TAG, "onImpressionSuccess" +
    // impressionData)
    firebaseAnalytics = Firebase.analytics
    firebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION) {
        param(FirebaseAnalytics.Param.AD_PLATFORM, "ironSource")
        param(FirebaseAnalytics.Param.AD_SOURCE, impressionData.adNetwork)
        param(FirebaseAnalytics.Param.AD_FORMAT, impressionData.adUnit)
        param(FirebaseAnalytics.Param.AD_UNIT_NAME, impressionData.instanceName)
        param(FirebaseAnalytics.Param.CURRENCY, "USD")
        param(FirebaseAnalytics.Param.VALUE, impressionData.revenue)
    }
}

Java

@Override
public void onImpressionSuccess(ImpressionData impressionData) {
    // The onImpressionSuccess will be reported when the rewarded video and interstitial ad is opened.
    // For banners, the impression is reported on load success. Log.d(TAG, "onImpressionSuccess" + impressionData);
    mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
    if (impressionData != null) {
        Bundle bundle = new Bundle();
        bundle.putString(FirebaseAnalytics.Param.AD_PLATFORM, "ironSource");
        bundle.putString(FirebaseAnalytics.Param.AD_SOURCE, impressionData.getAdNetwork());
        bundle.putString(FirebaseAnalytics.Param.AD_FORMAT, impressionData.getAdUnit());
        bundle.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, impressionData.getInstanceName());
        bundle.putString(FirebaseAnalytics.Param.CURRENCY, "USD");
        bundle.putDouble(FirebaseAnalytics.Param.VALUE, impressionData.getRevenue());
        mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, bundle);
    }
}

एकता

private void ImpressionSuccessEvent(IronSourceImpressionData impressionData) {
  if (impressionData != null) {
      Firebase.Analytics.Parameter[] AdParameters = {
        new Firebase.Analytics.Parameter("ad_platform", "ironSource"),
        new Firebase.Analytics.Parameter("ad_source", impressionData.adNetwork),
        new Firebase.Analytics.Parameter("ad_unit_name", impressionData.getInstanceName),
        new Firebase.Analytics.Parameter("ad_format", impressionData.getAdUnit),
        new Firebase.Analytics.Parameter("currency","USD"),
        new Firebase.Analytics.Parameter("value", impressionData.getRevenue)
      };
      Firebase.Analytics.FirebaseAnalytics.LogEvent("ad_impression", AdParameters);
  }
}

कार्यान्वयन संबंधी विचार

Google Ads को आपके ad_impression संसाधित करने की अनुमति देने के लिए, currency और value पैरामीटर (नीचे वर्णित) दोनों को शामिल करना सुनिश्चित करें। उपयोगकर्ताओं को अधिक या कम मूल्य देने से रोकने के लिए दोनों पैरामीटर यथासंभव सटीक होने चाहिए।

मुद्रा पैरामीटर

currency पैरामीटर ( आईओएस+ | एंड्रॉइड | यूनिटी ) को तीन-अक्षर ISO_4217 प्रारूप में एक स्ट्रिंग के रूप में भेजा जाना चाहिए (उदाहरण के लिए, "USD" )। कुछ विज्ञापन मुद्रीकरण प्लेटफ़ॉर्म मुद्रा को हटा देते हैं, जिसके लिए आपको पैरामीटर को हार्डकोड करने की आवश्यकता हो सकती है।

मान पैरामीटर

value पैरामीटर ( आईओएस+ | एंड्रॉइड | यूनिटी ) को दशमलव विभाजक के रूप में एक बिंदु का उपयोग करके भेजा जाना चाहिए। आपको उपरोक्त आवश्यक प्रारूप में फिट होने के लिए कुछ प्लेटफ़ॉर्म से प्राप्त मानों को बदलने की आवश्यकता हो सकती है। कुछ प्लेटफ़ॉर्म संख्यात्मक प्रारूपों को स्थानीयकृत करते हैं और दशमलव विभाजक के रूप में अल्पविराम का उपयोग करते हैं। कुछ मामलों में, कोई प्लेटफ़ॉर्म बिल्कुल भी मूल्य नहीं भेज सकता है।

इसके अतिरिक्त, मान संख्यात्मक प्रकार का होना चाहिए जैसे कि डबल या लॉन्ग। उदाहरण के लिए, 1000.01 , 0.001 और 1.00 सभी मान्य हैं

मान्यकरण

Google Analytics पूरे विकास चक्र में आपके कार्यान्वयन को मान्य करने के लिए कई सुविधाएँ प्रदान करता है।

  1. डीबगव्यू
    पहली बार अपने कार्यान्वयन का परीक्षण करते समय, कंसोल में अपना परीक्षण ad_impression डेटा देखने के लिए DebugView का उपयोग करें। जब आप एक ad_impression ईवेंट चुनते हैं, तो आप पैरामीटर पैनल (स्क्रीन के दाईं ओर) में भेजे जा रहे पैरामीटर की समीक्षा कर सकते हैं। इससे आपको यह पुष्टि करने में मदद मिलती है कि सही जानकारी संसाधित की जा रही है।

  2. रियल टाइम
    एक बार जब आप अपना ऐप तैनात कर लें, तो यह पुष्टि करने के लिए Google Analytics रीयलटाइम रिपोर्ट का उपयोग करें कि कार्यान्वयन सही ढंग से काम कर रहा है। रीयलटाइम रिपोर्ट में, इवेंट नाम कार्ड द्वारा इवेंट गिनती देखें और पिछले 30 मिनट के इवेंट और पैरामीटर विवरण देखने के लिए ad_impression चुनें।

  3. बिगक्वेरी
    एक या अधिक दिनों के ad_impression इवेंट का नमूना निकालने के लिए BigQuery निर्यात का उपयोग करें। शून्य या सेट न किए गए मान जैसे मुद्दों को देखने के लिए इस निकाले गए नमूने का उपयोग करें, और किसी भी अनचाहे उपयोग के मामलों के लिए अपने कोड में सुधार लागू करें।

अगले कदम

फायरबेस कंसोल में अपने एनालिटिक्स डैशबोर्ड पर या एनालिटिक्स कंसोल में अपनी लिंक की गई एनालिटिक्स प्रॉपर्टी पर जाएं। विज्ञापन राजस्व को प्रति उपयोगकर्ता औसत राजस्व (एआरपीयू) और आजीवन मूल्य (एलटीवी) जैसे मैट्रिक्स में शामिल किया जाता है।