Geçiş reklamları (Eski)

Geçiş reklamları, ana makine uygulamasının arayüzünü kaplayan tam ekran reklamlardır. Genellikle bir uygulama akışındaki doğal geçiş noktalarında (ör. bir oyunda seviyeler arasındaki duraklama sırasında) gösterilirler. Bir uygulama geçiş reklamı gösterdiğinde kullanıcı, reklama dokunup hedefine devam etme veya reklamı kapatıp uygulamaya dönme arasında seçim yapabilir. Örnek olay.

Bu kılavuzda, geçiş reklamlarının bir Unity uygulamasına nasıl entegre edileceği açıklanmaktadır.

Ön koşullar

Geçiş reklamı oluşturma

Bir geçiş reklamı görüntülemenin ilk adımı, GameObject öğesine ekli bir komut dosyasında InterstitialAd nesnesi oluşturmaktır.

using GoogleMobileAds.Api;
...

private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
}

InterstitialAd oluşturucusu aşağıdaki parametreye sahiptir:

  • adUnitId - InterstitialAd öğesinin reklam yüklemesi gereken AdMob reklam birimi kimliği.

Platforma bağlı olarak farklı reklam birimlerinin nasıl kullanıldığını unutmamak önemlidir. iOS'ta reklam istekleri yapmak için iOS reklam birimi, Android'de istek yapmak için Android reklam birimi kullanmanız gerekir.

Her zaman test reklamlarıyla test etme

Yukarıdaki örnek kod, bir reklam birimi kimliği içerir ve bununla reklam isteyebilirsiniz. Her istek için üretim reklamları yerine test reklamları döndürecek şekilde özel olarak yapılandırılmıştır ve bu nedenle kullanımı güvenlidir.

Ancak, bir uygulamayı AdMob kullanıcı arayüzüne kaydettikten ve uygulamanızda kullanmak için kendi reklam birimi kimliklerinizi oluşturduğunuzda, uygulama geliştirme sırasında cihazınızı test cihazı olarak açıkça yapılandırmanız gerekir. Bu son derece önemlidir. Gerçek reklamlarla test etmek (hiç dokunmasanız bile) AdMob politikasına aykırıdır ve hesabınızın askıya alınmasına neden olabilir. Geliştirme sırasında her zaman test reklamları aldığınızdan nasıl emin olabileceğinizle ilgili bilgi için Test Reklamları konusuna bakın.

Reklam yükle

InterstitialAd örneklendikten sonra, sonraki adım bir reklam yüklemektir. Bu işlem, InterstitialAd sınıfındaki loadAd() yöntemi ile yapılır. Tek bir reklam isteği hakkında çalışma zamanı bilgilerini (hedefleme bilgileri gibi) tutan bir AdRequest bağımsız değişkeni alır.

Aşağıda, bir reklamın nasıl yükleneceğini gösteren bir örnek verilmiştir:

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

Reklamı göster

Geçiş reklamları, uygulama akışındaki doğal duraklamalar sırasında gösterilmelidir. Oyunun seviyeleri arasında veya kullanıcı bir görevi tamamladıktan sonra. Bir geçiş reklamı göstermek için isLoaded() yöntemini kullanarak yüklemenin tamamlandığını doğrulayın ve ardından show() yöntemini çağırın.

Önceki kod örneğindeki geçiş reklamı, aşağıda gösterildiği gibi bir oyunun sonunda gösterilebilir.

private void GameOver()
{
  if (this.interstitial.IsLoaded()) {
    this.interstitial.Show();
  }
}

Reklam etkinlikleri

Reklamınızın davranışını daha da özelleştirmek için reklamın yaşam döngüsünde çeşitli etkinlikleri (yükleme, açma, kapatma vb.) bağlayabilirsiniz. Aşağıda gösterildiği gibi, uygun EventHandler için bir temsilci kaydederek bu etkinlikleri dinleyin.

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

     // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);

    // Called when an ad request has successfully loaded.
    this.interstitial.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request failed to load.
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Called when an ad is shown.
    this.interstitial.OnAdOpening += HandleOnAdOpening;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;

    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

public void HandleOnAdLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLoaded event received");
}

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                        + args.Message);
}

