Reklam ön yüklemesi (beta)

Reklam ön yüklemesi, Google Mobile Ads SDK (Legacy) uygulamasında reklam yükleme ve önbelleğe alma işlemlerini sizin adınıza yöneten, Google tarafından yönetilen bir reklam yükleme özelliğidir. Reklam ön yüklemesi, reklam yüklemeyi yönetme şeklinizde değişiklik yapılmasını gerektirir. Reklam ön yüklemesini kullanarak performansı optimize etmek için özel önbelleğe almayı devre dışı bırakın ve bu sorumluluğu Google Mobile Ads SDK (Legacy) platformuna devredin.

Reklam ön yüklemesi, manuel reklam yüklemeye kıyasla aşağıdaki avantajları sunar:

  • Referans yönetimi: Yüklenen reklamları tutar. Böylece, reklamları göstermeye hazır olana kadar referansları saklamanız gerekmez.
  • Otomatik yeniden yükleme: Önbellekten bir reklam çektiğinizde otomatik olarak yeni bir reklam yükler.
  • Yönetilen yeniden denemeler: eksponansiyel geri yükleme kullanarak başarısız istekleri otomatik olarak yeniden dener.
  • Süre sonu işleme: Reklamların süresi dolmadan önce (genellikle bir saat sonra) reklamları otomatik olarak yeniler.
  • Önbellek optimizasyonu: Birden büyük bir önbellek boyutu kullanırsanız Google Mobile Ads SDK (Legacy), en iyi reklamı yayınlamak için önbellek sırasını optimize eder.

Bu kılavuzda, önceden yüklenen reklamları yapılandırma, önceden yüklenen reklamların kullanılabilirliğini kontrol etme ve önceden yüklenen reklamı gösterme konuları ele alınmaktadır.

Ön koşullar

Bu eğitimle devam etmeden önce Google Mobile Ads SDK (Legacy) uygulamasını ayarlamanız gerekir.

Reklamları önceden yüklemeye başlama

Uygulama başladığında start yöntemini bir kez çağırın. start yöntemini çağırdıktan sonra Google Mobile Ads SDK (Legacy), reklamları otomatik olarak önceden yükler ve önceden yüklenmiş yapılandırmalar için başarısız istekleri yeniden dener.

Aşağıdaki örnekte reklamlar önceden yüklenmeye başlar:

Kotlin

// Define a PreloadConfiguration.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").build()
// Start the preloading with a given preload ID, preload configuration.
InterstitialAdPreloader.start("AD_UNIT_ID", configuration)

Java

// Define a PreloadConfiguration.
PreloadConfiguration configuration = new PreloadConfiguration.Builder("AD_UNIT_ID").build();
// Start the preloading with a given preload ID, preload configuration.
InterstitialAdPreloader.start("AD_UNIT_ID", configuration);

AD_UNIT_ID yerine reklam birimi kimliğinizi yazın.

Önceden yüklenmiş reklamı alma ve gösterme

Reklam ön yüklemesi kullanılırken Google Mobile Ads SDK (Legacy), önbelleğe alınmış reklamları tutar. Reklam göstermek istediğinizde pollAd yöntemini çağırın. Google Mobile Ads SDK (Legacy), kullanılabilir bir reklamı alır ve bir sonraki reklamı arka planda otomatik olarak önceden yükler.

Reklam göstermeye hazır olana kadar pollAd yöntemini çağırmaktan kaçının. Reklamları önbellekte tutmak, Google Mobile Ads SDK (Legacy) uygulamasının süresi dolmuş reklamları otomatik olarak yenilemesine ve önbellek optimizasyonu yapmasına olanak tanır.

Aşağıdaki örnekte, önceden yüklenmiş bir reklam alınmakta ve gösterilmektedir:

Kotlin

// pollAd() returns the next available ad and loads another ad in the background.
val ad = InterstitialAdPreloader.pollAd("AD_UNIT_ID")

// [Optional] Interact with the ad as needed.
ad?.onPaidEventListener = OnPaidEventListener {
  // [Optional] Send the impression-level ad revenue information to your preferred
  // analytics server directly within this callback.
}

// Show the ad immediately.
ad?.show(activity)

Java

// pollAd() returns the next available ad and loads another ad in the background.
InterstitialAd ad = InterstitialAdPreloader.pollAd("AD_UNIT_ID");

if (ad != null) {
  // [Optional] Interact with the ad object as needed.
  ad.setOnPaidEventListener(
      adValue -> {
        // [Optional] Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.
      });

  // Show the ad immediately.
  ad.show(activity);
}

