Charger une seule annonce à l'ouverture d'une application

Les annonces à l'ouverture d'une application sont un format d'annonce destiné aux éditeurs qui souhaitent monétiser les écrans de chargement de leur application. Vos utilisateurs peuvent fermer les annonces à l'ouverture d'une application à tout moment. Lorsque les utilisateurs mettent votre application au premier plan, diffusez des annonces à l'ouverture d'une application.

Pour en savoir plus, consultez les conseils sur les annonces à l'ouverture d'une application.

Ce guide explique comment intégrer des annonces à l'ouverture d'une application dans une application Android.

Avant de commencer

Avant de continuer, procédez comme suit :

  • Configurez GMA Next-Gen SDK.
  • Utilisez l'ID du bloc d'annonces à l'ouverture d'une application test ca-app-pub-3940256099942544/9257395921.
    • Lorsque vous créez et testez votre application, assurez-vous d'utiliser des annonces tests plutôt que des annonces de production. Si vous n'utilisez pas l'ID du bloc d'annonces de test, Google peut suspendre votre compte.
    • Avant de publier votre application, remplacez cet ID par l'ID de votre bloc d'annonces.
    • Pour en savoir plus sur les annonces tests GMA Next-Gen SDK, consultez Activer les annonces tests.

Charger une annonce

L'exemple suivant charge une seule annonce :

Kotlin

// Load ads after you initialize MobileAds.
AppOpenAd.load(
  AdRequest.Builder(adUnitId).build(),
  object : AdLoadCallback<AppOpenAd> {
    override fun onAdLoaded(ad: AppOpenAd) {
      // App open ad loaded.
      appOpenAd = ad
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      // App open ad failed to load.
      Log.e(TAG, "App open ad failed to load: ${adError.message}")
      appOpenAd = null
    }
  },
)

Java

// Load ads after you initialize MobileAds.
AppOpenAd.load(
    new AdRequest.Builder(adUnitId).build(),
    new AdLoadCallback<AppOpenAd>() {
      @Override
      public void onAdLoaded(AppOpenAd ad) {
        // App open ad loaded.
        appOpenAd = ad;
      }

      @Override
      public void onAdFailedToLoad(LoadAdError adError) {
        // App open ad failed to load.
        Log.e(TAG, "App open ad failed to load: " + adError.getMessage());
        appOpenAd = null;
      }
    });

Pour les tests, utilisez l'ID de bloc d'annonces de test suivant : ca-app-pub-3940256099942544/9257395921.

Diffuser l'annonce

Pour afficher une annonce à l'ouverture d'une application, appelez la méthode show. Les annonces à l'ouverture d'une application expirent quatre heures après leur chargement. Ne diffusez pas d'annonce à l'ouverture d'une application qui se charge depuis plus de quatre heures.

L'exemple suivant affiche l'annonce :

Kotlin

private fun showAd(appOpenAd: AppOpenAd, activity: Activity) {
  // Show the ad.
  appOpenAd.show(activity)
}

Java

private void showAd(AppOpenAd appOpenAd, Activity activity) {
  // Show the ad.
  appOpenAd.show(activity);
}

Gérer les démarrages à froid et les écrans de chargement

Un démarrage à froid se produit lorsque votre application est lancée à partir du disque, et un démarrage à chaud se produit lorsque vous rouvrez l'application à partir de la mémoire. Lors d'un démarrage à froid, vous ne disposez pas d'une annonce précédemment chargée à afficher. Lors d'un démarrage à chaud, il est possible qu'une annonce chargée soit toujours disponible pour être diffusée.

Lors d'un démarrage à froid, les utilisateurs peuvent interagir avec votre application avant qu'elle ne charge et n'affiche une annonce. Pour éviter une mauvaise expérience utilisateur, n'affichez les annonces à l'ouverture d'une application lors d'un démarrage à froid que sur un écran de chargement pendant le chargement des éléments de l'application. Pendant que vos utilisateurs attendent que votre application se charge, diffusez des annonces à l'ouverture d'une application. Ne diffusez pas d'annonce à l'ouverture de l'application lors du premier démarrage de l'application. Si le chargement des éléments se termine et que les utilisateurs accèdent au contenu principal avant le chargement de l'annonce, ne l'affichez pas.

Chargez les éléments de l'application sur un thread d'arrière-plan pour que le chargement se poursuive pendant la diffusion de l'annonce. Si votre écran de chargement finit de charger pendant la diffusion de l'annonce, fermez-le dans la méthode de rappel de fermeture de l'annonce.

Écouter les événements d'annonce

Avant de diffuser l'annonce, écoutez les événements de cycle de vie de l'annonce. L'exemple suivant enregistre des rappels pour les événements d'annonce :

Kotlin

private fun listenToAdEvents() {
  // Listen for ad events.
  val ad = appOpenAd
  if (ad == null) {
    Log.e(TAG, "App open ad is not ready yet.")
    return
  }

  ad.adEventCallback =
    object : AppOpenAdEventCallback {
      override fun onAdShowedFullScreenContent() {
        // App open ad did show.
      }

      override fun onAdDismissedFullScreenContent() {
        // App open ad did dismiss.
        appOpenAd = null
      }

      override fun onAdFailedToShowFullScreenContent(
        fullScreenContentError: FullScreenContentError
      ) {
        // App open ad failed to show.
        Log.e(TAG, "App open ad failed to show: ${fullScreenContentError.message}")
      }

      override fun onAdImpression() {
        // App open ad did record an impression.
      }

      override fun onAdClicked() {
        // App open ad did record a click.
      }
    }
}

Java

private void listenToAdEvents() {
  // Listen for ad events.
  if (appOpenAd == null) {
    Log.e(TAG, "App open ad is not ready yet.");
    return;
  }

  appOpenAd.setAdEventCallback(
      new AppOpenAdEventCallback() {
        @Override
        public void onAdShowedFullScreenContent() {
          // App open ad did show.
        }

        @Override
        public void onAdDismissedFullScreenContent() {
          // App open ad did dismiss.
          appOpenAd = null;
        }

        @Override
        public void onAdFailedToShowFullScreenContent(
            @NonNull FullScreenContentError fullScreenContentError) {
          // App open ad failed to show.
          Log.e(TAG, "App open ad failed to show: " + fullScreenContentError.getMessage());
        }

        @Override
        public void onAdImpression() {
          // App open ad did record an impression.
        }

        @Override
        public void onAdClicked() {
          // App open ad did record a click.
        }
      });
}