इंप्रेशन-लेवल पर विज्ञापन से मिलने वाला रेवेन्यू

जब कोई इंप्रेशन मिलता है, तब Google Mobile Ads SDK (बीटा) उस इंप्रेशन से जुड़े विज्ञापन के रेवेन्यू का डेटा उपलब्ध कराता है. इस डेटा का इस्तेमाल, किसी उपयोगकर्ता की लाइफ़टाइम वैल्यू का हिसाब लगाने के लिए किया जा सकता है. इसके अलावा, इस डेटा को अन्य काम के सिस्टम में भी भेजा जा सकता है.

इस गाइड का मकसद, आपके Android ऐप्लिकेशन में इंप्रेशन-लेवल पर विज्ञापन से मिलने वाले रेवेन्यू का डेटा कैप्चर करने में आपकी मदद करना है.

ज़रूरी शर्तें

हर विज्ञापन फ़ॉर्मैट में onAdPaid इवेंट कॉलबैक होता है. विज्ञापन इवेंट के लाइफ़साइकल के दौरान, Google Mobile Ads SDK (बीटा वर्शन), इंप्रेशन इवेंट को मॉनिटर करता है. साथ ही, कमाई की वैल्यू के साथ हैंडलर को शुरू करता है.

यहां दिए गए उदाहरण में, इनाम वाले विज्ञापन के लिए पैसे चुकाकर किए जाने वाले इवेंट को मैनेज किया गया है:

Kotlin

ad.adEventCallback =
  object : RewardedAdEventCallback {
    override fun onAdPaid(adValue: AdValue) {
      // Send the impression-level ad revenue information to your
      // preferred analytics server directly within this callback.

      // Extract the impression-level ad revenue data.
      val valueMicros = adValue.valueMicros
      val currencyCode = adValue.currencyCode
      val precisionType = adValue.precisionType

      val loadedAdSourceResponseInfo = ad.getResponseInfo().loadedAdSourceResponseInfo
      val adSourceName = loadedAdSourceResponseInfo?.name
      val adSourceId = loadedAdSourceResponseInfo?.id
      val adSourceInstanceName = loadedAdSourceResponseInfo?.instanceName
      val adSourceInstanceId = loadedAdSourceResponseInfo?.instanceId
      val extras = ad.getResponseInfo().responseExtras
      val mediationGroupName = extras.getString("mediation_group_name")
      val mediationABTestName = extras.getString("mediation_ab_test_name")
      val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
    }
  }

Java

ad.setAdEventCallback(
    new RewardedAdEventCallback() {
      @Override
      public void onAdPaid(@NonNull AdValue value) {
        // Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.

        // Extract the impression-level ad revenue data.
        long valueMicros = value.getValueMicros();
        String currencyCode = value.getCurrencyCode();
        PrecisionType precisionType = value.getPrecisionType();

        AdSourceResponseInfo loadedAdSourceResponseInfo =
            ad.getResponseInfo().getLoadedAdSourceResponseInfo();
        String adSourceName = loadedAdSourceResponseInfo.getName();
        String adSourceId = loadedAdSourceResponseInfo.getId();
        String adSourceInstanceName = loadedAdSourceResponseInfo.getInstanceName();
        String adSourceInstanceId = loadedAdSourceResponseInfo.getInstanceId();

        Bundle extras = ad.getResponseInfo().getResponseExtras();
        String mediationGroupName = extras.getString("mediation_group_name");
        String mediationABTestName = extras.getString("mediation_ab_test_name");
        String mediationABTestVariant = extras.getString("mediation_ab_test_variant");
      }
    });

कस्टम इवेंट के विज्ञापन सोर्स के नाम की पहचान करना

कस्टम इवेंट विज्ञापन सोर्स के लिए, AdSourceResponseInfo.name प्रॉपर्टी, विज्ञापन सोर्स का नाम Custom event दिखाती है. अगर एक से ज़्यादा कस्टम इवेंट का इस्तेमाल किया जाता है, तो विज्ञापन सोर्स का नाम इतना सटीक नहीं होता कि एक से ज़्यादा कस्टम इवेंट के बीच अंतर किया जा सके. किसी कस्टम इवेंट का पता लगाने के लिए, यह तरीका अपनाएं:

  1. AdSourceResponseInfo.name प्रॉपर्टी की वैल्यू पाएं.
  2. विज्ञापन सोर्स का कोई यूनीक नाम सेट करें.

यहां दिए गए उदाहरण में, कस्टम इवेंट के लिए विज्ञापन सोर्स का यूनीक नाम सेट किया गया है:

Kotlin

private fun getUniqueAdSourceName(loadedAdapterResponseInfo: AdSourceResponseInfo): String {
  var adSourceName = loadedAdapterResponseInfo.name
  if (adSourceName == "Custom Event") {
    if (
      loadedAdapterResponseInfo.adapterClassName ==
        "com.google.ads.mediation.sample.customevent.SampleCustomEvent"
    ) {
      adSourceName = "Sample Ad Network (Custom Event)"
    }
  }
  return adSourceName
}

