Per iniziare

Mediazione AdMob è una funzionalità che consente di pubblicare nelle tue app annunci provenienti da più origini, tra cui la rete AdMob e origini annuncio di terze parti, in un unico posto. La 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 quest'ultimo nella tua app:

Non hai mai utilizzato la mediazione? Leggi Panoramica di Mediazione AdMob.

Inizializzare l'SDK Google Mobile Ads (beta)

La guida rapida mostra come inizializzare l'SDK Google Mobile Ads (beta). 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 piena partecipazione di ogni ad network alla prima richiesta di annuncio.

Il seguente esempio di codice 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 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();
  }
}

Escludere i moduli com.google.android.gms nelle integrazioni di mediazione

Gli adattatori di mediazione continuano a dipendere dall'attuale SDK Google Mobile Ads (beta). Tuttavia, l'SDK Google Mobile Ads (beta) include tutte le classi richieste dagli adattatori di mediazione. Per evitare errori di compilazione correlati a simboli duplicati, devi escludere l'SDK Google Mobile Ads (beta) corrente dall'inclusione come dipendenza da parte degli 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.

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

Controllare quale classe dell'adattatore di rete pubblicitaria ha caricato l'annuncio

Di seguito è riportato un esempio di codice 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());
    }
  }
);

Assicurati di disattivare l'aggiornamento in tutte le UI delle origini annuncio di terze parti per le unità pubblicitarie banner utilizzate in AdMob Mediation. 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 sulla privacy degli stati degli Stati Uniti o il Regolamento generale sulla protezione dei dati (GDPR), segui i passaggi descritti nelle impostazioni relative alle normative degli stati USA o nelle impostazioni relative al GDPR per aggiungere i tuoi partner di mediazione all'elenco dei partner pubblicitari per gli stati USA o per il GDPR in Privacy e messaggi di AdMob. In caso contrario, i partner non potranno pubblicare annunci nella tua app.

Scopri di più sull'attivazione del trattamento dati limitato (RDP) e sull'ottenimento del consenso ai sensi del GDPR con l'SDK Google User Messaging Platform (UMP).