Il precaricamento degli annunci è una funzionalità di caricamento degli annunci gestita da Google in Google Mobile Ads SDK che gestisce il caricamento e la memorizzazione nella cache degli annunci per tuo conto. Il precaricamento degli annunci richiede una modifica nel modo in cui gestisci il caricamento degli annunci. Per ottimizzare il rendimento utilizzando il precaricamento degli annunci, disattiva la memorizzazione nella cache personalizzata e delega questa responsabilità a Google Mobile Ads SDK.
Il precaricamento degli annunci offre i seguenti vantaggi rispetto al caricamento manuale degli annunci:
- Gestione dei riferimenti:contiene gli annunci caricati in modo da non dover mantenere i riferimenti finché non sono pronti per essere mostrati.
- Ricaricamento automatico:carica automaticamente un nuovo annuncio quando ne estrai uno dalla cache.
- Ritentativi gestiti:ritenta automaticamente le richieste non riuscite utilizzando il backoff esponenziale.
- Gestione della scadenza:aggiorna automaticamente gli annunci prima che scadano (in genere dopo un'ora).
- Ottimizzazione della cache:se utilizzi una dimensione della cache maggiore di uno, Google Mobile Ads SDK ottimizza l'ordine della cache per pubblicare l'annuncio migliore.
Questa guida illustra come configurare gli annunci precaricati, controllare la disponibilità degli annunci precaricati e mostrare l'annuncio precaricato.
Prerequisiti
Prima di procedere con il tutorial, devi completare i seguenti passaggi:
- Installa Google Mobile Ads SDK versione 13.3.0 o successive. Le risorse per sviluppatori per le versioni precedenti sono disponibili all'indirizzo 11.12.0 - 12.2.0, ma ti consigliamo di utilizzare la versione 13.3.0 o successive e di seguire questa guida in futuro.
- Configura Google Mobile Ads SDK.
- (Facoltativo) Scarica ed esegui l'app di esempio per il precaricamento degli annunci.
Importa le intestazioni beta
Per utilizzare il precaricamento degli annunci, importa le intestazioni beta:
Swift
import GoogleMobileAds_Private
Objective-C
#import <GoogleMobileAds/GoogleMobileAds_Beta.h>
Inizia a precaricare gli annunci
Per iniziare a precaricare gli annunci, chiama il numero preload(). Chiama questo metodo
una sola volta per ogni ID precaricamento. Ti consigliamo di chiamare il metodo all'inizio della sessione dell'app. Dopo aver chiamato preload(), Google Mobile Ads SDK
precarica automaticamente gli annunci e riprova le richieste non riuscite per questi ID di precaricamento.
L'esempio seguente avvia il precaricamento degli annunci:
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];
}
Recupera e mostra l'annuncio precaricato
Quando utilizzi il precaricamento degli annunci, Google Mobile Ads SDK contiene gli annunci memorizzati nella cache.
Quando vuoi mostrare un annuncio, chiama adWithPreloadID().
Google Mobile Ads SDK recupera l'annuncio disponibile e precarica automaticamente
l'annuncio successivo in background.
L'esempio seguente recupera e mostra un annuncio precaricato:
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];
}
Recuperare i metadati degli annunci precaricati
Per ottenere i metadati dell'annuncio precaricati, puoi cercare l'oggetto delle informazioni sulla risposta dell'annuncio. Questo processo ti consente di esaminare i metadati dell'annuncio senza rimuoverli dalla cache.
L'esempio seguente cerca i metadati di un annuncio precaricato dall'oggetto info della risposta:
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);
}
}
Controllare la disponibilità del precaricamento degli annunci
Per verificare la disponibilità degli annunci, scegli una delle seguenti opzioni:
- Ottenere la disponibilità degli annunci precaricati
- Ascolta la disponibilità degli annunci pre-caricati
Recuperare la disponibilità degli annunci precaricati
Il seguente esempio verifica la disponibilità degli annunci:
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];
}
Ascoltare la disponibilità degli annunci precaricati
Registrati per gli eventi di precaricamento per ricevere una notifica quando gli annunci vengono precaricati correttamente, non vengono precaricati o la cache degli annunci è esaurita.
Gli eventi di precaricamento sono destinati a scopi di analisi. All'interno dei callback dell'evento di precaricamento:
- Non chiamare
preload(). - Evita di chiamare
adWithPreloadID()a meno che l'annuncio non venga mostrato immediatamente.
L'esempio seguente registra gli eventi degli annunci:
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);
}
Interrompere il precaricamento degli annunci
Se non devi mostrare di nuovo annunci per un ID precaricamento nella sessione, puoi interrompere il precaricamento degli annunci. Per interrompere
il precaricamento degli annunci per un ID precaricamento specifico, chiama stopPreloadingAndRemoveAdsForPreloadID() con
un ID precaricamento. Per interrompere il precaricamento per tutti i precaricatori, chiama
stopPreloadingAndRemoveAllAds().
Impostare la dimensione del buffer
La dimensione del buffer controlla il numero di annunci precaricati memorizzati. Per impostazione predefinita, Google ottimizza le dimensioni del buffer per bilanciare il consumo di memoria e la latenza della pubblicazione degli annunci. Se la tua app mostra annunci prima che venga caricato l'annuncio successivo, puoi impostare una dimensione del buffer personalizzata per aumentare il numero di annunci memorizzati. Ti consigliamo una dimensione del buffer pari a due o tre.
Limiti di precaricamento della cache
Google Mobile Ads SDK impone un limite a livello di app al numero totale di annunci precaricati in tutte le unità pubblicitarie e gli ID di precaricamento:
- Limite predefinito: Google Mobile Ads SDK contiene un massimo di sei annunci precaricati in memoria. Questo limite è condiviso tra tutti i formati e gli ID precaricamento.
- Ti consigliamo di mantenere una dimensione del buffer di due o tre per ID precaricamento.
Swift
let preloadConfig = PreloadConfigurationV2(adUnitID: "/21775744923/example/rewarded")
preloadConfig.bufferSize = 3
Objective-C
GADPreloadConfigurationV2 *preloadConfig =
[[GADPreloadConfigurationV2 alloc] initWithAdUnitID:@"/21775744923/example/rewarded"];
preloadConfig.bufferSize = 3;