Los gehts

Mit AdMob Mediation können Sie Anzeigen aus verschiedenen Quellen in Ihren Apps ausliefern, zum Beispiel aus dem AdMob-Werbenetzwerk und aus Anzeigenquellen von Drittanbietern. Mit AdMob Mediation lassen sich Ausführungsrate und Monetarisierung optimieren, da Anzeigenanfragen an mehrere Werbenetzwerke gesendet werden. So kann das Werbenetzwerk ermittelt werden, das sich am besten für die Bereitstellung der Anzeigen eignet. Fallstudie

Vorbereitung

Bevor Sie die Vermittlung für ein Anzeigenformat einbinden können, müssen Sie das Anzeigenformat in Ihre App einbinden:

Sie nutzen die Vermittlungsfunktion zum ersten Mal? Lesen Sie die Übersicht zur AdMob Mediation.

Google Mobile Ads SDK (Beta) initialisieren

Im Schnellstartleitfaden erfahren Sie, wie Sie das Google Mobile Ads SDK (Beta) initialisieren. Während dieses Initialisierungsaufrufs werden auch Vermittlungsadapter initialisiert. Es ist wichtig, dass Sie mit dem Laden von Anzeigen warten, bis die Initialisierung abgeschlossen ist. So können Sie sicherstellen, dass jedes Anzeigen-Netzwerk an der ersten Anzeigenanfrage beteiligt ist.

Im folgenden Beispielcode sehen Sie, wie Sie den Initialisierungsstatus der einzelnen Adapter prüfen können, bevor Sie eine Anzeigenanfrage senden.

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-Module in Vermittlungsintegrationen ausschließen

Vermittlungsadapter sind weiterhin vom aktuellen Google Mobile Ads SDK (Beta) abhängig. Das Google Mobile Ads SDK (Beta) enthält jedoch alle Klassen, die für Vermittlungsadapter erforderlich sind. Um Kompilierungsfehler im Zusammenhang mit doppelten Symbolen zu vermeiden, müssen Sie das aktuelle Google Mobile Ads SDK (Beta) ausschließen, damit es nicht als Abhängigkeit von Vermittlungsadaptern abgerufen wird.

Schließen Sie in der Datei build.gradle auf App-Ebene die Module play-services-ads und play-services-ads-lite global aus allen Abhängigkeiten aus.

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

Prüfen, durch welche Adapterklasse des Werbenetzwerks die Anzeige geladen wurde

Hier ist ein Beispielcode, mit dem der Klassenname des Werbenetzwerks für eine Banneranzeige protokolliert wird:

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());
    }
  }
);

Achten Sie darauf, dass die Aktualisierung in allen Benutzeroberflächen von Drittanbieter-Anzeigenquellen für Banneranzeigenblöcke deaktiviert ist, die in der AdMob-Vermittlung verwendet werden. Dadurch wird eine doppelte Aktualisierung verhindert, da AdMob auch eine Aktualisierung basierend auf der Aktualisierungsrate Ihres Banneranzeigenblocks auslöst.

Datenschutzgesetze von US-Bundesstaaten und DSGVO

Wenn Sie die Datenschutzgesetze von US-Bundesstaaten oder die EU-Datenschutz-Grundverordnung (DSGVO) einhalten müssen, folgen Sie der Anleitung unter Einstellungen für Verordnungen von US-Bundesstaaten oder DSGVO-Einstellungen, um Ihre Vermittlungspartner in der Liste der Anzeigenpartner für US-Bundesstaaten oder die DSGVO unter „Datenschutz und Mitteilungen“ in AdMob hinzuzufügen. Andernfalls können Partner möglicherweise keine Anzeigen in Ihrer App ausliefern.

Weitere Informationen zum Aktivieren der eingeschränkten Datenverarbeitung und zum Einholen der Einwilligung gemäß DSGVO mit dem Google User Messaging Platform SDK (UMP SDK)