In dieser Anleitung erfahren Sie, wie Sie einen Vermittlungsadapter in Ihre Android-App einbinden.
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
Neu bei der Vermittlung? Einführung in die Vermittlung
GMA Next-Gen SDK initialisieren
In der Kurzanleitung wird beschrieben, wie Sie die GMA Next-Gen SDK initialisieren. Während dieses Initialisierungsaufrufs werden auch Vermittlungsadapter initialisiert. Es ist wichtig, mit dem Laden von Anzeigen zu warten, bis die Initialisierung abgeschlossen ist. So wird sichergestellt, dass alle Werbenetzwerke bei der ersten Anzeigenanfrage berücksichtigt werden.
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 hängen weiterhin von Google Mobile Ads SDK (Legacy) ab. GMA Next-Gen SDK enthält jedoch alle Klassen, die für Vermittlungsadapter erforderlich sind. Um Kompilierungsfehler im Zusammenhang mit doppelten Symbolen zu vermeiden, müssen Sie verhindern, dass Google Mobile Ads SDK (Legacy) von Vermittlungsadaptern als Abhängigkeit einbezogen wird.
Schließen Sie in der build.gradle-Datei auf App-Ebene die Module play-services-ads und play-services-ads-lite global aus 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 Adapterklasse des Werbenetzwerks die Anzeige geladen hat
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());
}
}
);
Banneranzeigen mit Vermittlung verwenden
Deaktivieren Sie die Aktualisierung in allen Benutzeroberflächen von Drittanbieter-Anzeigenquellen für Banneranzeigenblöcke, die in der Vermittlung verwendet werden. So wird eine doppelte Aktualisierung verhindert, da Ad Manager 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 Ad Manager unter „Datenschutz und Mitteilungen“ in die Liste der Werbepartner für US-Bundesstaaten oder die DSGVO aufzunehmen. Andernfalls kann es passieren, dass Partner keine Anzeigen in Ihrer App ausliefern können.
Weitere Informationen zum Aktivieren der eingeschränkten Datenverarbeitung (RDP) und zum Einholen der DSGVO-Einwilligung mit dem Google User Messaging Platform (UMP) SDK.