Reklamları önceden yükleme (Alfa)

Reklam önceden yükleme, Google Mobile Ads Unity Plugin içinde Google tarafından yönetilen bir reklam yükleme özelliğidir. Bu özellik, reklam yükleme ve önbelleğe alma işlemlerini sizin adınıza yönetir. Reklam önceden yükleme, reklam yüklemeyi yönetme şeklinizde bir değişiklik yapılmasını gerektirir. Reklam önceden yükleme özelliğini kullanarak performansı optimize etmek için özel önbelleğe almayı devre dışı bırakın ve bu sorumluluğu Google Mobile Ads Unity Plugin'ya devredin.

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

  • Referans yönetimi: Yüklenen reklamları tutar. Böylece, göstermeye hazır olana kadar referansları korumanız gerekmez.
  • Otomatik yeniden yükleme: Önbellekten bir reklam çektiğinizde otomatik olarak yeni bir reklam yükler.
  • Yönetilen yeniden denemeler: Başarısız olan istekler, eksponansiyel geri yükleme kullanılarak otomatik olarak yeniden denenir.
  • Geçerlilik süresi yönetimi: Reklamları geçerlilik süreleri dolmadan (genellikle bir saat sonra) otomatik olarak yeniler.
  • Önbellek optimizasyonu: Birden büyük bir önbellek boyutu kullanıyorsanız Google Mobile Ads Unity Plugin, en iyi reklamı sunmak 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 reklamları gösterme konuları ele alınmaktadır.

Ön koşullar

Eğiticiye devam etmeden önce aşağıdaki öğeleri tamamlamanız gerekir:

Reklamları önceden yüklemeye başlama

Reklamları önceden yüklemeye başlamak için Preload() işlevini çağırın. Bu yöntemi yalnızca önceden yükleme kimliği başına bir kez çağırın. Uygulama oturumu başladığında yöntemi çağırmanızı öneririz. Preload() işlevini çağırdıktan sonra Google Mobile Ads Unity Plugin, reklamları otomatik olarak önceden yükler ve bu önceden yükleme kimlikleri için başarısız olan istekleri yeniden dener.

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

var preloadConfiguration = new PreloadConfiguration
{
    AdUnitId = AD_UNIT_ID,
    Request = new AdRequest(),
};

// Start the preloading initialization process after MobileAds.Initialize().
InterstitialAdPreloader.Preload(
    // The Preload ID can be any unique string to identify this configuration.
    AD_UNIT_ID,
    preloadConfiguration);

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

Reklam önceden yükleme kullanılırken Google Mobile Ads Unity Plugin, önbelleğe alınmış reklamları tutar. Reklam göstermek istediğinizde DequeueAd() işlevini çağırın. Google Mobile Ads Unity Plugin, kullanılabilir reklamı alır ve arka planda bir sonraki reklamı otomatik olarak önceden yükler.

Aşağıdaki örnekte, önceden yüklenmiş bir reklam alınır ve gösterilir:

// DequeueAd returns the next available ad and loads another ad in the background.
var ad = InterstitialAdPreloader.DequeueAd(AD_UNIT_ID);

if (ad != null)
{
    // [Optional] Interact with the ad object as needed.
    ad.OnAdPaid += (AdValue value) =>
    {
        Debug.Log($"Ad paid: {value.CurrencyCode} {value.Value}");
        // [Optional] Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.
    };

    // Do not hold onto preloaded ads, always show a preloaded ad immediately.
    ad.Show();
}

Ö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 alma

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

var isAdAvailable = InterstitialAdPreloader.IsAdAvailable(AD_UNIT_ID);

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

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

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

  • Preload() numarasını aramayın.
  • Reklam hemen gösterilmeyecekse DequeueAd() işlevini çağırmaktan kaçının.

Aşağıdaki örnekte reklam etkinliklerine kaydolunur:


void StartPreloadWithCallbacks()
{
    var preloadConfiguration = new PreloadConfiguration
    {
        AdUnitId = AD_UNIT_ID,
        Request = new AdRequest(),
    };

    // Start the preloading initialization process after MobileAds.Initialize().
    InterstitialAdPreloader.Preload(
        // The Preload ID can be any unique string to identify this configuration.
        AD_UNIT_ID,
        preloadConfiguration,
        onAdPreloaded,
        onAdFailedToPreload,
        onAdsExhausted);
}

void onAdPreloaded(string preloadId, ResponseInfo responseInfo)
{
    Debug.Log($"Preload ad configuration {preloadId} was preloaded.");
}

void onAdFailedToPreload(string preloadId, AdError adError)
{
    string errorMessage = $"Preload ad configuration {preloadId} failed to " +
                          $"preload with error : {adError.GetMessage()}.";
    Debug.Log(errorMessage);
}

void onAdsExhausted(string preloadId)
{
    Debug.Log($"Preload ad configuration {preloadId} was exhausted");
    // [Important] Don't call Preload() or DequeueAd() from onAdsExhausted.
}

Reklamların önceden yüklenmesini durdurma

Oturumda bir önceden yükleme kimliği için tekrar reklam göstermeniz gerekmiyorsa reklamların önceden yüklenmesini durdurabilirsiniz. Belirli bir önceden yükleme kimliği için reklamların önceden yüklenmesini durdurmak üzere Destroy() işlevini önceden yükleme kimliğiyle birlikte çağırın. Tüm önceden yükleyiciler için önceden yüklemeyi durdurmak üzere DestroyAll() işlevini çağırın.

InterstitialAdPreloader.Destroy(AD_UNIT_ID);
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üketimi ile reklam yayınlama gecikmesi arasında denge kurmak 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. İki veya üç arabellek boyutu öneririz.

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

Google Mobile Ads Unity Plugin, tüm reklam birimleri ve önceden yükleme kimlikleri genelinde önceden yüklenen reklamların toplam sayısıyla ilgili uygulama genelinde bir sınır uygular:

  • Varsayılan sınır: Google Mobile Ads Unity Plugin bellekte en fazla altı önceden yüklenmiş reklam tutar. Bu sınır, tüm biçimler ve önceden yükleme kimlikleri arasında paylaşılır.
  • Önceden yükleme kimliği başına iki veya üç arabellek boyutu tutmanızı öneririz.
new PreloadConfiguration
{
    AdUnitId = AD_UNIT_ID,
    Request = new AdRequest(),
    BufferSize = 5
};