Das Vorabladen von Anzeigen ist eine von Google verwaltete Funktion zum Laden von Anzeigen in Google Mobile Ads SDK, mit der das Laden und Cachen von Anzeigen für Sie verwaltet wird. Für das Vorabladen von Anzeigen ist eine Änderung der Art und Weise erforderlich, wie Sie das Laden von Anzeigen verwalten. Wenn Sie die Leistung durch das Vorladen 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 Referenzen erst verwalten müssen, wenn Sie bereit sind, sie zu präsentieren.
- Automatisches Neuladen:Eine neue Anzeige wird automatisch geladen, wenn Sie eine aus dem Cache abrufen.
- Verwaltete Wiederholungsversuche:Fehlgeschlagene Anfragen werden automatisch mit exponentiellem Backoff wiederholt.
- Ablauf: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, optimiert Google Mobile Ads SDK die Cache-Reihenfolge, um die beste Anzeige auszuliefern.
In dieser Anleitung wird beschrieben, wie Sie das Vorabladen von Anzeigen konfigurieren, die Verfügbarkeit vorab geladener Anzeigen prüfen und die vorab geladene Anzeige einblenden.
Vorbereitung
Bevor Sie mit der Anleitung fortfahren, müssen Sie die folgenden Schritte ausführen:
- Installieren Sie Google Mobile Ads SDK Version 12.6.0 oder höher. Entwicklerressourcen für frühere Versionen sind unter 11.12.0 – 12.2.0 verfügbar. Wir empfehlen jedoch, Version 12.6.0 oder höher zu verwenden und dieser Anleitung zu folgen.
- Google Mobile Ads SDK einrichten:
Laden Sie die Vorschau-Header für das Preloading herunter und fügen Sie sie in Ihr Projekt ein.
Optional: Laden Sie die Beispiel-App für das Vorabladen von Anzeigen herunter und führen Sie sie aus.
Vorabladen von Anzeigen starten
Rufen Sie preload() auf, um mit dem Vorabladen von Anzeigen zu beginnen. Rufen Sie diese Methode nur einmal zu Beginn der App auf. Nachdem Sie preload() aufgerufen haben, lädt Google Mobile Ads SDK automatisch Anzeigen vor und wiederholt fehlgeschlagene Anfragen für vorab geladene Konfigurationen.
Im folgenden Beispiel wird das Vorabladen von Anzeigen gestartet:
Swift
// Start the preloading initialization process.
let request = Request()
let interstitialConfig = PreloadConfigurationV2(
adUnitID: Constants.interstitialAdUnitID, request: request)
InterstitialAdPreloader.shared.preload(
for: Constants.interstitialAdUnitID, configuration: interstitialConfig, delegate: self)
Objective-C
// Start the preloading initialization process.
GADRequest *request = [GADRequest request];
GADPreloadConfigurationV2 *interstitialConfig = [[GADPreloadConfigurationV2 alloc] initWithAdUnitID:interstitialAdUnitID request:request];
[GADInterstitialAdPreloader.sharedInstance preloadForPreloadID:interstitialAdUnitID
configuration:interstitialConfig
delegate:self];
Vorab geladene Anzeige abrufen und einblenden
Beim Vorabladen von Anzeigen werden gecachte Anzeigen in Google Mobile Ads SDK gespeichert.
Wenn Sie eine Anzeige einblenden möchten, rufen Sie adWithPreloadID() auf.
Google Mobile Ads SDK ruft die verfügbare Anzeige ab und lädt die nächste Anzeige automatisch im Hintergrund vor.
Rufen Sie diese Methode erst auf, wenn Sie bereit sind, eine Anzeige zu präsentieren. 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() {
// Verify that the preloaded ad is available before polling.
guard isInterstitialAvailable() else {
printAndShowAlert("Preload interstitial ad is exhausted.")
return
}
// Polling returns the next available ad and load another ad in the background.
let ad = InterstitialAdPreloader.shared.ad(with: Constants.interstitialAdUnitID)
// 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)showInterstitialAd {
// Verify that the preloaded ad is available before polling.
if (![self isInterstitialAvailable]) {
[self logAndShowAlert:@"Preloaded interstitial ad is not available."];
return;
}
// Getting the preloaded ad loads another ad in the background.
GADInterstitialAd *ad = [GADInterstitialAdPreloader.sharedInstance adWithPreloadID:interstitialAdUnitID];
// 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];
}
Verfügbarkeit von Preloading-Anzeigen prüfen
Wählen Sie eine der folgenden Optionen aus, um die Anzeigenverfügbarkeit zu prüfen:
Verfügbarkeit vorab geladener Anzeigen abrufen
Im folgenden Beispiel wird geprüft, ob Anzeigen verfügbar sind:
Swift
private func isInterstitialAvailable() -> Bool {
// Verify that an ad is available before polling.
return InterstitialAdPreloader.shared.isAdAvailable(with: Constants.interstitialAdUnitID)
}
Objective-C
- (BOOL)isInterstitialAvailable {
// Verify that an ad is available before polling.
return [GADInterstitialAdPreloader.sharedInstance isAdAvailableWithPreloadID:(interstitialAdUnitID)];
}
Verfügbarkeit vorab geladener Anzeigen
Registrieren Sie sich für Preload-Ereignisse, um benachrichtigt zu werden, wenn Anzeigen erfolgreich vorab geladen werden, das Vorabladen fehlschlägt oder der Anzeigen-Cache erschöpft ist.
Preload-Ereignisse sind für Analysezwecke vorgesehen. In Preload-Ereignis-Callbacks:
- Rufen Sie
preload()nicht an. - Rufen Sie
adWithPreloadID()nur auf, wenn die Anzeige sofort eingeblendet wird.
Im folgenden Beispiel wird die Registrierung für Werbeereignisse durchgeführt:
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);
}
Vorabladen von Anzeigen beenden
Wenn Sie für eine Preload-ID in der Sitzung keine Anzeigen mehr ausliefern müssen, können Sie das Vorabladen von Anzeigen beenden. Wenn Sie das Vorabladen von Anzeigen für eine bestimmte Vorabladungs-ID beenden möchten, rufen Sie stopPreloadingAndRemoveAdsForPreloadID() mit einer Vorabladungs-ID auf.
Puffergröße festlegen
Die Puffergröße steuert die Anzahl der vorab geladenen Anzeigen, die im Arbeitsspeicher gespeichert werden. Standardmäßig optimiert Google die Puffergröße, um ein Gleichgewicht zwischen Speicherverbrauch und Latenz beim Ausliefern von Anzeigen zu schaffen. 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. Wir empfehlen eine Puffergröße von höchstens vier.
Swift
let preloadConfig = PreloadConfigurationV2(adUnitID: "/21775744923/example/rewarded")
preloadConfig.bufferSize = 3
Objective-C
GADPreloadConfigurationV2 *preloadConfig =
[[GADPreloadConfigurationV2 alloc] initWithAdUnitID:@"/21775744923/example/rewarded"];
preloadConfig.bufferSize = 3;