public void HandleOnAdOpening(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdOpening event received");
}

public void HandleOnAdClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdClosed event received");
}

OnAdFailedToLoad etkinliği, özel etkinlik bağımsız değişkenleri içeriyor. Hatayı açıklayan bir Message bulunan HandleAdFailedToLoadEventArgs örneğini iletir:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
Reklam etkinliğiAçıklama
OnAdLoaded Bir reklamın yüklenmesi bittiğinde OnAdLoaded etkinliği yürütülür.
OnAdFailedToLoad Bir reklam yüklenemediğinde OnAdFailedToLoad etkinliği çağrılır. Message parametresi, oluşan hatanın türünü açıklar.
OnAdOpening Bu yöntem, reklam görüntülendiğinde cihazın ekranını kaplayacak şekilde çağrılır.
OnAdClosed Bu yöntem, kullanıcının kapat simgesine dokunması veya geri düğmesini kullanması nedeniyle geçiş reklamı kapatıldığında çağrılır. Uygulamanız ses çıkışını veya oyun döngüsünü duraklattıysa buradan devam ettirebilirsiniz.

Geçiş reklamlarını temizleyin

Bir InterstitialAd işlemini tamamladığınızda, referansınızı bırakmadan önce Destroy() yöntemini çağırdığınızdan emin olun:

interstitial.Destroy();

Bu işlem, eklentiye nesnenin artık kullanılmadığını ve kapladığı belleğin geri alınabileceğini bildirir. Bu yöntemin çağrılmaması bellek sızıntılarına yol açar.

Bazı en iyi uygulamalar

Geçiş reklamlarının uygulamanız için doğru reklam türü olup olmadığını düşünün.
Geçiş reklamları, doğal geçiş noktalarına sahip olan uygulamalarda en iyi sonucu verir. Uygulama içinde bir görev tamamlamak (ör. resim paylaşmak veya bir oyun seviyesini tamamlamak) söz konusu noktanın oluşmasını sağlar. Kullanıcı işlemde ara beklediğinden, deneyimini kesintiye uğratmadan geçiş reklamı sunmak kolaydır. Uygulamanızın iş akışının hangi noktalarında geçiş reklamları görüntüleyeceğinizi ve kullanıcının ne tür tepki verebileceğini göz önünde bulundurmaya dikkat edin.
Geçiş reklamı görüntülerken işlemi duraklatmayı unutmayın.
Metin, resim, video ve daha birçok farklı türde geçiş reklamı bulunur. Uygulamanız geçiş reklamı görüntülediğinde bazı kaynakların kullanımını askıya alarak reklamın bunlardan yararlanabilmesini sağlar. Örneğin, geçiş reklamı görüntüleme çağrısı yaptığınızda uygulamanız tarafından üretilen tüm ses çıkışlarını duraklattığınızdan emin olun. Sesleri onAdClosed() etkinlik işleyicide oynatmaya devam edebilirsiniz. Kullanıcı reklamla etkileşimi bitirdiğinde ses çalınır. Ayrıca, reklam görüntülenirken yoğun hesaplama görevlerini (oyun döngüsü gibi) geçici olarak durdurabilirsiniz. Bu, kullanıcının yavaş veya tepkisiz grafikler ya da takılmalarla karşılaşmamasını sağlar.
Yeterli yükleme süresi tanıyın.
Geçiş reklamlarını uygun zamanda gösterdiğinizden emin olmanın yanı sıra kullanıcının bu reklamların yüklenmesini beklemek zorunda kalmamasını sağlamak da önemlidir. show() yöntemini çağırmadan önce loadAd() yöntemini çağırarak reklamı önceden yüklemek, gösterilme zamanı geldiğinde uygulamanızın tam olarak yüklenmiş bir geçiş reklamı olmasını sağlayabilir.
Kullanıcıyı reklamlarla doldurmayın.
Uygulamanızda geçiş reklamlarının sıklığını artırmak geliri artırmanın iyi bir yolu gibi görünse de kullanıcı deneyimini ve tıklama oranlarını düşürebilir. Kullanıcıların uygulama deneyiminizin keyfini çıkaramayacak kadar sık kesinti yaşamadığından emin olun.

Ek kaynaklar

Numuneler

Başarı öyküleri