Geçiş reklamları, barındıkları uygulamanın arayüzünü kaplayan tam ekran reklamlardır. Genellikle bir uygulamanın akışındaki doğal geçiş noktalarında (ör. oyun seviyeleri arasındaki duraklatmalar sırasında) gösterilir. Bir uygulama geçiş reklamı gösterdiğinde kullanıcı, reklama dokunup hedef sayfaya devam edebilir veya reklamı kapatıp uygulamaya geri dönebilir. Kasus çalışması.
Bu kılavuzda, geçiş reklamlarının Unity uygulamasına nasıl entegre edileceği açıklanmaktadır.
Ön koşullar
- Başlangıç kılavuzunu tamamlayın.
Geçiş reklamı oluşturma
Bir geçiş reklamı göstermenin ilk adımı, GameObject
öğesine bağlı 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
sınıfının kurucusu aşağıdaki parametreye sahiptir:
adUnitId
:InterstitialAd
'ın reklam yüklemesi gereken AdMob reklam birimi kimliği.
Platforma bağlı olarak farklı reklam birimlerinin nasıl kullanıldığını bilmek önemlidir. iOS'te reklam isteği göndermek için iOS reklam birimi, Android'de istek göndermek için Android reklam birimi kullanmanız gerekir.
Her zaman test reklamlarıyla test yapın
Yukarıdaki örnek kodda bir reklam birimi kimliği bulunur. Bu kimliği kullanarak reklam isteğinde bulunabilirsiniz. Her istek için üretim reklamları yerine test reklamları döndürecek şekilde özel olarak yapılandırılmıştır. Bu nedenle, güvenli bir şekilde kullanılabilir.
Ancak AdMob kullanıcı arayüzüne bir uygulama kaydettikten ve uygulamanızda kullanmak üzere kendi reklam birimi kimliklerinizi oluşturduktan sonra, 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 yapmak (reklamlara hiç dokunmamış olsanı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ı alabilmeniz için neler yapabileceğiniz hakkında bilgi edinmek üzere Test Reklamları başlıklı makaleyi inceleyin.
Reklam yükleme
InterstitialAd
oluşturulduktan sonra sonraki adım bir reklam yüklemektir.
Bu işlem, InterstitialAd
sınıfındaki loadAd()
yöntemiyle yapılır. Tek bir reklam isteğiyle ilgili çalışma zamanı bilgilerini (hedefleme bilgileri gibi) içeren bir AdRequest
bağımsız değişkeni alır.
Reklamın nasıl yükleneceğini gösteren bir örnek aşağıda 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ı, uygulamanın akışındaki doğal duraklamalar sırasında gösterilmelidir. Bir oyunun seviyeleri arasında veya kullanıcı bir görevi tamamladıktan sonra gösterilmeleri iyi bir örnektir.
Bir geçiş reklamı göstermek için isLoaded()
yöntemini kullanarak reklamın yüklendiğini doğrulayın, ardından show()
yöntemini çağırın.
Önceki kod örneğindeki geçiş reklamı, aşağıdaki şekilde 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 etkinliklere (ör. yükleme, açma, kapatma) bağlanabilirsiniz. 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çerir. Hatayı açıklayan bir Message
ile HandleAdFailedToLoadEventArgs
örneği iletir:
public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
print("Interstitial failed to load: " + args.Message);
// Handle the ad failed to load event.
}
Reklam etkinliği | Açıklama |
---|---|
OnAdLoaded |
OnAdLoaded etkinliği, bir reklamın yüklenmesi tamamlandığında yürütülür. |
OnAdFailedToLoad |
OnAdFailedToLoad etkinliği, bir reklam yüklenemezse çağrılır. Message parametresi, gerçekleşen hatanın türünü açıklar. |
OnAdOpening |
Bu yöntem, reklam cihazın ekranını kaplayacak şekilde gösterildiğinde ç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 bu bölümden devam ettirebilirsiniz. |
Geçiş reklamlarını temizleme
Bir InterstitialAd
ile işiniz bittiğinde, referansınızı kaldırmadan ö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ısına neden olur.
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ının olduğu uygulamalarda en iyi sonucu verir. Uygulama içinde resim paylaşma veya oyun seviyesini bitirme gibi bir görevin tamamlanması, geçiş noktası olarak değerlendirilebilir. Kullanıcı, aksiyonda bir ara verme bekler. Bu nedenle, deneyimini kesintiye uğratmadan geçiş reklamı göstermek kolaydır. Geçiş reklamlarını uygulamanızın iş akışında hangi noktalarda göstereceğinizi ve kullanıcının nasıl yanıt verebileceğini göz önünde bulundurun.
- Geçiş reklamı gösterirken işlemi duraklatmayı unutmayın.
- Metin, resim, video ve daha fazlası gibi birkaç farklı türde geçiş reklamı kullanabilirsiniz. Uygulamanız bir geçiş reklamı gösterdiğinde, reklamın bu kaynaklardan yararlanabilmesi için bazı kaynakların kullanımını da askıya alması önemlidir. Örneğin, geçiş reklamı gösterme çağrısı yaptığınızda uygulamanız tarafından üretilen tüm ses çıkışlarını duraklattığınızdan emin olun. Kullanıcı reklamla etkileşimi bitirdiğinde çağrılan
onAdClosed()
etkinlik işleyicisinde ses oynatmaya devam edebilirsiniz. Ayrıca, reklam gösterilirken yoğun hesaplama görevlerini (ör. oyun döngüsü) geçici olarak duraklatmayı düşünebilirsiniz. Bu sayede kullanıcı, yavaş veya yanıt vermeyen grafikler ya da takılan videolar yaşamaz. - Yeterli yükleme süresi tanıyın.
- Geçiş reklamlarını uygun bir zamanda göstermenizin önemli olduğu kadar, kullanıcının reklamların yüklenmesini beklemek zorunda kalmaması da önemlidir.
show()
çağrısını yapmadan önceloadAd()
çağrısını yaparak reklamı önceden yüklemek, uygulamanızın gösterilme zamanı geldiğinde tamamen yüklenmiş bir geçiş reklamına sahip olmasını sağlayabilir. - Kullanıcıyı reklamlarla boğmayın.
- Uygulamanızda geçiş reklamlarının sıklığını artırmak, geliri artırmanın mükemmel bir yolu gibi görünse de kullanıcı deneyimini olumsuz etkileyebilir ve tıklama oranlarını düşürebilir. Kullanıcıların uygulamanızı kullanmanın keyfini çıkaramayacak kadar sık kesintiye uğramamasını sağlayın.
Ek kaynaklar
Örnekler
- Merhaba Dünya örneği: Tüm reklam biçimlerinin minimum düzeyde uygulanması