Java

private String getUniqueAdSourceName(@NonNull AdSourceResponseInfo loadedAdapterResponseInfo) {
  String adSourceName = loadedAdapterResponseInfo.getName();
  if (adSourceName.equals("Custom Event")) {
    if (loadedAdapterResponseInfo
        .getAdapterClassName()
        .equals("com.google.ads.mediation.sample.customevent.SampleCustomEvent")) {
      adSourceName = "Sample Ad Network (Custom Event)";
    }
  }
  return adSourceName;
}

विज्ञापन दिखाने के लिए चुने गए सोर्स के बारे में ज़्यादा जानने के लिए, विज्ञापन के जवाब के बारे में जानकारी पाना लेख पढ़ें.

ऐप्लिकेशन एट्रिब्यूशन पार्टनर (एएपी) इंटिग्रेशन

विज्ञापन से मिलने वाले रेवेन्यू के डेटा को आंकड़ों के प्लैटफ़ॉर्म पर फ़ॉरवर्ड करने के बारे में पूरी जानकारी के लिए, पार्टनर की गाइड देखें:

Partner SDK
Adjust
AppsFlyer
Singular
Tenjin

लागू करने के सबसे सही तरीके

  • विज्ञापन ऑब्जेक्ट बनाने या उसका ऐक्सेस पाने के तुरंत बाद लिसनर सेट करें. साथ ही, विज्ञापन दिखाने से पहले ऐसा ज़रूर करें. इससे यह पक्का किया जाता है कि आपसे किसी भी ऐसे इवेंट के कॉलबैक न छूटें जिनके लिए शुल्क लिया जाता है.
  • पैसे चुकाकर दिखाए जाने वाले इवेंट के कॉलबैक को कॉल किए जाने के समय, इंप्रेशन-लेवल पर विज्ञापन से मिलने वाले रेवेन्यू की जानकारी को अपने पसंदीदा Analytics सर्वर पर तुरंत भेजें. इससे यह पक्का होता है कि आपसे गलती से कोई भी कॉलबैक न छूटे. साथ ही, डेटा में अंतर आने से भी बचा जा सकता है.

AdValue

AdValue एक क्लास है. यह विज्ञापन से मिली मॉनेटरी वैल्यू को दिखाती है. इसमें वैल्यू का मुद्रा कोड और सटीक टाइप शामिल होता है. इसे इस तरह से कोड किया जाता है.

PrecisionType ब्यौरा
UNKNOWN विज्ञापन की ऐसी वैल्यू जिसकी जानकारी नहीं है. यह तब दिखता है, जब एलटीवी पिंगबैक की सुविधा चालू हो, लेकिन ज़रूरत के मुताबिक डेटा उपलब्ध न हो.
ESTIMATED कुल डेटा से ली गई अनुमानित विज्ञापन वैल्यू.
PUBLISHER_PROVIDED पब्लिशर की ओर से दी गई विज्ञापन वैल्यू, जैसे कि किसी मीडिएशन ग्रुप में मौजूद मैन्युअल सीपीएम.
PRECISE इस विज्ञापन के लिए चुकाए गए पैसे.

AdMob मीडिएशन के मामले में, AdMob उन विज्ञापन सोर्स के लिए ESTIMATED वैल्यू देने की कोशिश करता है जिन्हें ऑप्टिमाइज़ किया गया है. जिन विज्ञापन सोर्स को ऑप्टिमाइज़ नहीं किया गया है उनके लिए या ऐसे मामलों में जहां अनुमानित वैल्यू की रिपोर्टिंग के लिए, एग्रीगेट किया गया ज़रूरी डेटा उपलब्ध नहीं है वहां PUBLISHER_PROVIDED वैल्यू दिखाई जाती है.

बिडिंग विज्ञापन स्रोतों से मिले इंप्रेशन को टेस्ट करना

टेस्ट के अनुरोध के ज़रिए, बिडिंग वाले विज्ञापन सोर्स के लिए इंप्रेशन-लेवल पर विज्ञापन से मिलने वाले रेवेन्यू का इवेंट होने के बाद, आपको सिर्फ़ ये वैल्यू मिलती हैं:

  • UNKNOWN: यह सटीक होने के टाइप के बारे में बताता है.
  • 0: इससे विज्ञापन की वैल्यू का पता चलता है.

इससे पहले, आपको सटीक टाइप की वैल्यू UNKNOWN के अलावा कोई और वैल्यू दिख सकती थी. साथ ही, विज्ञापन की वैल्यू 0 से ज़्यादा दिख सकती थी.

टेस्ट विज्ञापन अनुरोध भेजने के बारे में जानकारी के लिए, टेस्ट डिवाइस चालू करना लेख पढ़ें.