Pramuat iklan (Alfa)

Pemuatan awal iklan adalah fitur pemuatan iklan yang dikelola Google di Google Mobile Ads SDK yang mengelola pemuatan dan penyimpanan iklan dalam cache atas nama Anda. Pramuat iklan memerlukan perubahan dalam cara Anda mengelola pemuatan iklan. Untuk mengoptimalkan performa menggunakan pra-pemuatan iklan, nonaktifkan penyimpanan dalam cache kustom dan serahkan tanggung jawab tersebut ke Google Mobile Ads SDK.

Pemuatan iklan awal menawarkan manfaat berikut dibandingkan pemuatan iklan manual:

  • Pengelolaan referensi: menyimpan iklan yang dimuat sehingga Anda tidak perlu mempertahankan referensi hingga Anda siap menayangkannya.
  • Pemuatan ulang otomatis: otomatis memuat iklan baru saat Anda menarik iklan dari cache.
  • Coba lagi yang dikelola: otomatis mencoba lagi permintaan yang gagal menggunakan backoff eksponensial.
  • Penanganan masa berlaku: otomatis memuat ulang iklan sebelum masa berlakunya berakhir (biasanya setelah satu jam).
  • Pengoptimalan cache: Jika Anda menggunakan ukuran cache yang lebih besar dari satu, Google Mobile Ads SDK mengoptimalkan urutan cache untuk menayangkan iklan terbaik.

Panduan ini membahas cara mengonfigurasi iklan pramuat, memeriksa ketersediaan iklan pramuat, dan menampilkan iklan pramuat.

Prasyarat

Sebelum melanjutkan tutorial, Anda harus menyelesaikan item berikut:

  • Instal Google Mobile Ads SDK versi 12.6.0 atau yang lebih baru. Referensi developer untuk versi sebelumnya tersedia di 11.12.0 - 12.2.0, tetapi sebaiknya gunakan 12.6.0 atau yang lebih tinggi dan ikuti panduan ini ke depannya.
  • Siapkan Google Mobile Ads SDK.

Mulai mem-pramuat iklan

Untuk mulai mem-pramuat iklan, panggil preload(). Panggil metode ini sekali saja di awal aplikasi. Setelah Anda memanggil preload(), Google Mobile Ads SDK akan otomatis memuat iklan dan mencoba kembali permintaan yang gagal untuk konfigurasi yang telah dimuat sebelumnya.

Contoh berikut memulai pra-pemuatan iklan:

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];

Mendapatkan dan menampilkan iklan yang sudah dipramuat

Saat menggunakan pramuat iklan, Google Mobile Ads SDK menyimpan iklan yang di-cache. Saat Anda ingin menampilkan iklan, panggil adWithPreloadID(). Google Mobile Ads SDK mengambil iklan yang tersedia dan otomatis memuat iklan berikutnya di latar belakang.

Hindari memanggil metode ini hingga Anda siap menampilkan iklan. Dengan menyimpan iklan dalam cache, Google Mobile Ads SDK dapat otomatis memperbarui iklan yang sudah habis masa berlakunya dan melakukan pengoptimalan cache.

Contoh berikut mengambil dan menampilkan iklan yang sudah dimuat sebelumnya:

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];
}

Memeriksa ketersediaan iklan pemuatan awal

Untuk memeriksa ketersediaan iklan, pilih salah satu opsi berikut:

Mendapatkan ketersediaan iklan yang sudah dipramuat

Contoh berikut memeriksa ketersediaan iklan:

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)];
}

Mendengarkan ketersediaan iklan yang sudah dimuat sebelumnya

Daftarkan peristiwa pramuat untuk mendapatkan notifikasi saat iklan berhasil dipramuat, gagal dipramuat, atau cache iklan habis.

Peristiwa pra-muat ditujukan untuk tujuan analisis. Dalam callback peristiwa pra-muat:

  • Jangan memanggil preload().
  • Hindari memanggil adWithPreloadID() kecuali jika iklan akan ditampilkan segera.

Contoh berikut mendaftarkan peristiwa iklan:

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);
}

Menghentikan pemuatan iklan di awal

Jika tidak perlu menampilkan iklan untuk ID pramuat lagi dalam sesi, Anda dapat menghentikan pramuat iklan. Untuk berhenti memuat iklan lebih awal untuk ID pramuat tertentu, panggil stopPreloadingAndRemoveAdsForPreloadID() dengan ID pramuat.

Menetapkan ukuran buffer

Ukuran buffer mengontrol jumlah iklan yang dipramuat dan disimpan dalam memori. Secara default, Google mengoptimalkan ukuran buffer untuk menyeimbangkan pemakaian memori dan latensi penayangan iklan. Jika aplikasi Anda menampilkan iklan sebelum iklan berikutnya dimuat, Anda dapat menetapkan ukuran buffer kustom untuk meningkatkan jumlah iklan yang disimpan dalam memori. Sebaiknya gunakan ukuran buffer maksimal empat.

Swift

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

Objective-C

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