Bu kılavuzda, yerel reklamları bir Unity uygulamasında uygulamak için yerel reklamların nasıl kullanılacağının yanı sıra bu süreçte dikkate alınması gereken bazı önemli noktalar açıklanmaktadır.
Yerel reklamlar, yerleştirildikleri kullanıcı deneyiminin hem biçimi hem de işleviyle uyumludur. Aynı zamanda, yerleşik oldukları uygulamanın görsel tasarımına da uyum sağlarlar. AdMob'un yerel reklam biçimi, yayıncıların içerikle sorunsuz bir şekilde reklam oluşturmasını sağlar. Unity uygulamalarında yerel koddan tam olarak yararlanan son derece özel oluşturmalar uygulamak için bu teknolojiyi kullanabilirsiniz.
Yerel reklamlar, halihazırda uygulamalarınızı oluştururken kullandığınız GameObjects
türü kullanılarak gösterilir ve bu reklamları, yaşadıkları kullanıcı deneyiminin görsel tasarımına uygun şekilde biçimlendirilebilir. Yerel bir reklam yüklendiğinde uygulamanız, öğelerini içeren yerel bir nesne alır ve SDK yerine Unity uygulaması bu öğeleri gösterir.
Ön koşullar
- Google Mobile Ads Unity eklentisi 7.0.0 veya daha sonraki bir sürüm.
- Başlangıç kılavuzunu tamamlayın.
- Yerel reklam eklentisini indirin ve yükleyin.
Yerel reklam biçimlerini yükleme
Yerel reklamlar, AdLoader
sınıfı üzerinden yüklenir. Bu sınıf, oluşturma sırasında özelleştirilmesi için kendi AdLoader.Builder
sınıfını içerir. ForNativeAd()
yöntemi, AdLoader'ı yerel reklamları işleyecek şekilde yapılandırır.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
}
AdLoader reklam etkinliklerine kaydolma
Bir yerel reklam başarıyla yüklendiğinde veya yüklenemediğinde bilgilendirilmek için aşağıda listelenen etkinlikler için yetki verilen AdLoader
öğesini ekleyin.
OnNativeAdLoaded
Yerel reklam başarıyla yüklendiğinde çağrılır. Yüklenen reklama erişmek için bu etkinliğe yetki vermeniz gerekir.
BaşarısızReklam Yükleme
Yerel reklam yüklenemediğinde çağrılır.
Reklamı yükle
AdLoader
oluşturma işlemini tamamladıktan sonra reklam istemek için LoadAd()
yöntemini çağırın:
adLoader.LoadAd(new AdRequest.Builder().Build());
Reklam isteğini bir araya getirin
Aşağıdaki kod snippet'i, yerel reklamlar istemek için yapılandırılan, başarılı ve başarısız reklam yüklemeleri için yetki verilen kişileri ayarlayan ve reklam isteği gönderen bir AdLoader
öğesinin nasıl oluşturulacağını gösterir.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
adLoader.OnNativeAdLoaded += this.HandleNativeAdLoaded;
adLoader.OnAdFailedToLoad += this.HandleAdFailedToLoad;
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Başarısız reklam yüklemelerini yönetme
OnAdFailedToLoad
etkinliği EventHandle<AdFailedToLoadEventArgs>
türünde.
Bu olaydan kaynaklanan reklam yükleme hatasının nedeni aşağıda gösterilir.
private void RequestNativeAd() {
...
adLoader.OnAdFailedToLoad += this.HandleNativeAdFailedToLoad;
}
private void HandleNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) {
Debug.Log("Native ad failed to load: " + args.Message);
}
Doğal reklam görüntüleyin
Yerel Reklam yüklendiğinde, ilgili reklam biçimine ilişkin reklam etkinliği çağrılır. Uygulamanız, reklamın görüntülenmesinden sorumludur ancak bunu hemen yapmanız gerekmez.
Reklam yükünü kaldır
OnNativeAdLoaded
etkinliği EventHandler<NativeAdEventArgs>
türünde. Bir NativeAd
nesnesinin içine yerleştirilen reklam, gösterildiği gibi NativeAdEventArgs
öğesinden alınabilir:
private NativeAd nativeAd;
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
}
Yerel reklam öğelerini alma
Reklamlar yüklendikten sonra, aşağıda gösterildiği gibi öğelere erişilebilir. Grafik öğeler Texture2D
nesne, metin öğeleri ise string
nesneleri olarak döndürülür.
private bool nativeAdLoaded;
private NativeAd nativeAd;
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for the icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
// Get string for headline asset of native ad.
string headline = this.nativeAd.GetHeadlineText();
}
}
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}
Reklam öğelerine yalnızca ana iş parçacığında (örneğin, bir Unity komut dosyasının Update()
yönteminden) erişilebilmesi gerektiğini unutmayın. Ayrıca aşağıdaki öğelerin her zaman mevcut olacağı garanti edilmez ve bu öğelerin gösterilmeden önce kontrol edilmesi gerekir:
GetStarRating()
GetStore()
GetPrice()
GetAdvertiser()
GetIconTexture()
Reklam Seçenekleri öğesi
Reklam Seçenekleri reklam öğesinin, yerel reklamın bir parçası olarak gösterilmesi zorunludur. Ayrıca, Reklam Seçenekleri reklam öğesinin kolayca görülebilmesi önemlidir. Bu yüzden, arka plan renklerini ve resimlerini uygun şekilde seçin.
Reklam öğesi için GameObjects kaydetme
Reklam öğesinin Unity uygulamanızda gösterilmesi için GameObject
dosyasını kaydetmeniz gerekir. Kayıt başarılı olursa GameObject
öğesini kaydetmek için kullanılan yöntem, bool
döndürür. List<GameObject>
için yöntem, başarıyla kaydedilen GameObject
sayısını belirten bir int
döndürür.
Bir reklam öğesinin kaydı başarısız olursa ilgili yerel reklama ait gösterimler ve tıklamalar tanınmaz.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register the icon ad asset.
}
Bir reklam öğesi için kayıtlı olan GameObject
öğesi, GameObject
öğesinin boyutunu ve şeklini temsil eden bir dönş. Collider bileşenine sahip olmalıdır. Reklam öğelerine kayıtlı GameObject
nesnelerinin Collider
bileşenleri yoksa veya yanlış yapılandırılmış bir nesneye sahipse yerel reklamlar düzgün çalışmaz.
Aşağıdaki kod snippet'inde, yerel bir reklamın başlık reklamı öğesini göstermek için TextMesh
etiketinin kullanıldığı bir BoxCollider
kullanılır. BoxCollider
, GameObject
bileşenine eklendikten sonra TextMesh
bileşeninin metnine uygun şekilde otomatik olarak ölçeklendirilir.
// Create GameObject that will display the headline ad asset.
GameObject headline = new GameObject();
headline.AddComponent<TextMesh>();
headline.GetComponent<TextMesh>().characterSize = 0.5 f;
headline.GetComponent<TextMesh>().anchor = TextAnchor.MiddleCenter;
headline.GetComponent<TextMesh>().color = Color.black;
// Get string of the headline asset.
string headlineText = this.nativeAd.GetHeadlineText();
headline.GetComponent<TextMesh>().text = headlineText;
// Add box collider to the GameObject which will automatically scale.
headline.AddComponent<BoxCollider>();
Demo
Aşağıdaki kod, başarıyla yüklenmiş bir yerel reklamın simge öğesini nasıl alacağınızı, Quad
öğesinin dokusunu ayarlayarak simge reklam öğesini nasıl görüntüleyeceğinizi ve öğeyi görüntülemek için kullanılacak GameObject
öğesini nasıl kaydedeceğinizi göstermektedir. Reklam öğesini alma ve bunu yerel reklam sınıfına kaydetme işlemi, uygulamanın gösterdiği her bir öğe için tekrarlanmalıdır.
private GameObject icon;
private bool nativeAdLoaded;
private NativeAd nativeAd;
...
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
icon = GameObject.CreatePrimitive(PrimitiveType.Quad);
icon.transform.position = new Vector3(1, 1, 1);
icon.transform.localScale = new Vector3(1, 1, 1);
icon.GetComponent<Renderer>().material.mainTexture = iconTexture;
// Register GameObject that will display icon asset of native ad.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register ad asset.
}
}
}
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}