Vorabladen von Anzeigen (Alpha)

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:

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: "ca-app-pub-3940256099942544/1712485313")
preloadConfig.bufferSize = 3

Objective-C

GADPreloadConfigurationV2 *preloadConfig =
    [[GADPreloadConfigurationV2 alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/1712485313"];
preloadConfig.bufferSize = 3;