Préchargement des annonces (bêta)

Sélectionnez la plate-forme : Android iOS Unity Android (Legacy)

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 à votre place. 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.
  • Nouvelles 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 préchargées, vérifier leur disponibilité et les afficher.

Prérequis

Avant de suivre ce tutoriel, vous devez configurer Google Mobile Ads SDK.

Commencer à précharger des annonces

Au démarrage de l'application, appelez la méthode preload une seule fois. Une fois la méthode preload appelée, 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 :

Swift

private func startPreloading(adUnitID: String) {
  // Start the preloading initialization process.
  let request = Request()
  let interstitialConfig = PreloadConfigurationV2(
    adUnitID: adUnitID, request: request)
  InterstitialAdPreloader.shared.preload(
    for: adUnitID, configuration: interstitialConfig, delegate: self)
}

Objective-C

- (void)startPreloadingWithAdUnitID:(nonnull NSString *)adUnitID {
  // Start the preloading initialization process.
  GADRequest *request = [GADRequest request];
  GADPreloadConfigurationV2 *interstitialConfig =
      [[GADPreloadConfigurationV2 alloc] initWithAdUnitID:adUnitID
                                                  request:request];

  [GADInterstitialAdPreloader.sharedInstance preloadForPreloadID:adUnitID
                                                   configuration:interstitialConfig
                                                        delegate:self];
}

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 la méthode adWithPreloadID. Google Mobile Ads SDK récupère une annonce disponible et précharge automatiquement l'annonce suivante en arrière-plan.

Évitez d'appeler la méthode adWithPreloadID 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 :

Swift

private func showInterstitialAd(adUnitID: String) {
  // Verify that the preloaded ad is available before polling.
  guard isInterstitialAvailable(adUnitID: adUnitID) else {
    print("Preloaded interstitial ad is not available.")
    return
  }

  // Polling returns the next available ad and loads another ad in the background.
  let ad = InterstitialAdPreloader.shared.ad(with: adUnitID)

  // Interact with the ad object as needed.
  print("Interstitial ad response info: \(String(describing: ad?.responseInfo))")
  ad?.paidEventHandler = { (value: AdValue) in
    print("Interstitial ad paid event: \(value.value), \(value.currencyCode)")
  }

  ad?.fullScreenContentDelegate = self
  ad?.present(from: self)
}

Objective-C

- (void)showInterstitialAdWithAdUnitID:(nonnull NSString *)adUnitID {
  // Verify that the preloaded ad is available before polling.
  if (![self isInterstitialAvailableWithAdUnitID:adUnitID]) {
    NSLog(@"Preloaded interstitial ad is not available.");
    return;
  }

  // Getting the preloaded ad loads another ad in the background.
  GADInterstitialAd *ad =
      [GADInterstitialAdPreloader.sharedInstance adWithPreloadID:adUnitID];

  // Interact with the ad object as needed.
  NSLog(@"Interstitial ad response info: %@", ad.responseInfo);
  ad.paidEventHandler = ^(GADAdValue *_Nonnull value) {
    NSLog(@"Interstitial ad paid event: %@ %@ ", value.value, value.currencyCode);
  };
  ad.fullScreenContentDelegate = self;
  [ad presentFromRootViewController:self];
}

Obtenir les métadonnées de l'annonce préchargée

Pour obtenir les métadonnées d'une annonce préchargée, vous pouvez rechercher l'objet d'informations de réponse de l'annonce. Ce processus vous permet d'inspecter les métadonnées de l'annonce sans la supprimer du cache.

L'exemple suivant recherche les métadonnées d'une annonce préchargée à partir de l'objet d'informations de réponse :

Swift

private func getInterstitialAdResponseInfo(preloadID: String) {
  // Get the response info for the preloaded ad.
  if let responseInfo = InterstitialAdPreloader.shared.responseInfo(
    with: preloadID)
  {
    print("Ad response ID: \(responseInfo.responseIdentifier ?? "")")
  }
}

Objective-C

