AdMob मीडिएशन (अलग-अलग नेटवर्क से विज्ञापन दिखाना) सेट अप करना

प्लैटफ़ॉर्म चुनें: Android iOS Unity Flutter Android (लेगसी)

AdMob मीडिएशन (अलग-अलग नेटवर्क से विज्ञापन दिखाना) की सुविधा की मदद से, अपने ऐप्लिकेशन पर कई सोर्स से विज्ञापन दिखाए जा सकते हैं. इनमें AdMob नेटवर्क और तीसरे पक्ष के विज्ञापन सोर्स शामिल हैं. AdMob मीडिएशन की मदद से, कई नेटवर्क को विज्ञापन अनुरोध भेजे जाते हैं, ताकि यह पक्का किया जा सके कि विज्ञापन दिखाने के लिए आपको सबसे अच्छी विज्ञापन नेटवर्क कंपनी मिल जाए. इससे, फ़िल रेट और कमाई बढ़ती है. केस स्टडी.

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

किसी विज्ञापन फ़ॉर्मैट के लिए मीडिएशन को इंटिग्रेट करने से पहले, आपको उस विज्ञापन फ़ॉर्मैट को अपने ऐप्लिकेशन में इंटिग्रेट करना होगा:

क्या आपके लिए मीडिएशन नया है? AdMob मीडिएशन के बारे में खास जानकारी पढ़ें.

GMA Next-Gen SDK को शुरू करना

आसानी से सिखाने वाली गाइड में, को शुरू करने का तरीका बताया गया है GMA Next-Gen SDK. शुरू करने के लिए किए जाने वाले कॉल के दौरान, मीडिएशन अडैप्टर भी शुरू हो जाते हैं. विज्ञापन लोड करने से पहले, शुरू करने की प्रोसेस पूरी होने का इंतज़ार करना ज़रूरी है. इससे यह पक्का किया जा सकेगा कि पहले विज्ञापन दिखाने के अनुरोध पर, हर विज्ञापन नेटवर्क कंपनी पूरी तरह से हिस्सा ले.

यहां दिए गए सैंपल कोड में, यह दिखाया गया है कि विज्ञापन का अनुरोध करने से पहले, हर अडैप्टर का शुरू होने का स्टेटस कैसे देखा जा सकता है.

Kotlin

import com.google.android.libraries.ads.mobile.sdk.MobileAds
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val backgroundScope = CoroutineScope(Dispatchers.IO)
    backgroundScope.launch {
      // Initialize GMA Next-Gen SDK on a background thread.
      MobileAds.initialize(this@MainActivity, InitializationConfig.Builder("SAMPLE_APP_ID").build()) {
        initializationStatus ->
        for ((adapterName, adapterStatus) in initializationStatus.adapterStatusMap) {
          Log.d(
            "MyApp",
            String.format(
              "Adapter name: %s, Status code: %s, Status string: %s, Latency: %d",
              adapterName,
              adapterStatus.initializationState,
              adapterStatus.description,
              adapterStatus.latency,
            ),
          )
        }
        // Adapter initialization is complete.
      }
      // Other methods on MobileAds can now be called.
    }
  }
}

Java

import com.google.android.libraries.ads.mobile.sdk.MobileAds;
import com.google.android.libraries.ads.mobile.sdk.initialization.AdapterStatus;
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig;

public class MainActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    new Thread(
            () -> {
              // Initialize GMA Next-Gen SDK on a background thread.
              MobileAds.initialize(
                  this,
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    Map<String, AdapterStatus> adapterStatusMap =
                        initializationStatus.getAdapterStatusMap();
                    for (String adapterClass : adapterStatusMap.keySet()) {
                      AdapterStatus adapterStatus = adapterStatusMap.get(adapterClass);
                      Log.d(
                          "MyApp",
                          String.format(
                              "Adapter name: %s, Status code: %s, Status description: %s,"
                                  + " Latency: %d",
                              adapterClass,
                              adapterStatus.getInitializationState(),
                              adapterStatus.getDescription(),
                              adapterStatus.getLatency()));
                    }
                    // Adapter initialization is complete.
                  });
              // Other methods on MobileAds can now be called.
            })
        .start();
  }
}

