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

प्लैटफ़ॉर्म चुनें: Android iOS Unity

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

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

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

  • Google Mobile Ads SDK 21.1.0 या इसके बाद का वर्शन इंपोर्ट करें.

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

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

Java

private void setOnPaidEventListener(RewardedAd ad) {
  ad.setOnPaidEventListener(
      new OnPaidEventListener() {
        @Override
        public void onPaidEvent(@NonNull AdValue adValue) {
          // Extract the impression-level ad revenue data.
          long valueMicros = adValue.getValueMicros();
          String currencyCode = adValue.getCurrencyCode();
          int precision = adValue.getPrecisionType();

          // Get the ad unit ID.
          String adUnitId = ad.getAdUnitId();

          // Extract ad response information.
          AdapterResponseInfo loadedAdapterResponseInfo =
              ad.getResponseInfo().getLoadedAdapterResponseInfo();
          if (loadedAdapterResponseInfo != null) {
            String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
            String adSourceId = loadedAdapterResponseInfo.getAdSourceId();
            String adSourceInstanceName = loadedAdapterResponseInfo.getAdSourceInstanceName();
            String adSourceInstanceId = loadedAdapterResponseInfo.getAdSourceInstanceId();

            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");
          }
        }
      });
}

Kotlin

private fun setOnPaidEventListener(ad: RewardedAd) {
  ad.onPaidEventListener = OnPaidEventListener { adValue ->
    // Extract the impression-level ad revenue data.
    val valueMicros = adValue.valueMicros
    val currencyCode = adValue.currencyCode
    val precision = adValue.precisionType

    // Get the ad unit ID.
    val adUnitId = ad.adUnitId

    // Extract ad response information.
    val loadedAdapterResponseInfo = ad.responseInfo.loadedAdapterResponseInfo
    val adSourceName = loadedAdapterResponseInfo?.adSourceName
    val adSourceId = loadedAdapterResponseInfo?.adSourceId
    val adSourceInstanceName = loadedAdapterResponseInfo?.adSourceInstanceName
    val adSourceInstanceId = loadedAdapterResponseInfo?.adSourceInstanceId
    val extras = ad.responseInfo.responseExtras
    val mediationGroupName = extras.getString("mediation_group_name")
    val mediationABTestName = extras.getString("mediation_ab_test_name")
    val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
  }
}

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

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

  1. getAdSourceName() तरीके को कॉल करें.
  2. विज्ञापन सोर्स का कोई यूनीक नाम सेट करें.

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

Java

private String getUniqueAdSourceName(@NonNull AdapterResponseInfo loadedAdapterResponseInfo) {

  String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
  if (adSourceName.equals("Custom Event")) {
    if (loadedAdapterResponseInfo
        .getAdapterClassName()
        .equals("com.google.ads.mediation.sample.customevent.SampleCustomEvent")) {
      adSourceName = "Sample Ad Network (Custom Event)";
    }
  }
  return adSourceName;
}

Kotlin

private fun getUniqueAdSourceName(loadedAdapterResponseInfo: AdapterResponseInfo): String {

  var adSourceName = loadedAdapterResponseInfo.adSourceName
  if (adSourceName == "Custom Event") {
    if (
      loadedAdapterResponseInfo.adapterClassName ==
        "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 से ज़्यादा दिख सकती थी.

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