Vorabladen von Anzeigen (Alpha)

Plattform auswählen: Android Neu Android iOS Unity

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 zu präsentieren.
  • 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 für das Vorabladen konfigurieren, die Verfügbarkeit von Anzeigen für das Vorabladen prüfen und die vorab geladene Anzeige präsentieren.

Vorbereitung

Bevor Sie mit der Anleitung fortfahren, müssen Sie Folgendes tun:

  • Installieren Sie Google Mobile Ads SDK Version 13.3.0 oder höher. Entwicklerressourcen für frühere Versionen sind unter 11.12.0–12.2.0 verfügbar, wir empfehlen jedoch, Version 13.3.0 oder höher zu verwenden und dieser Anleitung zu folgen.
  • Richten Sie Google Mobile Ads SDK ein.

Beta-Header importieren

Wenn Sie das Vorabladen von Anzeigen verwenden möchten, importieren Sie die Beta-Header:

Swift

import GoogleMobileAds_Private

Objective-C

#import <GoogleMobileAds/GoogleMobileAds_Beta.h>

Vorabladen von Anzeigen starten

Rufen Sie preload() auf, um mit dem Vorabladen von Anzeigen zu beginnen. Rufen Sie diese Methode nur einmal pro Vorabladungs-ID auf. Wir empfehlen, die Methode zu Beginn der App-Sitzung aufzurufen. Nachdem Sie preload() aufgerufen haben, Google Mobile Ads SDK lädt automatisch Anzeigen vorab und wiederholt fehlgeschlagene Anfragen für diese Vorabladungs-IDs.

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:(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 präsentieren

Wenn Sie das Vorabladen von Anzeigen verwenden, werden die im Cache gespeicherten Anzeigen von Google Mobile Ads SDK verwaltet. Wenn Sie eine Anzeige präsentieren möchten, rufen Sie adWithPreloadID() auf. Google Mobile Ads SDK ruft die verfügbare Anzeige ab und lädt automatisch die nächste Anzeige im Hintergrund vorab.

Im folgenden Beispiel wird eine vorab geladene Anzeige abgerufen und präsentiert:

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 load 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:(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 vorab geladener Anzeigen abrufen

Wenn Sie Metadaten vorab geladener 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.adResponseInfo(withPreloadID: preloadID) {
    print("Ad response ID: \(responseInfo.responseID)")
  }
}

Objective-C

- (void)getInterstitialAdResponseInfoWithPreloadID:(NSString *)preloadID {
  // Get the response info for the preloaded ad.
  GADResponseInfo *responseInfo =
      [GADInterstitialAdPreloader.sharedInstance
          adResponseInfoWithPreloadID:preloadID];
  if (responseInfo) {
    NSLog(@"Ad response ID: %@", responseInfo.responseID);
  }
}

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 von Anzeigen für das Vorabladen 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:(NSString *)adUnitID {
  // Verify that an ad is available before polling.
  return [GADInterstitialAdPreloader.sharedInstance isAdAvailableWithPreloadID:adUnitID];
}

Auf Verfügbarkeit von Anzeigen für das Vorabladen warten

Registrieren Sie sich für Vorabladungsereignisse, um benachrichtigt zu werden, wenn Anzeigen erfolgreich vorab geladen wurden, das Vorabladen fehlgeschlagen ist oder der Anzeigen-Cache erschöpft ist.

Vorabladungsereignisse sind für Analysezwecke vorgesehen. Innerhalb von Rückrufen für Vorabladungsereignisse gilt Folgendes:

  • Rufen Sie preload() nicht auf.
  • Rufen Sie adWithPreloadID() nur auf, wenn die Anzeige sofort präsentiert 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.
  // [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 in der Sitzung keine Anzeigen mehr für eine Vorabladungs-ID präsentieren 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. Wenn Sie das Vorabladen für alle Vorabladeprogramme beenden möchten, rufen Sie stopPreloadingAndRemoveAllAds() 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 Arbeitsspeicherverbrauch und Latenz bei der Anzeigenauslieferung zu schaffen. Wenn in Ihrer App Anzeigen präsentiert 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 zwei oder drei.

Limits für den Vorabladungs-Cache

Google Mobile Ads SDK erzwingt ein app-weites Limit für die Gesamtzahl der vorab geladenen Anzeigen für alle Anzeigenblöcke und Vorabladungs-IDs:

  • Standardlimit: Google Mobile Ads SDK speichert maximal sechs vorab geladene Anzeigen im Arbeitsspeicher. Dieses Limit gilt für alle Formate und Vorabladungs-IDs.
  • Wir empfehlen, eine Puffergröße von 2 oder 3 pro Vorabladungs-ID beizubehalten.

Swift

let preloadConfig = PreloadConfigurationV2(adUnitID: "/21775744923/example/rewarded")
preloadConfig.bufferSize = 3

Objective-C

GADPreloadConfigurationV2 *preloadConfig =
    [[GADPreloadConfigurationV2 alloc] initWithAdUnitID:@"/21775744923/example/rewarded"];
preloadConfig.bufferSize = 3;