Mit AdMob Mediation können Sie in Ihren Apps Anzeigen aus verschiedenen Quellen bereitstellen, zum Beispiel Anzeigen aus dem AdMob-Werbenetzwerk und aus Werbequellen 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 dieses Anzeigenformat in Ihre App einbinden:
- Banneranzeigen
- Interstitial-Anzeigen
- Native Anzeigen
- Anzeigen mit Prämie
- Interstitial-Anzeigen mit Prämie
Sie sind neu bei der Vermittlung? Lesen Sie die Übersicht über die AdMob Mediation.
GMA Next-Gen SDK initialisieren
In der Schnellstartanleitung wird beschrieben, wie Sie das initialisieren GMA Next-Gen SDK. Bei diesem Initialisierungsaufruf werden auch Vermittlungsadapter initialisiert. Sie müssen warten, bis die Initialisierung abgeschlossen ist, bevor Sie Anzeigen laden. So können Sie sicherstellen, dass alle Werbenetzwerke an der ersten Anzeigenanfrage teilnehmen.
Im folgenden Beispielcode wird gezeigt, 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 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-Module in Vermittlungsintegrationen ausschließen
Vermittlungsadapter sind weiterhin vom aktuellen Google Mobile Ads SDK abhängig. Das GMA Next-Gen SDK enthält jedoch ,GMA Next-Gen SDK alle Klassen, die für Vermittlungsadapter erforderlich sind. Um Kompilierungsfehler im Zusammenhang mit doppelten Symbolen zu vermeiden, müssen Sie verhindern, dass das aktuelle Google Mobile Ads SDK von Vermittlungs adaptern als Abhängigkeit abgerufen wird.
Schließen Sie in der Datei auf App-Ebene build.gradle die Module play-services-ads und
play-services-ads-lite global von allen Abhängigkeiten aus:
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" }
Prüfen, welche Werbenetzwerk-Adapterklasse die Anzeige geladen hat
Hier ist ein Beispielcode, der den Namen der Werbenetzwerkklasse für eine Banneranzeige protokolliert:
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());
}
}
);
Banneranzeigen mit AdMob Mediation verwenden
Deaktivieren Sie die Aktualisierung in allen Benutzeroberflächen von Drittanbieter-Werbequellen für Banneranzeigenblöcke, die in der AdMob Mediation verwendet werden. So wird eine doppelte Aktualisierung verhindert, da AdMob auch eine Aktualisierung basierend auf der Aktualisierungsrate des Banneranzeigenblocks auslöst.
Datenschutzgesetze von US-Bundesstaaten und DSGVO
Wenn Sie die Datenschutzgesetze von US-Bundesstaaten oder die 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 Werbepartner für US-Bundesstaaten oder 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 (RDP) und zum Einholen der DSGVO-Einwilligung mit dem Google User Messaging Platform (UMP) SDK.