Geçiş reklamları, ana makine uygulamalarının arayüzünü kaplayan tam ekran reklamlardır. Genellikle bir uygulamanın akışındaki doğal geçiş noktalarında (ör. bir oyundaki seviyeler arasındaki duraklama sırasında) gösterilirler. Uygulama bir geçiş reklamı gösterdiğinde, kullanıcının reklama dokunmasını ve hedefine devam edip kapatmasını ve uygulamaya geri dönmesini seçebilir. Ö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
- Başlangıç kılavuzunu tamamlayın.
Always test with test ads
The sample code below contains an ad unit ID which you can use to request test ads. It's been specially configured to return test ads rather than production ads for every request, making it safe to use.
However, once you register an app in the AdMob UI and create your own ad unit IDs for use in your app, you'll need to explicitly configure your device as a test device during development.
Android
ca-app-pub-3940256099942544/1033173712
iOS
ca-app-pub-3940256099942544/4411468910
Initialize the Mobile Ads SDK
Before loading ads, have your app initialize the Mobile Ads SDK by calling
MobileAds.Initialize()
. This needs to be done only once, ideally at app launch.
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// This callback is called once the MobileAds SDK is initialized.
});
}
}
If you're using mediation, wait until the callback occurs before loading ads as this will ensure that all mediation adapters are initialized.
Uygulama
Geçiş reklamlarını entegre etmenin temel adımları şunlardır:
- Geçiş reklamını yükleyin
- Geçiş reklamını göster
- Geçiş reklamı etkinliklerini dinleme
- Geçiş reklamını temizleyin
- Sonraki geçiş reklamını önceden yükleme
Geçiş reklamını yükleyin
Geçiş reklamı yükleme işlemi, InterstitialAd
sınıfındaki statik Load()
yöntemi kullanılarak gerçekleştirilir. Yükleme yöntemi, reklam birimi başarılı veya başarısız olduğunda çağrılacak bir reklam birimi kimliği, AdRequest
nesnesi ve bir tamamlama işleyici gerektirir. Yüklenen InterstitialAd
nesnesi, tamamlama işleyicisinde parametre olarak sağlanır. Aşağıdaki örnekte InterstitialAd
nasıl yüklenir?
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
private string _adUnitId = "unused";
#endif
private InterstitialAd interstitialAd;
/// <summary>
/// Loads the interstitial ad.
/// </summary>
public void LoadInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (interstitialAd != null)
{
interstitialAd.Destroy();
interstitialAd = null;
}
Debug.Log("Loading the interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdRequest.Builder()
.AddKeyword("unity-admob-sample")
.Build();
// send the request to load the ad.
InterstitialAd.Load(_adUnitId, adRequest,
(InterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Interstitial ad loaded with response : "
+ ad.GetResponseInfo());
interstitialAd = ad;
});
}
Geçiş reklamını göster
Yüklenen geçiş reklamı göstermek için InterstitialAd
örneğinde Show()
yöntemini çağırın. Reklamlar, yükleme başına bir kez gösterilebilir. Reklamın gösterilmeye hazır olduğunu doğrulamak için CanShowAd()
yöntemini kullanın.
/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowAd()
{
if (interstitialAd != null && interstitialAd.CanShowAd())
{
Debug.Log("Showing interstitial ad.");
interstitialAd.Show();
}
else
{
Debug.LogError("Interstitial ad is not ready yet.");
}
}
Geçiş reklamı etkinliklerini dinleme
Reklamın davranışını daha da özelleştirmek için reklamınızın yaşam döngüsündeki açık, kapanan ve farklı etkinlikler dahil edebilirsiniz. Aşağıda gösterildiği gibi bir yetki vererek kaydolarak bu etkinlikleri dinleyin.
private void RegisterEventHandlers(InterstitialAd ad)
{
// Raised when the ad is estimated to have earned money.
ad.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
ad.OnAdImpressionRecorded += () =>
{
Debug.Log("Interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
ad.OnAdClicked += () =>
{
Debug.Log("Interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
ad.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
};
}
Geçiş reklamını temizleyin
InterstitialAd
ile işiniz bittiğinde, referansını bırakmadan önce Destroy()
yöntemini çağırdığınızdan emin olun:
interstitialAd.Destroy();
Böylece eklenti, nesnenin artık kullanılmadığını ve belleğe sahip olduğu belleği geri alabileceğini bildirir. Bu yöntemin çağrılmaması bellek sızıntılarına neden olur.
Sonraki geçiş reklamını önceden yükleme
Geçiş reklamları, tek kullanımlık bir nesnedir. Geçiş reklamı gösterildikten sonra nesne tekrar kullanılamaz. Başka bir geçiş reklamı istemek için yeni bir InterstitialAd
nesnesi oluşturmanız gerekir.
Bir sonraki gösterim fırsatına geçiş reklamı hazırlamak için, OnAdFullScreenContentClosed
veya OnAdFullScreenContentFailed
reklam etkinliği oluşturulduktan sonra geçiş reklamını önceden yükleyin.
private void RegisterReloadHandler(InterstitialAd ad)
{
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += ()
{
Debug.Log("Interstitial Ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
}
Bazı en iyi uygulamalar
- Geçiş reklamlarının uygulamanız için doğru reklam türü olup olmadığını değerlendirin.
- Geçiş reklamları, doğal geçiş noktalarına sahip uygulamalarda en iyi sonucu verir. Uygulama içinde bir görev tamamlamak (ör. resim paylaşmak veya oyunda bir seviye bitirmek), bu tür bir noktayı oluşturur. Kullanıcılar işlemde ara vermeyi beklediğinden, deneyimlerini kesintiye uğratmadan geçiş reklamını sunmak kolaydır. Uygulamanızın iş akışında hangi noktalarda geçiş reklamı göstereceğinizi ve kullanıcının nasıl yanıt verebileceğini dikkate aldığınızdan emin olun.
- Geçiş reklamı gösterirken işlemi duraklatmayı unutmayın.
- Bir dizi farklı geçiş reklamı türü vardır: metin, resim, video ve diğerleri. Uygulamanızda bir geçiş reklamı gösterildiğinde, reklamın bunlardan yararlanmasını sağlamak için bazı kaynakların kullanımını askıya alması önemlidir. Örneğin, bir geçiş reklamı görüntülemek için çağrı yaptığınızda, uygulamanızın oluşturduğu tüm ses çıkışlarını duraklattığınızdan emin olun. Kullanıcı
OnAdFullScreenContentClosed()
Ayrıca, reklam görüntülenirken yoğun hesaplama görevlerini (ör. oyun döngüsü) geçici olarak durdurmayı düşünebilirsiniz. Bu, kullanıcının yavaş veya yanıtsız grafikler veya takılmalı video yaşamamasını sağlar. - Kullanıcıyı reklamlara maruz bırakmayın.
- Uygulamanızdaki 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 kötüleştirebilir ve tıklama oranlarını düşürebilir. Kullanıcıların uygulamanızı artık kullanamayacakları kadar sık bir şekilde kesintiye uğramadıklarından emin olun.
Ek kaynaklar
Örnekler
- HelloWorld örneği: Tüm reklam biçimlerinin minimum düzeyde uygulanması.