Préchargement des annonces (alpha)

Sélectionnez une plate-forme : Android (bêta) Nouveau Android iOS Unity

Le préchargement des annonces est une fonctionnalité de chargement des annonces gérée par Google dans Google Mobile Ads SDK qui gère le chargement et la mise en cache des annonces pour vous. Le préchargement des annonces nécessite de modifier la façon dont vous gérez le chargement des annonces. Pour optimiser les performances à l'aide du préchargement des annonces, désactivez la mise en cache personnalisée et déléguez cette responsabilité à Google Mobile Ads SDK.

Le préchargement des annonces offre les avantages suivants par rapport au chargement manuel des annonces :

  • Gestion des références : conserve les annonces chargées afin que vous n'ayez pas à gérer les références tant que vous n'êtes pas prêt à les afficher.
  • Rechargement automatique : charge automatiquement une nouvelle annonce lorsque vous en retirez une du cache.
  • Tentatives gérées : relance automatiquement les requêtes ayant échoué à l'aide d'un intervalle exponentiel entre les tentatives.
  • Gestion de l'expiration : actualise automatiquement les annonces avant leur expiration (généralement après une heure).
  • Optimisation du cache : si vous utilisez une taille de cache supérieure à un, Google Mobile Ads SDK optimise l'ordre du cache pour diffuser la meilleure annonce.

Ce guide explique comment configurer les annonces de préchargement, vérifier leur disponibilité et les afficher.

Prérequis

Avant de suivre ce tutoriel, vous devez effectuer les opérations suivantes :

  • Installez Google Mobile Ads SDK version 24.4.0 ou ultérieure. Les ressources pour les développeurs des versions antérieures sont disponibles aux versions 23.6.1 à 24.3.0, mais nous vous recommandons d'utiliser la version 24.4.0 ou ultérieure et de suivre ce guide à l'avenir.
  • Configurez Google Mobile Ads SDK.
  • Facultatif : Téléchargez et exécutez l'application exemple en Java ou Kotlin.

Commencer à précharger des annonces

Pour commencer à précharger des annonces, appelez start(). N'appelez cette méthode qu'une seule fois au début de l'application. Une fois que vous avez appelé start(), Google Mobile Ads SDK précharge automatiquement les annonces et relance les requêtes ayant échoué pour les configurations préchargées.

L'exemple suivant commence à précharger des annonces :

Kotlin

// Define a PreloadConfiguration.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").build()
// Start the preloading with a given preload ID, preload configuration.
InterstitialAdPreloader.start("AD_UNIT_ID", configuration)

Java

// Define a PreloadConfiguration.
PreloadConfiguration configuration = new PreloadConfiguration.Builder("AD_UNIT_ID").build();
// Start the preloading with a given preload ID, preload configuration.
InterstitialAdPreloader.start("AD_UNIT_ID", configuration);

Remplacez AD_UNIT_ID par l'ID de votre bloc d'annonces.

Obtenir et afficher l'annonce préchargée

Lorsque vous utilisez le préchargement des annonces, Google Mobile Ads SDK conserve les annonces mises en cache. Lorsque vous souhaitez afficher une annonce, appelez pollAd(). Google Mobile Ads SDK récupère l'annonce disponible et précharge automatiquement l'annonce suivante en arrière-plan.

Évitez d'appeler cette méthode tant que vous n'êtes pas prêt à afficher une annonce. En conservant les annonces dans le cache, Google Mobile Ads SDK peut actualiser automatiquement les annonces expirées et optimiser le cache.

L'exemple suivant récupère et affiche une annonce préchargée :

Kotlin

// pollAd() returns the next available ad and loads another ad in the background.
val ad = InterstitialAdPreloader.pollAd("AD_UNIT_ID")

// [Optional] Interact with the ad as needed.
ad?.onPaidEventListener = OnPaidEventListener {
  // [Optional] Send the impression-level ad revenue information to your preferred
  // analytics server directly within this callback.
}

// Show the ad immediately.
ad?.show(activity)

Java

