Il precaricamento degli annunci è un processo di caricamento e memorizzazione nella cache gestito dall'SDK che elimina la necessità di caricamento e memorizzazione nella cache manuali degli annunci. Questo processo ti consente di visualizzare gli annunci quando necessario senza dover caricare manualmente gli annunci o gestire i callback di caricamento degli annunci.
Questa guida illustra come configurare gli annunci precaricati, controllare la disponibilità degli annunci precaricati e come ottenere e mostrare l'annuncio precaricato.
Prerequisiti
Prima di procedere con il tutorial, devi completare i seguenti passaggi:
- Installa l'SDK Google Mobile Ads (beta) versione 0.14.0-alpha01 o successive.
- Completa la Guida introduttiva.
- (Facoltativo) Scarica ed esegui l'app di esempio.
Inizia a precaricare gli annunci
Per iniziare il precaricamento, chiama il numero startPreload(). L'SDK Google Mobile Ads
ritenta automaticamente le richieste di annunci non riuscite per le configurazioni precaricate.
L'esempio seguente avvia il precaricamento degli annunci:
Kotlin
private fun startPreloading(adUnitID: String) {
val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
val preloadConfig = PreloadConfiguration(adRequest)
InterstitialAdPreloader.start(adUnitID, preloadConfig)
}
Java
private void startPreloading(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
InterstitialAdPreloader.start(adUnitId, preloadConfig);
}
(Facoltativo) Modifica il precaricamento degli annunci
Per modificare gli annunci precaricati, chiama
destroy() e poi chiama di nuovo startPreload()
con la configurazione modificata.
(Facoltativo) Interrompere il precaricamento degli annunci
Per interrompere il precaricamento degli annunci, chiama il numero destroy() con
un ID precaricamento.
(Facoltativo) Imposta la dimensione del buffer
La dimensione del buffer controlla il numero di annunci precaricati memorizzati. Se la tua app
mostra gli annunci più velocemente di quanto possano essere caricati i nuovi annunci, imposta la dimensione del buffer su un
valore maggiore. Se l'utilizzo della memoria ti preoccupa, imposta la dimensione del buffer su un valore basso,
ad esempio 2.
Kotlin
private fun setBufferSize(adUnitID: String) {
val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
val preloadConfig = PreloadConfiguration(adRequest, bufferSize = 3)
InterstitialAdPreloader.start(adUnitID, preloadConfig)
}
Java
private void setBufferSize(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest, 3);
InterstitialAdPreloader.start(adUnitId, preloadConfig);
}
(Facoltativo) Ricevere notifiche di precaricamento
Implementa PreloadCallback per ricevere notifiche per gli eventi di precaricamento degli annunci. Per il debug e la registrazione, questi eventi forniscono un oggetto
response info.
Kotlin
private fun startPreloadingWithCallback(adUnitID: String) {
val preloadCallback =
// [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback.
object : PreloadCallback {
override fun onAdFailedToPreload(preloadId: String, adError: LoadAdError) {
Log.i(
TAG,
("Interstitial preload ad $preloadId failed to load with error: ${adError.message}"),
)
// [Optional] Get the error response info for additional details.
// val responseInfo = adError.responseInfo
}
override fun onAdsExhausted(preloadId: String) {
Log.i(TAG, "Interstitial preload ad $preloadId is not available")
}
override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo) {
Log.i(TAG, "Interstitial preload ad $preloadId is available")
}
}
val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
val preloadConfig = PreloadConfiguration(adRequest)
InterstitialAdPreloader.start(adUnitID, preloadConfig, preloadCallback)
}
Java
private void startPreloadingWithCallback(String adUnitId) {
PreloadCallback preloadCallback =
// [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback.
new PreloadCallback() {
@Override
public void onAdFailedToPreload(String preloadId, LoadAdError adError) {
Log.e(
TAG,
String.format(
"Interstitial preload ad %s failed to load with error: %s",
preloadId, adError.getMessage()));
// [Optional] Get the error response info for additional details.
// ResponseInfo responseInfo = adError.getResponseInfo();
}
@Override
public void onAdsExhausted(String preloadId) {
Log.i(TAG, "Interstitial preload ad " + preloadId + " is not available");
}
@Override
public void onAdPreloaded(String preloadId, ResponseInfo responseInfo) {
Log.i(TAG, "Interstitial preload ad " + preloadId + " is available");
}
};
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
InterstitialAdPreloader.start(adUnitId, preloadConfig, preloadCallback);
}
Recuperare e mostrare l'annuncio precaricato
Gli annunci sono disponibili per la pubblicazione una volta chiamato onAdsAvailable(). Gli annunci
vengono resi disponibili continuamente man mano che vengono visualizzati ed esauriti. Dopo aver ricevuto
un annuncio, ascolta gli eventi del ciclo di vita dell'annuncio e mostralo.
L'esempio seguente mostra un annuncio precaricato:
Kotlin
private fun pollAndShowAd(activity: Activity, adUnitID: String) {
// Polling returns the next available ad and loads another ad in the background.
val ad = InterstitialAdPreloader.pollAd(adUnitID)
// Interact with the ad object as needed.
ad?.apply {
Log.d(TAG, "Interstitial ad response info: ${this.getResponseInfo()}")
this.adEventCallback =
object : InterstitialAdEventCallback {
override fun onAdImpression() {
Log.d(TAG, "Interstitial ad recorded an impression.")
}
override fun onAdPaid(value: AdValue) {
Log.d(TAG, "Interstitial ad onPaidEvent: ${value.valueMicros} ${value.currencyCode}")
}
}
// Show the ad.
ad.show(activity)
}
}
Java
private void pollAndShowAd(Activity activity, String adUnitId) {
// Polling returns the next available ad and loads another ad in the background.
final InterstitialAd ad = InterstitialAdPreloader.pollAd(adUnitId);
// Interact with the ad object as needed.
if (ad != null) {
Log.d(TAG, "Interstitial ad response info: " + ad.getResponseInfo());
ad.setAdEventCallback(
new InterstitialAdEventCallback() {
@Override
public void onAdImpression() {
Log.d(TAG, "Interstitial ad recorded an impression.");
}
@Override
public void onAdPaid(AdValue value) {
Log.d(
TAG,
"Interstitial ad onPaidEvent: "
+ value.getValueMicros()
+ " "
+ value.getCurrencyCode());
}
});
// Show the ad.
ad.show(activity);
}
}
(Facoltativo) Controlla la disponibilità degli annunci precaricati
Per sapere se gli annunci sono disponibili, chiama il numero isAdAvailable:
Kotlin
private fun isAdAvailable(adUnitID: String): Boolean {
return InterstitialAdPreloader.isAdAvailable(adUnitID)
}
Java
private boolean isAdAvailable(String adUnitId) {
return InterstitialAdPreloader.isAdAvailable(adUnitId);
}