Initialiser le SDK

Cette page explique comment initialiser le SDK Google Mobile Ads (bêta).

Avant de commencer

Pour utiliser le SDK Google Mobile Ads (bêta), vous devez l'intégrer sans médiation ou utiliser AdMob comme plate-forme de médiation. Les autres plates-formes de médiation ne sont pas compatibles avec le SDK Google Mobile Ads (bêta).

Configurer votre build pour le SDK Google Mobile Ads (bêta)

Les sections suivantes vous expliquent comment configurer le SDK Google Mobile Ads (bêta).

Inclure la dépendance du SDK Google Mobile Ads (bêta)

Le SDK Google Mobile Ads (bêta) nécessite une dépendance Gradle différente. Dans le fichier de build au niveau de l'application, supprimez la référence à la dépendance actuelle du SDK Mobile Ads et incluez le nouvel artefact.

Dépendances Gradle
Actuel

Kotlin

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

Groovy

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:24.7.0'
}
SDK Google Mobile Ads (bêta)

Kotlin

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

Groovy

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

Exclure les modules com.google.android.gms dans les intégrations de médiation

Les adaptateurs de médiation continuent de dépendre du SDK Mobile Ads actuel. Toutefois, le SDK Google Mobile Ads (bêta) inclut toutes les classes requises par les adaptateurs de médiation. Pour éviter les erreurs de compilation liées aux symboles en double, vous devez empêcher l'extraction du SDK Mobile Ads actuel en tant que dépendance par les adaptateurs de médiation.

Dans le fichier de compilation au niveau de l'application, excluez globalement les modules play-services-ads et play-services-ads-lite de toutes les dépendances.

Kotlin

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

Groovy

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

Définir les niveaux d'API Android minimal et de compilation

Le SDK Google Mobile Ads (bêta) nécessite un niveau d'API Android minimal de 24 et un niveau d'API Android de compilation de 34. Ajustez les valeurs minSdk et compileSdk dans le fichier build au niveau de l'application sur 24 ou plus et 34 ou plus, respectivement.

Initialiser le SDK Google Mobile Ads (bêta)

Le SDK Google Mobile Ads (bêta) nécessite une initialisation avant le chargement des annonces. Il s'agit d'un changement par rapport au SDK Mobile Ads actuel, où l'initialisation est facultative, mais recommandée. Mettez à jour votre code si vous n'initialisiez pas le SDK avant de charger les annonces.

Cette section décrit les différences d'implémentation de l'initialisation du SDK entre le SDK actuel et le SDK Google Mobile Ads (bêta).

Définir l'ID d'application AdMob

Les exemples suivants définissent l'ID d'application AdMob dans le SDK Google Mobile Ads (bêta) actuel :

Actuel

L'intégration nécessite une balise <meta-data> avec android:name="com.google.android.gms.ads.APPLICATION_ID" contenant votre ID d'application AdMob dans le fichier AndroidManifest.xml de votre application.

<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>
SDK Google Mobile Ads (bêta)

Fournissez l'ID de votre application AdMob par programmation lors de l'initialisation du SDK.

Kotlin

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

Java

// Initialize Google Mobile Ads SDK (beta).
InitializationConfig initConfig =
    new InitializationConfig.Builder("SAMPLE_APP_ID").build();
MobileAds.initialize(this, initConfig, initializationStatus -> {});

Examiner les modifications apportées à l'implémentation

Les exemples suivants initialisent le SDK actuel et le SDK Google Mobile Ads (bêta) :

Actuel

Appelez MobileAds.initialize() pour initialiser le SDK Google Mobile Ads. Nous vous recommandons d'effectuer l'initialisation sur un thread d'arrière-plan pour réduire les ANR.

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();
  }
}
SDK Google Mobile Ads (bêta)

Appelez MobileAds.initialize() pour initialiser le SDK Google Mobile Ads (bêta). Cette méthode doit être appelée sur un thread d'arrière-plan. Si ce n'est pas le cas, une erreur "L'application ne répond pas" (ANR) peut se produire.

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,
        // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
        InitializationConfig.Builder("SAMPLE_APP_ID").build()
      ) {
        // 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.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,
                  // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    // Adapter initialization is complete.
                  });
              // Other methods on MobileAds can now be called.
            })
        .start();
  }
}