// pollAd() returns the next available ad and loads another ad in the background.
InterstitialAd ad = InterstitialAdPreloader.pollAd("AD_UNIT_ID");

if (ad != null) {
  // [Optional] Interact with the ad object as needed.
  ad.setOnPaidEventListener(
      adValue -> {
        // [Optional] Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.
      });

  // Show the ad immediately.
  ad.show(activity);
}

Vérifier la disponibilité des annonces de préchargement

Pour vérifier la disponibilité des annonces, choisissez l'une des options suivantes :

Obtenir la disponibilité des annonces préchargées

L'exemple suivant vérifie la disponibilité des annonces :

Kotlin

// Verify that a preloaded ad is available.
if (!InterstitialAdPreloader.isAdAvailable("AD_UNIT_ID")) {
  // No ads are available to show.
}

Java

// Verify that a preloaded ad is available.
if (!InterstitialAdPreloader.isAdAvailable("AD_UNIT_ID")) {
  // No ads are available to show.
}

Écouter la disponibilité des annonces préchargées

Inscrivez-vous aux événements de préchargement pour être averti lorsque les annonces sont préchargées, ne parviennent pas à être préchargées ou lorsque le cache d'annonces est épuisé.

Les événements de préchargement sont destinés à des fins d'analyse. Dans les rappels d'événements de préchargement :

  • N'appelez pas start().
  • Évitez d'appeler pollAd() sauf si l'annonce est diffusée immédiatement.

L'exemple suivant s'inscrit aux événements d'annonces :

Kotlin

// Define a callback to receive preload events.
val callback =
  object : PreloadCallbackV2() {
    override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo?) {
      // Called when preloaded ads are available.
    }

    override fun onAdsExhausted(preloadId: String) {
      // Called when no preloaded ads are available.
    }

    override fun onAdFailedToPreload(preloadId: String, adError: AdError) {
      // Called when preloaded ads failed to load.
    }
  }

Java

// Define a callback to receive preload events.
PreloadCallbackV2 callback =
    new PreloadCallbackV2() {
      @Override
      public void onAdPreloaded(
          @NonNull String preloadId, @Nullable ResponseInfo responseInfo) {
        // Called when preloaded ads are available.
      }

      @Override
      public void onAdsExhausted(@NonNull String preloadId) {
        // Called when no preloaded ads are available.
      }

      @Override
      public void onAdFailedToPreload(@NonNull String preloadId, @NonNull AdError adError) {
        // Called when preloaded ads failed to load.
      }
    };

Arrêter le préchargement des annonces

Si vous n'avez plus besoin d'afficher d'annonces pour un ID de préchargement dans la session, vous pouvez arrêter le préchargement des annonces. Pour arrêter le préchargement des annonces pour un ID de préchargement spécifique, appelez destroy() avec un ID de préchargement.

Kotlin

// Stops the preloading and destroy preloaded ads.
InterstitialAdPreloader.destroy("AD_UNIT_ID")
// Stops the preloading and destroy all ads.
InterstitialAdPreloader.destroyAll()

Java

// Stops the preloading and destroy preloaded ads.
InterstitialAdPreloader.destroy("AD_UNIT_ID");
// Stops the preloading and destroy all ads.
InterstitialAdPreloader.destroyAll();

Définir la taille de la mémoire tampon

La taille de la mémoire tampon contrôle le nombre d'annonces préchargées conservées en mémoire. Par défaut, Google optimise la taille de la mémoire tampon pour équilibrer la consommation de mémoire et la latence de diffusion des annonces. Si votre application diffuse des annonces avant le chargement de l'annonce suivante, vous pouvez définir une taille de mémoire tampon personnalisée pour augmenter le nombre d'annonces conservées en mémoire. Nous vous recommandons de ne pas dépasser une taille de mémoire tampon de quatre.

Kotlin

// Define a PreloadConfiguration and buffer up to 5 preloaded ads.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(5).build()

Java

// Define a PreloadConfiguration and buffer up to 5 preloaded ads.
PreloadConfiguration configuration =
    new PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(5).build();