अपने राजस्व स्रोतों को मापने से आपको अपने उपयोगकर्ताओं के आजीवन मूल्य को समझने और अपने ऐप व्यवसाय को बढ़ाने में मदद मिलती है। यह मार्गदर्शिका आपको दिखाती है कि अपने प्लेटफ़ॉर्म के लिए विज्ञापन आय माप कैसे सेट अप करें।
विज्ञापन आय मापन सेट अप करने के बाद, आप निम्न में से कोई भी कार्य कर सकते हैं:
उन उपयोगकर्ता क्रियाओं का विश्लेषण करें जो आपके ऐप द्वारा उत्पन्न विज्ञापन राजस्व में योगदान करती हैं।
यह पता लगाने के लिए कि आपके ऐप विज्ञापन राजस्व में कौन-सी विशेषताएं सुधार लाती हैं, Firebase A/B परीक्षण का उपयोग करके प्रयोग चलाएं, या Remote Config वैयक्तिकरण का उपयोग करके विज्ञापन अनुभवों को वैयक्तिकृत करें।
विज्ञापन राजस्व स्तरों के आधार पर Firebase Remote Config का उपयोग करके उपयोगकर्ता ऑडियंस और टेलर उपयोगकर्ता अनुभव बनाएं।
शुरू करने से पहले
यदि आपने पहले से नहीं किया है, तो निम्नलिखित कार्यों को पूरा करना सुनिश्चित करें:
एनालिटिक्स के साथ आरंभ करें में बताए अनुसार अपना प्रोजेक्ट और ऐप सेट अप करें।
सुनिश्चित करें कि आपने अपने Firebase प्रोजेक्ट को Google Analytics खाते से लिंक कर लिया है।
सुनिश्चित करें कि आपने अपने ऐप में Android SDK v17.6.0+ या Apple प्लेटफ़ॉर्म SDK v6.34.0+ शामिल किया है।
कार्यान्वयन
आप AdMob, AppLovin, और IronSource जैसे मुद्रीकरण प्लेटफ़ॉर्म के साथ विज्ञापन प्रदर्शित करने से उत्पन्न विज्ञापन राजस्व को मापने के लिए Google Analytics का उपयोग कर सकते हैं। विज्ञापन आय को मापने के लिए, जब भी आपका उपयोगकर्ता आपके ऐप में कोई विज्ञापन देखता है, तो आपको ad_impression
ईवेंट लॉग करना होगा। इन घटनाओं में विज्ञापन मंच, स्रोत, मुद्रा और मूल्य जैसे विवरण शामिल होते हैं।
AdMob
अगर आप AdMob प्लैटफ़ॉर्म का इस्तेमाल कर रहे हैं, तो अपने AdMob ऐप्लिकेशन को Firebase और Analytics से लिंक करें, ताकि विज्ञापन से होने वाली आय का अपने-आप आकलन किया जा सके. जब भी आपके उपयोगकर्ता कोई विज्ञापन इंप्रेशन देखते हैं, Google Analytics के लिए Firebase SDK स्वचालित रूप से ad_impression
ईवेंट लॉग करता है।
अन्य विज्ञापन मुद्रीकरण प्लेटफ़ॉर्म
AppLovin और IronSource जैसे प्लेटफ़ॉर्म इंप्रेशन-स्तरीय राजस्व डेटा प्रदान करते हैं, जिसका उपयोग आप तब 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); }
IronSource
तीव्र
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
पैरामीटर ( iOS+ | Android | Unity ) को तीन-अक्षर वाले ISO_4217 प्रारूप (उदाहरण के लिए, "USD"
) में एक स्ट्रिंग के रूप में भेजा जाना चाहिए। कुछ विज्ञापन मुद्रीकरण प्लेटफ़ॉर्म मुद्रा को छोड़ देते हैं, जिसके लिए आपको पैरामीटर को हार्डकोड करने की आवश्यकता हो सकती है।
मान पैरामीटर
value
पैरामीटर ( iOS+ | Android | Unity ) दशमलव विभाजक के रूप में डॉट का उपयोग करके भेजा जाना चाहिए। ऊपर आवश्यक प्रारूप में फिट करने के लिए आपको कुछ प्लेटफॉर्म से प्राप्त मूल्यों को बदलने की आवश्यकता हो सकती है। कुछ प्लेटफ़ॉर्म संख्यात्मक स्वरूपों का स्थानीयकरण करते हैं और अल्पविरामों को दशमलव विभाजक के रूप में उपयोग करते हैं। कुछ मामलों में, हो सकता है कि कोई प्लैटफ़ॉर्म बिल्कुल भी वैल्यू न भेजे।
इसके अतिरिक्त, मान एक संख्यात्मक प्रकार होना चाहिए जैसे कि दोहरा या लंबा। उदाहरण के लिए, 1000.01
, 0.001
और 1.00
सभी मान्य हैं
मान्यकरण
विकास चक्र के दौरान आपके कार्यान्वयन को सत्यापित करने के लिए Google Analytics कई सुविधाएँ प्रदान करता है।
डिबग व्यू
पहली बार अपने कार्यान्वयन का परीक्षण करते समय, कंसोल में अपना परीक्षणad_impression
डेटा देखने के लिए DebugView का उपयोग करें. जब आप कोईad_impression
ईवेंट चुनते हैं, तो आप पैरामीटर पैनल (स्क्रीन के दाईं ओर) में भेजे जा रहे पैरामीटर की समीक्षा कर सकते हैं. इससे आपको यह पुष्टि करने में मदद मिलती है कि सही जानकारी संसाधित की जा रही है।रियल टाइम
एक बार जब आप अपना ऐप परिनियोजित कर लेते हैं, तो यह पुष्टि करने के लिए कि कार्यान्वयन ठीक से काम कर रहा है, Google Analytics रीयलटाइम रिपोर्ट का उपयोग करें। रीयलटाइम रिपोर्ट में, ईवेंट नाम कार्ड द्वारा ईवेंट गणना देखें और पिछले 30 मिनट के लिए ईवेंट और पैरामीटर विवरण देखने के लिए ad_impression चुनें.BigQuery
एक या अधिक दिनों केad_impression
ईवेंट का नमूना निकालने के लिए BigQuery निर्यात का उपयोग करें. इस निकाले गए नमूने का उपयोग मुद्दों को देखने के लिए करें, जैसे कि शून्य या सेट मान नहीं, और किसी भी अनहेल्दी उपयोग के मामलों के लिए अपने कोड में सुधार लागू करें।
अगले कदम
Firebase कंसोल में या Analytics कंसोल में अपनी लिंक की गई Analytics प्रॉपर्टी में अपने Analytics डैशबोर्ड पर जाएं. विज्ञापन आय को मेट्रिक्स में शामिल किया जाएगा, जैसे औसत राजस्व प्रति उपयोगकर्ता (एआरपीयू) और ग्राहक लाइफटाइम वैल्यू (एलटीवी)।