GMA Next-Gen SDK initialisieren

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

Hinweis

Wenn Sie GMA Next-Gen SDK verwenden möchten, müssen Sie es entweder ohne Vermittlung einbinden oder AdMob als Vermittlungsplattform nutzen. Die anderen Vermittlungsplattformen sind nicht mit GMA Next-Gen SDK kompatibel.

Build für GMA Next-Gen SDK konfigurieren


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

GMA Next-Gen SDK-Abhängigkeit einbinden

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

Gradle-Abhängigkeiten
Aktuell

Kotlin

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

Groovy

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

Kotlin

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

Groovy

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

com.google.android.gms-Module in Vermittlungseinbindungen ausschließen

Vermittlungsadapter sind weiterhin vom aktuellen Mobile Ads SDK abhängig. Das GMA Next-Gen SDK enthält jedoch alle Klassen, die für Vermittlungsadapter erforderlich sind.GMA Next-Gen SDK Um Kompilierungsfehler im Zusammenhang mit doppelten Symbolen zu vermeiden, müssen Sie verhindern, dass das aktuelle Mobile Ads SDK von Vermittlungsadaptern als Abhängigkeit abgerufen wird.

Schließen Sie in der Build-Datei auf App-Ebene sowohl play-services-ads als auch play-services-ads-lite Module 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"
}

Mindest- und Kompilierungs-Android-API-Level festlegen

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

GMA Next-Gen SDK initialisieren

GMA Next-Gen SDK muss initialisiert werden, bevor Anzeigen geladen werden. Das ist anders als beim aktuellen Mobile Ads SDK, bei dem die Initialisierung optional, aber empfehlenswert ist. Aktualisieren Sie Ihren Code, wenn Sie das SDK bisher nicht initialisiert haben, bevor Sie Anzeigen geladen haben.

In diesem Abschnitt werden die Unterschiede bei der SDK-Initialisierung zwischen dem aktuellen und GMA Next-Gen SDKbeschrieben.

AdMob-App-ID festlegen

In den folgenden Beispielen wird die AdMob-App-ID im aktuellen und GMA Next-Gen SDK festgelegt:

Aktuell

Für die Einbindung ist ein <meta-data>-Tag mit android:name="com.google.android.gms.ads.APPLICATION_ID" erforderlich, das Ihre AdMob-App-ID in der Datei „ AndroidManifest.xml“ 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 bei der Implementierung prüfen

In den folgenden Beispielen wird das aktuelle und das GMA Next-Gen SDK initialisiert:

Aktuell

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. Dieser Aufruf muss in einem Hintergrundthread erfolgen. Andernfalls kann ein ANR-Fehler (Application Not Responding) 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();
  }
}