मीडिएशन इंटिग्रेशन में, com.google.android.gms मॉड्यूल शामिल न करें

मीडिएशन अडैप्टर, अब भी Google Mobile Ads SDK (Legacy) पर निर्भर करते हैं. हालांकि ,GMA Next-Gen SDK में, मीडिएशन अडैप्टर के लिए ज़रूरी सभी क्लास शामिल हैं. डुप्लीकेट सिंबल से जुड़ी कंपाइल गड़बड़ियों से बचने के लिए, आपको Google Mobile Ads SDK (Legacy) को मीडिएशन अडैप्टर की डिपेंडेंसी के तौर पर शामिल नहीं करना चाहिए.

अपने ऐप्लिकेशन के लेवल वाली build.gradle फ़ाइल में, सभी डिपेंडेंसी से play-services-ads और play-services-ads-lite दोनों मॉड्यूल को दुनिया भर में शामिल न करें:

Kotlin

configurations.configureEach {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}

Groovy

configurations.configureEach {
    exclude group: "com.google.android.gms", module: "play-services-ads"
    exclude group: "com.google.android.gms", module: "play-services-ads-lite"
}

देखें कि किस विज्ञापन नेटवर्क अडैप्टर क्लास ने विज्ञापन लोड किया है

यहां कुछ सैंपल कोड दिया गया है. इससे बैनर विज्ञापन के लिए, विज्ञापन नेटवर्क क्लास का नाम लॉग किया जाता है:

Kotlin

BannerAd.load(
  BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
  object : AdLoadCallback<BannerAd> {
    override fun onAdLoaded(ad: BannerAd) {
      Log.d(
        "MyApp", "Adapter class name: " +
          ad.getResponseInfo().mediationAdapterClassName
      )
    }
  }
)

Java

BannerAd.load(
  new BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
  new AdLoadCallback<BannerAd>() {
    @Override
    public void onAdLoaded(@NonNull BannerAd ad) {
      Log.d("MyApp",
          "Adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
    }
  }
);

पक्का करें कि AdMob मीडिएशन में इस्तेमाल की जाने वाली बैनर विज्ञापन यूनिट के लिए, तीसरे पक्ष के सभी विज्ञापन सोर्स के यूज़र इंटरफ़ेस (यूआई) में रीफ़्रेश की सुविधा बंद हो. इससे दो बार रीफ़्रेश होने से बचा जा सकेगा, क्योंकि AdMob भी आपकी बैनर विज्ञापन यूनिट की रीफ़्रेश दर के हिसाब से रीफ़्रेश ट्रिगर करता है.

अमेरिका के राज्यों के निजता कानून और जीडीपीआर

अगर आपको अमेरिका के राज्यों के निजता कानूनों या सामान्य डेटा से जुड़े सुरक्षा कानून (जनरल डेटा प्रोटेक्शन रेगुलेशन) का पालन करना है, तो अमेरिका के राज्यों के कानूनों की सेटिंग या जीडीपीआर की सेटिंग में दिए गए चरणों को फ़ॉलो करें. इससे, AdMob में निजता और मैसेज सेवा के अमेरिका के राज्यों या जीडीपीआर के विज्ञापन पार्टनर की सूची में, अपने मीडिएशन पार्टनर जोड़े जा सकेंगे. ऐसा न करने पर, पार्टनर आपके ऐप्लिकेशन पर विज्ञापन नहीं दिखा पाएंगे.

सीमित डेटा प्रोसेसिंग (आरडीपी) की सुविधा चालू करने और Google User Messaging Platform (UMP) SDK की मदद से, जीडीपीआर के तहत सहमति पाने के बारे में ज़्यादा जानें.