Başla

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;
}