Das Vorabladen von Anzeigen ist eine von Google verwaltete Funktion zum Laden von Anzeigen in Google Mobile Ads SDK, die das Laden und Caching von Anzeigen in Ihrem Namen verwaltet. Für das Vorabladen von Anzeigen muss die Art und Weise geändert werden, wie Sie das Laden von Anzeigen verwalten. Wenn Sie die Leistung durch das Vorabladen von Anzeigen optimieren möchten, deaktivieren Sie das benutzerdefinierte Caching und übertragen 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 auszuliefern.
- Automatisches Neuladen:Eine neue Anzeige wird automatisch geladen, wenn Sie eine aus dem Cache abrufen.
- Verwaltete Wiederholungen: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 1 verwenden, Google Mobile Ads SDK optimiert die Cache-Reihenfolge, um die beste Anzeige auszuliefern.
In dieser Anleitung wird beschrieben, wie Sie Anzeigen vorab laden, die Verfügbarkeit von vorab geladenen Anzeigen prüfen und die vorab geladene Anzeige ausliefern.
Vorbereitung
Bevor Sie mit dieser Anleitung fortfahren, müssen Sie einrichten Google Mobile Ads SDK.
Vorabladen von Anzeigen starten
Rufen Sie beim Starten der App die Methode preload einmal auf. Nachdem
Sie die preload Methode aufgerufen haben, lädt Google Mobile Ads SDK automatisch
Anzeigen vorab und wiederholt fehlgeschlagene Anfragen für vorab geladene Konfigurationen.
Im folgenden Beispiel wird das Vorabladen von Anzeigen gestartet:
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:(nonnull 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];
}
Vorab geladene Anzeigen abrufen und ausliefern
Wenn Sie das Vorabladen von Anzeigen verwenden, werden die im Cache gespeicherten Anzeigen von Google Mobile Ads SDK verwaltet.
Wenn Sie eine Anzeige ausliefern möchten, rufen Sie die Methode adWithPreloadID auf.
Google Mobile Ads SDK ruft eine verfügbare Anzeige ab und lädt im Hintergrund automatisch
die nächste Anzeige vorab.
Rufen Sie die Methode adWithPreloadID erst auf, wenn Sie bereit sind, eine Anzeige auszuliefern. Wenn Anzeigen im Cache gespeichert bleiben, kann Google Mobile Ads SDK abgelaufene Anzeigen automatisch aktualisieren
und den Cache optimieren.
Im folgenden Beispiel wird eine vorab geladene Anzeige abgerufen und ausgeliefert:
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 von vorab geladenen Anzeigen abrufen
Wenn Sie Metadaten von vorab geladenen Anzeigen abrufen möchten, können Sie das Antwortinformationsobjekt der Anzeige suchen. 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 gesucht:
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 vorab geladenen Anzeigen prüfen
Wenn Sie die Verfügbarkeit von Anzeigen prüfen möchten, haben Sie folgende Möglichkeiten:
- Verfügbarkeit von vorab geladenen Anzeigen abrufen
- Verfügbarkeit von vorab geladenen Anzeigen abfragen
Verfügbarkeit von vorab geladenen 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 von vorab geladenen Anzeigen abfragen
Registrieren Sie sich für Vorabladen-Ereignisse, um benachrichtigt zu werden, wenn Anzeigen erfolgreich vorab geladen wurden, das Vorabladen fehlgeschlagen ist oder der Anzeigen-Cache voll ist.
Vorabladen-Ereignisse sind für Analysezwecke vorgesehen. Innerhalb von Rückrufen für Vorabladen-Ereignisse gilt Folgendes:
- Rufen Sie
preloadnicht auf. - Rufen Sie
adWithPreloadIDnur auf, wenn die Anzeige sofort ausgeliefert 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 Anzeigen für eine Vorabladen-ID in der Sitzung nicht mehr ausliefern müssen, können Sie das Vorabladen von Anzeigen beenden. Wenn Sie das Vorabladen von Anzeigen für eine bestimmte Vorabladen-ID beenden möchten, rufen Sie stopPreloadingAndRemoveAdsForPreloadID mit einer Vorabladen-ID auf. Wenn Sie das Vorabladen für alle Vorabladen-IDs beenden möchten, rufen Sie stopPreloadingAndRemoveAllAds auf.
Puffergröße festlegen
Mit der Puffergröße wird die Anzahl der vorab geladenen Anzeigen gesteuert, die im Arbeitsspeicher gespeichert werden. Standardmäßig optimiert Google die Puffergröße, um den Arbeitsspeicherverbrauch und die Latenz bei der Anzeigenauslieferung 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: "ca-app-pub-3940256099942544/1712485313")
preloadConfig.bufferSize = 3
Objective-C
GADPreloadConfigurationV2 *preloadConfig =
[[GADPreloadConfigurationV2 alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/1712485313"];
preloadConfig.bufferSize = 3;
Limits für den Vorabladen-Cache
Google Mobile Ads SDK erzwingt ein app-weites Limit für die Gesamtzahl der vorab geladenen Anzeigen für alle Anzeigenblöcke und Vorabladen-IDs:
- Standardlimit: Google Mobile Ads SDK speichert maximal sechs vorab geladene Anzeigen im Arbeitsspeicher. Dieses Limit gilt für alle Formate und Vorabladen-IDs.
- Wir empfehlen, eine Puffergröße von zwei oder drei pro Vorabladen-ID beizubehalten.