अपने राजस्व स्रोतों को मापने से आपको अपने उपयोगकर्ताओं के जीवनकाल मूल्य को समझने और अपने ऐप व्यवसाय को बढ़ाने में मदद मिलती है। यह मार्गदर्शिका आपको दिखाती है कि अपने प्लेटफ़ॉर्म के लिए विज्ञापन राजस्व माप कैसे सेट करें।
विज्ञापन राजस्व माप सेट अप करने के बाद, आप निम्न में से कोई भी कार्य कर सकते हैं:
उन उपयोगकर्ता क्रियाओं का विश्लेषण करें जो आपके ऐप द्वारा उत्पन्न विज्ञापन राजस्व में योगदान करती हैं।
यह पता लगाने के लिए कि कौन सी सुविधाएं आपके ऐप विज्ञापन राजस्व में सुधार लाती हैं, फायरबेस ए/बी परीक्षण का उपयोग करके प्रयोग चलाएं, या रिमोट कॉन्फिग वैयक्तिकरण का उपयोग करके विज्ञापन अनुभवों को वैयक्तिकृत करें।
विज्ञापन राजस्व स्तरों के आधार पर फायरबेस रिमोट कॉन्फिग का उपयोग करके उपयोगकर्ता दर्शक बनाएं और उपयोगकर्ता अनुभव तैयार करें ।
शुरू करने से पहले
यदि आपने पहले से नहीं किया है, तो निम्नलिखित कार्यों को पूरा करना सुनिश्चित करें:
एनालिटिक्स के साथ आरंभ करें में वर्णित अनुसार अपना प्रोजेक्ट और ऐप सेट करें।
सुनिश्चित करें कि आपने अपना फायरबेस प्रोजेक्ट Google Analytics खाते से लिंक कर लिया है।
सुनिश्चित करें कि आपने अपने ऐप में 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
तीव्र
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, ]) } }
उद्देश्य सी
- (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); }
लौहस्रोत
तीव्र
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, ]) }
उद्देश्य सी
- (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 पूरे विकास चक्र में आपके कार्यान्वयन को मान्य करने के लिए कई सुविधाएँ प्रदान करता है।
डीबगव्यू
पहली बार अपने कार्यान्वयन का परीक्षण करते समय, कंसोल में अपना परीक्षणad_impression
डेटा देखने के लिए DebugView का उपयोग करें। जब आप एकad_impression
ईवेंट चुनते हैं, तो आप पैरामीटर पैनल (स्क्रीन के दाईं ओर) में भेजे जा रहे पैरामीटर की समीक्षा कर सकते हैं। इससे आपको यह पुष्टि करने में मदद मिलती है कि सही जानकारी संसाधित की जा रही है।रियल टाइम
एक बार जब आप अपना ऐप तैनात कर लें, तो यह पुष्टि करने के लिए Google Analytics रीयलटाइम रिपोर्ट का उपयोग करें कि कार्यान्वयन सही ढंग से काम कर रहा है। रीयलटाइम रिपोर्ट में, इवेंट नाम कार्ड द्वारा इवेंट गिनती देखें और पिछले 30 मिनट के इवेंट और पैरामीटर विवरण देखने के लिए ad_impression चुनें।बिगक्वेरी
एक या अधिक दिनों केad_impression
इवेंट का नमूना निकालने के लिए BigQuery निर्यात का उपयोग करें। शून्य या सेट न किए गए मान जैसे मुद्दों को देखने के लिए इस निकाले गए नमूने का उपयोग करें, और किसी भी अनचाहे उपयोग के मामलों के लिए अपने कोड में सुधार लागू करें।
अगले कदम
फायरबेस कंसोल में अपने एनालिटिक्स डैशबोर्ड पर या एनालिटिक्स कंसोल में अपनी लिंक की गई एनालिटिक्स प्रॉपर्टी पर जाएं। विज्ञापन राजस्व को प्रति उपयोगकर्ता औसत राजस्व (एआरपीयू) और आजीवन मूल्य (एलटीवी) जैसे मैट्रिक्स में शामिल किया जाता है।