Das Vorabladen von Anzeigen ist ein SDK-verwalteter Lade- und Caching-Prozess, der das manuelle Laden und Cachen von Anzeigen überflüssig macht. So können Sie Anzeigen bei Bedarf ausliefern, ohne sie manuell laden oder Callbacks für das Laden von Anzeigen verarbeiten zu müssen.
In diesem Leitfaden erfahren Sie, wie Sie Preload-Anzeigen konfigurieren, die Verfügbarkeit von Preload-Anzeigen prüfen und die vorab geladene Anzeige abrufen und präsentieren.
Vorbereitung
Bevor Sie mit der Anleitung fortfahren, müssen Sie die folgenden Schritte ausführen:
- Installieren Sie das Google Mobile Ads SDK (Beta) Version 0.14.0-alpha01 oder höher.
- Führen Sie die Schritte im Startleitfaden aus.
- Optional: Beispiel-App herunterladen und ausführen.
Anzeigen vorab laden
Rufen Sie startPreload() auf, um mit dem Vorabladen zu beginnen. Das Google Mobile Ads SDK versucht automatisch, fehlgeschlagene Anzeigenanfragen für vorab geladene Konfigurationen noch einmal zu senden.
Im folgenden Beispiel wird das Vorabladen von Anzeigen gestartet:
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);
}
Optional: Vorab geladene Anzeigen ändern
Wenn Sie ändern möchten, welche Anzeigen vorab geladen werden, rufen Sie destroy() und dann startPreload() noch einmal mit der geänderten Konfiguration auf.
Optional: Vorabladen von Anzeigen beenden
Wenn Sie das Vorabladen von Anzeigen beenden möchten, rufen Sie destroy() mit einer Preload-ID auf.
Optional: Puffergröße festlegen
Die Puffergröße steuert die Anzahl der vorab geladenen Anzeigen, die im Speicher gehalten werden. Wenn in Ihrer App Anzeigen schneller ausgeliefert werden, als neue Anzeigen geladen werden können, sollten Sie die Puffergröße auf einen höheren Wert festlegen. Wenn Sie sich Sorgen um die Speichernutzung machen, legen Sie die Puffergröße auf einen niedrigen Wert wie 2 fest.
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);
}
Optional: Benachrichtigungen zum Preloading erhalten
Implementieren Sie PreloadCallback, um Benachrichtigungen für das Vorabladen von Anzeigen zu erhalten. Zum Debuggen und Protokollieren enthalten diese Ereignisse ein „response info“-Objekt.
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);
}
Vorgeladene Anzeige abrufen und einblenden
Anzeigen können eingeblendet werden, sobald onAdsAvailable() aufgerufen wird. Anzeigen werden kontinuierlich zur Verfügung gestellt, wenn Anzeigen ausgeliefert und erschöpft werden. Nachdem Sie eine Anzeige erhalten haben, müssen Sie auf Ereignisse im Anzeigenlebenszyklus achten und die Anzeige einblenden.
Im folgenden Beispiel sehen Sie eine vorab geladene Anzeige:
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);
}
}
Optional: Verfügbarkeit vorab geladener Anzeigen prüfen
Rufen Sie isAdAvailable auf, um zu prüfen, ob Anzeigen verfügbar sind:
Kotlin
private fun isAdAvailable(adUnitID: String): Boolean {
return InterstitialAdPreloader.isAdAvailable(adUnitID)
}
Java
private boolean isAdAvailable(String adUnitId) {
return InterstitialAdPreloader.isAdAvailable(adUnitId);
}