Le préchargement des annonces est une fonctionnalité de chargement des annonces gérée par Google dans Google Mobile Ads SDK. Elle 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 leur chargement. 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 pour que vous n'ayez pas à gérer les références tant que vous n'êtes pas prêt à les afficher.
- Rechargement automatique : une nouvelle annonce est automatiquement chargée lorsque vous en retirez une du cache.
- Nouvelles tentatives gérées : les requêtes ayant échoué sont automatiquement relancées à l'aide d'un intervalle exponentiel entre les tentatives.
- Gestion de l'expiration : les annonces sont automatiquement actualisées 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 commencer le tutoriel, vous devez effectuer les opérations suivantes :
- Installez la version 13.3.0 ou ultérieure de Google Mobile Ads SDK. Les ressources pour les développeurs des versions antérieures sont disponibles sur 11.12.0 à 12.2.0, mais nous vous recommandons d'utiliser la version 13.3.0 ou ultérieure et de suivre ce guide à l'avenir.
- Configurer Google Mobile Ads SDK
- Facultatif : Téléchargez et exécutez l'exemple d'application de préchargement d'annonces.
Importer les en-têtes bêta
Pour utiliser le préchargement d'annonces, importez les en-têtes bêta :
Swift
import GoogleMobileAds_Private
Objective-C
#import <GoogleMobileAds/GoogleMobileAds_Beta.h>
Commencer à précharger les annonces
Pour commencer à précharger les annonces, appelez preload(). Appelez cette méthode une seule fois par ID de préchargement. Nous vous recommandons d'appeler la méthode au début de la session de l'application. Après avoir appelé preload(), Google Mobile Ads SDK précharge automatiquement les annonces et relance les requêtes ayant échoué pour ces ID de préchargement.
L'exemple suivant lance le préchargement 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:(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 d'annonces, Google Mobile Ads SDK contient les annonces mises en cache.
Lorsque vous souhaitez diffuser une annonce, appelez adWithPreloadID().
Google Mobile Ads SDK récupère l'annonce disponible et précharge automatiquement la suivante en arrière-plan.
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 load 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:(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 des annonces préchargées
Pour obtenir les métadonnées des annonces préchargées, vous pouvez rechercher l'objet d'informations sur la 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 sur la réponse :
Swift
private func getInterstitialAdResponseInfo(preloadID: String) {
// Get the response info for the preloaded ad.
if let responseInfo = InterstitialAdPreloader.shared.adResponseInfo(withPreloadID: preloadID) {
print("Ad response ID: \(responseInfo.responseID)")
}
}
Objective-C
- (void)getInterstitialAdResponseInfoWithPreloadID:(NSString *)preloadID {
// Get the response info for the preloaded ad.
GADResponseInfo *responseInfo =
[GADInterstitialAdPreloader.sharedInstance
adResponseInfoWithPreloadID:preloadID];
if (responseInfo) {
NSLog(@"Ad response ID: %@", responseInfo.responseID);
}
}
Vérifier la disponibilité des annonces préchargées
Pour vérifier la disponibilité des annonces, choisissez l'une des options suivantes :
- Obtenir la disponibilité des annonces préchargées
- Écouter la disponibilité des annonces de préchargement
Obtenir la disponibilité des annonces préchargées
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:(NSString *)adUnitID {
// Verify that an ad is available before polling.
return [GADInterstitialAdPreloader.sharedInstance isAdAvailableWithPreloadID:adUnitID];
}
Écouter la disponibilité des annonces préchargées
Enregistrez-vous pour les événements de préchargement afin d'être averti lorsque les annonces sont préchargées avec succès, lorsque le préchargement échoue 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énement de préchargement :
- N'appelez pas
preload(). - Évitez d'appeler
adWithPreloadID(), sauf si l'annonce doit être diffusée immédiatement.
L'exemple suivant enregistre les événements publicitaires :
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.
// [Important] Don't call AdPreloader.shared.preload or AdPreloader.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.
// [Important] 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 de diffuser 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 affiche des annonces avant le chargement de la suivante, vous pouvez définir une taille de la mémoire tampon personnalisée pour augmenter le nombre d'annonces conservées en mémoire. Nous vous recommandons une taille de mémoire tampon de deux ou trois.
Limites du cache de préchargement
Google Mobile Ads SDK applique une limite à l'échelle de l'application au nombre total d'annonces préchargées pour tous les blocs d'annonces et ID de préchargement :
- La limite par défaut (Google Mobile Ads SDK) permet de stocker un maximum de six annonces préchargées en mémoire. Cette limite est partagée entre tous les formats et ID de préchargement.
- Nous vous recommandons de conserver une taille de mémoire tampon de deux ou trois par ID de préchargement.
Swift
let preloadConfig = PreloadConfigurationV2(adUnitID: "/21775744923/example/rewarded")
preloadConfig.bufferSize = 3
Objective-C
GADPreloadConfigurationV2 *preloadConfig =
[[GADPreloadConfigurationV2 alloc] initWithAdUnitID:@"/21775744923/example/rewarded"];
preloadConfig.bufferSize = 3;