Önceden yüklenen reklamların kullanılabilirliğini kontrol etme

Reklam kullanılabilirliğini kontrol etmek için aşağıdakilerden birini seçin:

Önceden yüklenmiş reklamların kullanılabilirliğini öğrenme

Aşağıdaki örnekte reklam kullanılabilirliği kontrol edilmektedir:

Kotlin

// Verify that a preloaded ad is available.
if (!InterstitialAdPreloader.isAdAvailable("AD_UNIT_ID")) {
  // No ads are available to show.
}

Java

// Verify that a preloaded ad is available.
if (!InterstitialAdPreloader.isAdAvailable("AD_UNIT_ID")) {
  // No ads are available to show.
}

Önceden yüklenmiş reklam kullanılabilirliğini dinleme

Reklamlar başarıyla önceden yüklendiğinde, önceden yüklenemediğinde veya reklam önbelleği dolduğunda bildirim almak için ön yükleme etkinliklerine kaydolun.

Ön yükleme etkinlikleri, analiz amacıyla kullanılır. Ön yükleme etkinliği geri çağırmalarında:

  • start numarasını arama
  • Reklam hemen gösterilmeyecekse pollAd yöntemini çağırmaktan kaçının.

Aşağıdaki örnekte reklam etkinlikleri için kayıt işlemi gösterilmektedir:

Kotlin

// Define a callback to receive preload events.
val callback =
  object : PreloadCallbackV2() {
    override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo?) {
      // Called when preloaded ads are available.
    }

    override fun onAdsExhausted(preloadId: String) {
      // Called when no preloaded ads are available.
    }

    override fun onAdFailedToPreload(preloadId: String, adError: AdError) {
      // Called when preloaded ads failed to load.
    }
  }

Java

// Define a callback to receive preload events.
PreloadCallbackV2 callback =
    new PreloadCallbackV2() {
      @Override
      public void onAdPreloaded(
          @NonNull String preloadId, @Nullable ResponseInfo responseInfo) {
        // Called when preloaded ads are available.
      }

      @Override
      public void onAdsExhausted(@NonNull String preloadId) {
        // Called when no preloaded ads are available.
      }

      @Override
      public void onAdFailedToPreload(@NonNull String preloadId, @NonNull AdError adError) {
        // Called when preloaded ads failed to load.
      }
    };

Reklamları önceden yüklemeyi durdurma

Oturumda bir önceden yükleme kimliği için tekrar reklam göstermeniz gerekmiyorsa reklamları önceden yüklemeyi durdurabilirsiniz. Belirli bir önceden yükleme kimliği için reklamların önceden yüklenmesini durdurmak istiyorsanız önceden yükleme kimliğiyle destroy yöntemini çağırın. Tüm ön yükleyiciler için önceden yüklemeyi durdurmak üzere destroyAll yöntemini çağırın.

Kotlin

// Stops the preloading and destroy preloaded ads.
InterstitialAdPreloader.destroy("AD_UNIT_ID")
// Stops the preloading and destroy all ads.
InterstitialAdPreloader.destroyAll()

Java

// Stops the preloading and destroy preloaded ads.
InterstitialAdPreloader.destroy("AD_UNIT_ID");
// Stops the preloading and destroy all ads.
InterstitialAdPreloader.destroyAll();

Arabellek boyutunu ayarlama

Arabellek boyutu, bellekte tutulan önceden yüklenmiş reklamların sayısını kontrol eder. Google, varsayılan olarak bellek tüketimini ve reklam sunma gecikmesini dengelemek için arabellek boyutunu optimize eder. Uygulamanız bir sonraki reklam yüklenmeden önce reklam gösteriyorsa bellekte tutulan reklam sayısını artırmak için özel bir arabellek boyutu ayarlayabilirsiniz.

Kotlin

// Define a PreloadConfiguration and set the buffer size to 2 preloaded ads.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(2).build()

Java

// Define a PreloadConfiguration and set the buffer size to 2 preloaded ads.
PreloadConfiguration configuration =
    new PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(2).build();

Önbellek sınırlarını önceden yükleme

Google Mobile Ads SDK (Legacy), tüm reklam birimleri ve önceden yükleme kimlikleri genelinde önceden yüklenen reklamların toplam sayısı için uygulama genelinde bir sınır uygular:

  • Varsayılan sınır: Google Mobile Ads SDK (Legacy), bellekte en fazla 6 önceden yüklenmiş reklam tutar. Bu sınır, tüm biçimler ve önceden yükleme kimlikleri arasında paylaşılır.
  • Her önceden yükleme kimliği için iki arabellek boyutu kullanmanızı öneririz.