- (void)getInterstitialAdResponseInfoWithPreloadID:(nonnull NSString *)preloadID {
  // Get the response info for the preloaded ad.
  GADResponseInfo *responseInfo =
      [GADInterstitialAdPreloader.sharedInstance
          adResponseInfoWithPreloadID:preloadID];
  if (responseInfo) {
    NSLog(@"Ad response ID: %@", responseInfo.responseIdentifier);
  }
}

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

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

Obtenir la disponibilité du préchargement des annonces

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

Swift

private func isInterstitialAvailable(adUnitID: String) -> Bool {
  // Verify that an ad is available before polling.
  return InterstitialAdPreloader.shared.isAdAvailable(with: adUnitID)
}

Objective-C

- (BOOL)isInterstitialAvailableWithAdUnitID:(nonnull NSString *)adUnitID {
  // Verify that an ad is available before polling.
  return [GADInterstitialAdPreloader.sharedInstance isAdAvailableWithPreloadID:adUnitID];
}

Écouter la disponibilité du préchargement des annonces

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 preload.
  • Évitez d'appeler adWithPreloadID, sauf si l'annonce doit être diffusée immédiatement.

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

Swift

func adAvailable(forPreloadID preloadID: String, responseInfo: ResponseInfo) {
  // This callback indicates that an ad is available for the specified configuration.
  // No action is required here, but updating the UI can be useful in some cases.
  print("Ad preloaded successfully for ad preload ID: \(preloadID)")
}

func adsExhausted(forPreloadID preloadID: String) {
  // This callback indicates that all the ads for the specified configuration have been
  // consumed and no ads are available to show. No action is required here, but updating
  // the UI can be useful in some cases.
  // Don't call InterstitialAdPreloader.shared.preload or
  // InterstitialAdPreloader.shared.ad from adsExhausted.
  print("Ad exhausted for ad preload ID: \(preloadID)")
}

func adFailedToPreload(forPreloadID preloadID: String, error: Error) {
  print(
    "Ad failed to load with ad preload ID: \(preloadID), Error: \(error.localizedDescription)"
  )
}

Objective-C

- (void)adAvailableForPreloadID:(nonnull NSString *)preloadID
                   responseInfo:(nonnull GADResponseInfo *)responseInfo {
  // This callback indicates that an ad is available for the specified configuration.
  // No action is required here, but updating the UI can be useful in some cases.
  NSLog(@"Ad preloaded successfully for ad unit ID: %@", preloadID);
}

- (void)adsExhaustedForPreloadID:(nonnull NSString *)preloadID {
  // This callback indicates that all the ads for the specified configuration have been
  // consumed and no ads are available to show. No action is required here, but updating
  // the UI can be useful in some cases.
  // Don't call [GAD<Format>AdPreloader preloadForPreloadID:] or
  // [GAD<Format>AdPreloader adWithPreloadID:] from adsExhaustedForPreloadID.
  NSLog(@"Ad exhausted for ad preload ID: %@", preloadID);
}

- (void)adFailedToPreloadForPreloadID:(nonnull NSString *)preloadID
                                error:(nonnull NSError *)error {
  NSLog(@"Ad failed to load with ad preload ID: %@, Error: %@", preloadID,
        error.localizedDescription);
}

Arrêter le préchargement des annonces

Si vous n'avez plus besoin d'afficher des 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 stopPreloadingAndRemoveAdsForPreloadID avec un ID de préchargement. Pour arrêter le préchargement pour tous les préchargeurs, appelez stopPreloadingAndRemoveAllAds.

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.

Swift

let preloadConfig = PreloadConfigurationV2(adUnitID: "ca-app-pub-3940256099942544/1712485313")
preloadConfig.bufferSize = 3

Objective-C

GADPreloadConfigurationV2 *preloadConfig =
    [[GADPreloadConfigurationV2 alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/1712485313"];
preloadConfig.bufferSize = 3;

Limites du cache de préchargement

Google Mobile Ads SDK applique une limite à l'échelle de l'application sur le nombre total d'annonces préchargées dans tous les blocs d'annonces et tous les ID de préchargement :

  • Limite par défaut : Google Mobile Ads SDK conserve un maximum de six annonces préchargées en mémoire. Cette limite est partagée entre tous les formats et tous les ID de préchargement.
  • Nous vous recommandons de conserver une taille de mémoire tampon de deux ou trois par ID de préchargement.