Zum GMA Next-Gen SDK migrieren

Auf dieser Seite finden Sie eine Anleitung zum Initialisieren von GMA Next-Gen SDK.

Hinweis

Dieser Leitfaden richtet sich an Publisher und Drittanbieterplattformen, die GMA Next-Gen SDK direkt einbinden.

Wenn Sie sich über eine Vermittlungsplattform eines Drittanbieters, die Gebote von Partnern unterstützt, mit AdMob verbinden, sehen Sie in der folgenden Tabelle nach, ob diese Plattform mit GMA Next-Gen SDK kompatibel ist.

Vermittlungsplattform Kompatibel mit GMA Next-Gen SDK
AdMost
AppLovin MAX
Chartboost Mediation
DT Fairbid
Gravite
Nimbus
TopOn
TradPlus VisiM
Unity LevelPlay

Wenn Sie eine Vermittlungsplattform verwenden möchten, die nicht mit GMA Next-Gen SDK kompatibel ist, wenden Sie sich an Ihre Vermittlungsplattform, um Support zu erhalten.

Build für GMA Next-Gen SDK konfigurieren

In den folgenden Abschnitten werden die erforderlichen Schritte zum Konfigurieren von GMA Next-Gen SDK beschrieben.

Abhängigkeit GMA Next-Gen SDK einbeziehen

Für GMA Next-Gen SDK ist eine andere Gradle-Abhängigkeit erforderlich. Entfernen Sie in der Build-Datei auf App-Ebene den Verweis auf die Google Mobile Ads SDK (Legacy)-Abhängigkeit und fügen Sie das neue Artefakt hinzu.

Gradle-Abhängigkeiten
Google Mobile Ads SDK (Legacy)

Kotlin

dependencies {
  // ...
  implementation("com.google.android.gms:play-services-ads:25.5.0")
}

Groovy

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:25.5.0'
}
GMA Next-Gen SDK

Kotlin

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation("com.google.android.gms:play-services-ads:25.5.0")
  implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.6.0")
}

Groovy

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation 'com.google.android.gms:play-services-ads:25.5.0'
  implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.6.0'
}

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-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"
}

Mindest- und Kompilierungs-Android-API-Level festlegen

GMA Next-Gen SDK erfordert ein Android-API-Level von mindestens 24 und ein Android-API-Level von 34 für die Kompilierung. Passen Sie die Werte für minSdk und compileSdk in der Build-Datei auf App-Ebene auf mindestens 24 bzw. 34 an.

GMA Next-Gen SDK initialisieren

GMA Next-Gen SDK muss vor dem Laden von Anzeigen initialisiert werden. Das ist eine Änderung gegenüber Google Mobile Ads SDK (Legacy), wo die Initialisierung optional, aber empfohlen ist. Aktualisieren Sie Ihren Code, wenn Sie das SDK bisher nicht vor dem Laden von Anzeigen initialisiert haben.

In diesem Abschnitt werden die Unterschiede bei der Implementierung der SDK-Initialisierung zwischen Google Mobile Ads SDK (Legacy) und GMA Next-Gen SDK beschrieben.

AdMob-App-ID festlegen

In den folgenden Beispielen wird die AdMob-App-ID in Google Mobile Ads SDK (Legacy) und GMA Next-Gen SDK festgelegt:

Google Mobile Ads SDK (Legacy)

Für die Integration ist ein <meta-data>-Tag mit android:name="com.google.android.gms.ads.APPLICATION_ID" erforderlich, das Ihre AdMob-App-ID in der AndroidManifest.xml-Datei Ihrer App enthält.

<manifest>
  <application>
    <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="SAMPLE_APP_ID"/>
  </application>
</manifest>
GMA Next-Gen SDK

Geben Sie Ihre AdMob-App-ID programmatisch im Rahmen der SDK-Initialisierung an.

Kotlin

// Initialize the Google Mobile Ads SDK.
val initConfig = InitializationConfig.Builder("SAMPLE_APP_ID").build()
MobileAds.initialize(this@MainActivity, initConfig) {}

Java

// Initialize GMA Next-Gen SDK.
InitializationConfig initConfig =
    new InitializationConfig.Builder("SAMPLE_APP_ID").build();
MobileAds.initialize(this, initConfig, initializationStatus -> {});

Änderungen an der Implementierung prüfen

In den folgenden Beispielen werden Google Mobile Ads SDK (Legacy) und GMA Next-Gen SDK initialisiert:

Google Mobile Ads SDK (Legacy)

Rufen Sie MobileAds.initialize() auf, um das Google Mobile Ads SDK zu initialisieren. Die Initialisierung in einem Hintergrundthread wird empfohlen, um ANR-Fehler zu reduzieren.

Kotlin

import com.google.android.gms.ads.MobileAds
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 the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(this@MainActivity) {}
    }
  }
}

Java

import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

public class MainActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    new Thread(
            () -> {
              // Initialize the Google Mobile Ads SDK on a background thread.
              MobileAds.initialize(this, initializationStatus -> {});
            })
        .start();
  }
}
GMA Next-Gen SDK

Rufen Sie MobileAds.initialize() auf, um GMA Next-Gen SDK zu initialisieren. Dies muss in einem Hintergrundthread aufgerufen werden. Andernfalls kann ein ANR-Fehler (App antwortet nicht) auftreten.

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,
        // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
        InitializationConfig.Builder("SAMPLE_APP_ID").build()
      ) {
        // Adapter initialization is complete.
      }
      // SDK initialization is complete. If you don't want to wait for bidding adapters to finish
      // initializing, start loading ads now.
    }
  }
}

Java

import com.google.android.libraries.ads.mobile.sdk.MobileAds;
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,
                  // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    // Adapter initialization is complete.
                  });
              // SDK initialization is complete. If you don't want to wait for bidding adapters to
              // finish initializing, start loading ads now.
            })
        .start();
  }
}