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") }
ग्रूवी
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 भी आपकी बैनर विज्ञापन यूनिट के रीफ़्रेश रेट के आधार पर रीफ़्रेश ट्रिगर करता है.
अमेरिका के राज्यों के निजता कानून और जीडीपीआर
अगर आपको अमेरिका के निजता कानूनों या जनरल डेटा प्रोटेक्शन रेगुलेशन (जीडीपीआर) का पालन करना है, तो अमेरिका के कानूनों से जुड़ी सेटिंग या जीडीपीआर सेटिंग में दिया गया तरीका अपनाएं. इससे, AdMob की निजता और मैसेज सेवा में, अमेरिका के राज्यों या जीडीपीआर के विज्ञापन पार्टनर की सूची में, मीडिएशन पार्टनर जोड़े जा सकेंगे. ऐसा न करने पर, हो सकता है कि पार्टनर आपके ऐप्लिकेशन पर विज्ञापन न दिखा पाएं.
Google User Messaging Platform (UMP) SDK की मदद से, सीमित डेटा प्रोसेसिंग (आरडीपी) को चालू करने और जीडीपीआर के तहत सहमति लेने के बारे में ज़्यादा जानें.