La mediazione AdMob è una funzionalità che ti consente di erogare annunci nelle tue app da più origini, tra cui la Rete AdMob e le origini pubblicitarie di terze parti, in un unico posto. Mediazione AdMob aiuta a massimizzare il tasso di riempimento e ad aumentare la monetizzazione inviando richieste di annunci a più reti per verificare di trovare la migliore rete disponibile per pubblicare annunci. Case study.
Prerequisiti
Prima di poter integrare la mediazione per un formato annuncio, devi integrare il formato annuncio nella tua app:
- Annunci banner
- Annunci interstitial
- Annunci nativi
- Annunci con premio
- Annunci interstitial con premio
Non hai mai utilizzato la mediazione? Leggi la panoramica di Mediazione AdMob.
Inizializza GMA Next-Gen SDK
La guida rapida mostra come inizializzare GMA Next-Gen SDK. Durante la chiamata di inizializzazione, vengono inizializzati anche gli adattatori di mediazione. È importante attendere il completamento dell'inizializzazione prima di caricare gli annunci per verificare la partecipazione completa di ogni rete pubblicitaria alla prima richiesta di annunci.
Il seguente codice campione mostra come controllare lo stato di inizializzazione di ogni adattatore prima di effettuare una richiesta di annuncio.
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();
}
}
Escludere i moduli com.google.android.gms nelle integrazioni di mediazione
Gli adattatori di mediazione continuano a dipendere dall'attuale Google Mobile Ads SDK. Tuttavia ,GMA Next-Gen SDK include tutte le classi richieste dagli adattatori di mediazione. Per evitare errori di compilazione relativi a simboli duplicati, devi impedire che il attuale Google Mobile Ads SDK venga estratto come dipendenza dagli adattatori di mediazione.
Nel file build.gradle a livello di app, escludi i moduli play-services-ads e
play-services-ads-lite a livello globale da tutte le dipendenze:
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" }
Controllare la classe dell'adattatore della rete pubblicitaria che ha caricato l'annuncio
Ecco un codice campione che registra il nome della classe della rete pubblicitaria per un annuncio banner:
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());
}
}
);
Utilizzare gli annunci banner con Mediazione AdMob
Assicurati di disabilitare l'aggiornamento in tutte le UI delle origini annuncio di terze parti per le unità pubblicitarie banner utilizzate in Mediazione AdMob. In questo modo si evita un doppio aggiornamento, poiché AdMob attiva anche un aggiornamento in base alla frequenza di aggiornamento dell'unità pubblicitaria banner.
Leggi statali sulla privacy degli Stati Uniti e GDPR
Se devi rispettare le leggi statali sulla privacy degli Stati Uniti o il Regolamento generale sulla protezione dei dati (GDPR), segui i passaggi descritti in Impostazioni delle normative statali degli Stati Uniti o Impostazioni GDPR per aggiungere i partner di mediazione all'elenco dei partner pubblicitari statali degli Stati Uniti o GDPR di Privacy e messaggi di AdMob. In caso contrario, i partner potrebbero non pubblicare annunci nella tua app.
Scopri di più su come attivare il trattamento dati limitato (RDP) e ottenere il consenso GDPR con l' SDK Google User Messaging Platform (UMP).