Das Vorabladen von Anzeigen ist eine von Google verwaltete Funktion zum Laden von Anzeigen in Google Mobile Ads SDK, mit der das Laden und Caching von Anzeigen für Sie verwaltet wird. Das Vorabladen von Anzeigen erfordert eine Änderung bei der Verwaltung des Ladens von Anzeigen. Wenn Sie die Leistung durch das Vorabladen von Anzeigen optimieren möchten, deaktivieren Sie das benutzerdefinierte Caching und delegieren Sie diese Aufgabe an Google Mobile Ads SDK.
Das Vorabladen von Anzeigen bietet gegenüber dem manuellen Laden von Anzeigen folgende Vorteile:
- Referenzverwaltung:Geladene Anzeigen werden gespeichert, sodass Sie keine Referenzen verwalten müssen, bis Sie bereit sind, sie zu präsentieren.
- Automatisches Aktualisieren:Es wird automatisch eine neue Anzeige geladen, wenn Sie eine Anzeige aus dem Cache abrufen.
- Verwaltete Wiederholungsversuche: Fehlgeschlagene Anfragen werden automatisch mit exponentiellem Backoff wiederholt.
- Ablaufbehandlung:Anzeigen werden automatisch aktualisiert, bevor sie ablaufen (in der Regel nach einer Stunde).
- Cache-Optimierung: Wenn Sie eine Cache-Größe von mehr als eins verwenden, optimiert Google Mobile Ads SDK die Cache-Reihenfolge, um die beste Anzeige auszuliefern.
In diesem Leitfaden wird beschrieben, wie Sie Anzeigen für das Vorabladen konfigurieren, die Verfügbarkeit von Anzeigen für das Vorabladen prüfen und die vorab geladene Anzeige einblenden.
Vorbereitung
Bevor Sie mit dieser Anleitung fortfahren, müssen Sie Google Mobile Ads SDK einrichten.
Anzeigen vorab laden
Rufen Sie beim Start der App einmal die Methode preload auf. Nachdem Sie die Methode preload aufgerufen haben, werden Anzeigen automatisch von Google Mobile Ads SDK vorab geladen und fehlgeschlagene Anfragen für vorab geladene Konfigurationen werden wiederholt.
Im folgenden Beispiel wird das Vorabladen von Anzeigen gestartet:
Swift
// 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
// 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];
Vorab geladene Anzeige abrufen und ausliefern
Wenn Sie das Vorabladen von Anzeigen verwenden, werden im Google Mobile Ads SDK im Cache gespeicherte Anzeigen gespeichert.
Wenn Sie eine Anzeige einblenden möchten, rufen Sie die Methode adWithPreloadID auf.
Google Mobile Ads SDK ruft eine verfügbare Anzeige ab und lädt die nächste Anzeige automatisch im Hintergrund vor.
Rufen Sie die Methode adWithPreloadID erst auf, wenn Sie bereit sind, eine Anzeige einzublenden. Wenn Anzeigen im Cache gespeichert werden, kann Google Mobile Ads SDK abgelaufene Anzeigen automatisch aktualisieren und den Cache optimieren.
Im folgenden Beispiel wird eine vorab geladene Anzeige abgerufen und angezeigt:
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];
}
Metadaten für vorab geladene Anzeigen abrufen
Wenn Sie vorab geladene Anzeigenmetadaten abrufen möchten, können Sie das Antwortinfoobjekt der Anzeige aufrufen. So können Sie die Metadaten der Anzeige prüfen, ohne sie aus dem Cache zu entfernen.
Im folgenden Beispiel werden die Metadaten einer vorab geladenen Anzeige aus dem Antwortinformationsobjekt abgerufen:
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);
}
}
Verfügbarkeit von Anzeigen für das Vorabladen prüfen
Wählen Sie eine der folgenden Optionen aus, um die Verfügbarkeit von Anzeigen zu prüfen:
Verfügbarkeit vorab geladener Anzeigen abrufen
Im folgenden Beispiel wird die Verfügbarkeit von Anzeigen geprüft:
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];
}
Verfügbarkeit vorab geladener Anzeigen überwachen
Registrieren Sie sich für Vorablade-Ereignisse, um benachrichtigt zu werden, wenn Anzeigen erfolgreich vorab geladen wurden, das Vorabladen fehlschlägt oder der Anzeigencache erschöpft ist.
Vorablade-Ereignisse sind für Analysezwecke gedacht. In Callbacks für Vorablade-Ereignisse:
- Rufen Sie
preloadnicht an. - Rufen Sie
adWithPreloadIDnur auf, wenn die Anzeige sofort eingeblendet wird.
Im folgenden Beispiel werden Anzeigenereignisse registriert:
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);
}
Vorabladen von Anzeigen beenden
Wenn Sie in der Sitzung keine Anzeigen mehr für eine Vorablade-ID ausliefern müssen, können Sie das Vorabladen von Anzeigen beenden. Wenn Sie das Vorabladen von Anzeigen für eine bestimmte Vorablade-ID beenden möchten, rufen Sie stopPreloadingAndRemoveAdsForPreloadID mit einer Vorablade-ID auf. Wenn Sie das Vorabladen für alle Preloader beenden möchten, rufen Sie stopPreloadingAndRemoveAllAds auf.
Puffergröße festlegen
Die Puffergröße bestimmt die Anzahl der vorab geladenen Anzeigen, die im Speicher gehalten werden. Standardmäßig optimiert Google die Puffergröße, um den Arbeitsspeicherverbrauch und die Latenz bei der Anzeigenbereitstellung auszugleichen. Wenn in Ihrer App Anzeigen ausgeliefert werden, bevor die nächste Anzeige geladen wird, können Sie eine benutzerdefinierte Puffergröße festlegen, um die Anzahl der im Arbeitsspeicher gespeicherten Anzeigen zu erhöhen.
Swift
let preloadConfig = PreloadConfigurationV2(adUnitID: adUnitID)
// Define a PreloadConfiguration and set the buffer size to 2 preloaded ads.
preloadConfig.bufferSize = 2
Objective-C
GADPreloadConfigurationV2 *preloadConfig =
[[GADPreloadConfigurationV2 alloc] initWithAdUnitID:adUnitID];
// Define a PreloadConfiguration and set the buffer size to 2 preloaded ads.
preloadConfig.bufferSize = 2;
Limits für den Vorab-Cache
Google Mobile Ads SDK erzwingt ein appweites Limit für die Gesamtzahl der vorab geladenen Anzeigen für alle Anzeigenblöcke und Vorablade-IDs:
- Standardlimit: Google Mobile Ads SDK speichert maximal 6 vorab geladene Anzeigen im Arbeitsspeicher. Dieses Limit gilt für alle Formate und Vorablade-IDs.
- Wir empfehlen, für jede Vorablade-ID eine Puffergröße von zwei beizubehalten.