AdMob मीडिएशन (अलग-अलग नेटवर्क से विज्ञापन दिखाना) की सुविधा की मदद से, अपने ऐप्लिकेशन पर कई सोर्स से विज्ञापन दिखाए जा सकते हैं. इनमें AdMob नेटवर्क और तीसरे पक्ष के विज्ञापन सोर्स शामिल हैं. AdMob मीडिएशन की मदद से, कई नेटवर्क को विज्ञापन अनुरोध भेजे जाते हैं, ताकि यह पक्का किया जा सके कि विज्ञापन दिखाने के लिए आपको सबसे अच्छी विज्ञापन नेटवर्क कंपनी मिल जाए. इससे, फ़िल रेट और कमाई बढ़ती है. केस स्टडी.
ज़रूरी शर्तें
किसी विज्ञापन फ़ॉर्मैट के लिए मीडिएशन को इंटिग्रेट करने से पहले, आपको उस विज्ञापन फ़ॉर्मैट को अपने ऐप्लिकेशन में इंटिग्रेट करना होगा:
- बैनर विज्ञापन
- इंटरस्टीशियल विज्ञापन
- नेटिव विज्ञापन
- इनाम वाले विज्ञापन
- इनाम वाले इंटरस्टीशियल विज्ञापन
क्या आपको मीडिएशन के बारे में पता नहीं है? AdMob मीडिएशन के बारे में खास जानकारी पढ़ें.
Google Mobile Ads SDK (बीटा वर्शन) को सेटअप करना
क्विक स्टार्ट गाइड में, Google Mobile Ads 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 Google Mobile Ads SDK (beta) 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 Google Mobile Ads SDK (beta) 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 (बीटा वर्शन) पर काम करते रहेंगे. हालांकि, Google Mobile Ads SDK (बीटा) में, मीडिएशन अडैप्टर के लिए ज़रूरी सभी क्लास शामिल हैं. डुप्लीकेट सिंबल से जुड़ी कंपाइलर की गड़बड़ियों से बचने के लिए, आपको मौजूदा Google Mobile Ads SDK (बीटा) को मीडिएशन अडैप्टर की डिपेंडेंसी के तौर पर पुल किए जाने से रोकना होगा.
अपने ऐप्लिकेशन-लेवल की build.gradle
फ़ाइल में, play-services-ads
और play-services-ads-lite
, दोनों मॉड्यूल को सभी डिपेंडेंसी से ग्लोबल तौर पर हटाएं.
configurations {
all {
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 की मदद से, जीडीपीआर के तहत सहमति लेने के बारे में ज़्यादा जानें.