Başlama

Bu kılavuzda, yerel reklamları uygulamak için yerel reklamlar eklentisinin nasıl kullanılacağı gösterilmektedir yanı sıra süreç boyunca dikkat edilmesi gereken bazı önemli hususlara da değineceğiz.

Doğal reklamlar, yerleştirildikleri kullanıcı deneyiminin hem şekline hem de işlevine uygundur. Yayınlandıkları uygulamanın görsel tasarımına da uyum sağlarlar. Ad Manager'ın doğal reklamlar biçimi, yayıncıların içerikle sorunsuz bir şekilde uyumlu reklamlar oluşturmasına olanak tanır. Bu teknolojiyi, son derece özel geliştirmeler için oluşturma hakkında daha fazla bilgi edinin.

Yerel reklamlar, uygulamalarınızı oluşturmak için kullandığınız GameObjects türleriyle gösterilir ve yerleştirildikleri kullanıcı deneyiminin görsel tasarımıyla eşleşecek şekilde biçimlendirilebilir. Yerel reklam yüklendiğinde uygulamanız kendi öğelerini ve Unity uygulamasını içeren bir yerel nesne aldığında, bunları 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.
  • İndir ve yerel reklamlar eklentisini yükleyin.

Yerel reklam biçimlerini yükleme

Yerel reklamlar, kendi sınıfı olan AdLoader sınıfı aracılığıyla yüklenir. Oluşturma sırasında özelleştirmek için AdLoader.Builder sınıfını kullanın. ForNativeAd() yöntemi, AdLoader'ı doğal 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 kaydolun

Yerel reklam başarıyla yüklendiğinde veya yüklenemediğinde bildirim almak için aşağıda listelenen etkinlikler için AdLoader sınıfına delege sağlar.

OnNativeAdLoaded

Yerel reklam başarıyla yüklendiğinde çağrılır. Bu nedenle, Bu etkinlik için yüklenen reklama erişim yetkisi verin.

OnAdFailedToLoad

Yerel bir reklam yüklenemezse çağrılır.

Reklamı yükle

Bir AdLoader oluşturmayı tamamladığınızda LoadAd() yöntemini çağırın: bir reklam isteyin:

adLoader.LoadAd(new AdRequest.Builder().Build());

Reklam isteğini bir araya getirme

Aşağıdaki kod snippet'i, aynı işleve sahip bir AdLoader doğal reklamlar isteyecek şekilde yapılandırılmış, başarılı ve başarısız reklam için yetki verilmiş kullanıcılar belirler yüklenir ve bir reklam isteğinde bulunur.

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 ele alma

OnAdFailedToLoad etkinliği EventHandle<AdFailedToLoadEventArgs> türünde. Bir reklam yükleme hatasının nedeninin bu etkinlikten ayrıştırılması aşağıda gösterilmektedir.

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üleme

Yerel reklam yüklendiğinde ilgili reklam biçimi için reklam etkinliği çağrılır. Bu durumda reklamınızın gösterilmesinden uygulamanız sorumludur, ancak bunu hemen yapması gerekir.

Reklam sayısını yönetme

OnNativeAdLoaded etkinliği EventHandler<NativeAdEventArgs> türünde. İlgili içeriği oluşturmak için kullanılan reklam öğesi, NativeAd nesnesi içine yerleştirilmiş şekilde, Gösterilen NativeAdEventArgs:

private NativeAd nativeAd;
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
    Debug.Log("Native ad loaded.");
    this.nativeAd = args.nativeAd;
}

Doğal reklam öğeleri alma

Reklamlar yüklendikten sonra, öğelerine aşağıda gösterildiği gibi erişilebilir. Grafik öğeler Texture2D nesneleri, metin öğeleri ise string nesne.

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ığından erişilmesi gerektiğini unutmayın. Örneğin, Unity komut dosyasının Update() yönteminden alınır. Ayrıca aşağıdaki öğelerin her zaman bulunacağı garanti edilmez ve bu durumun görüntülenen:

  • GetStarRating()
  • GetStore()
  • GetPrice()
  • GetAdvertiser()
  • GetIconTexture()

Reklam Seçenekleri öğesi

Reklam Seçenekleri reklam öğesinin, yerel reklamın bir parçası olarak gösterilmesi zorunludur. Reklam Seçenekleri reklam öğesinin kolayca görülmesi de önemlidir. Bu nedenle, arka plan renklerini ve resimlerini uygun şekilde ayarlayın.

GameObjects'i reklam öğesi için kaydetme

Reklam öğesininGameObject Unity uygulaması. Kayıt başarılı olursa, GameObject, bool döndürür. List<GameObject> için yöntem, Başarıyla kaydedilen GameObject sayısını gösteren int.

Bir reklam öğesinin kaydı başarısız olursa ilgili doğal reklamdaki 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ı GameObject için dışbükey Çarpıştırıcısı olmalıdır bileşeninin boyutunu ve şeklini temsil eden GameObject bileşenini seçin. Eğer Reklam öğelerine kaydedilen GameObject nesnede Collider bileşen eksik veya yanlış yapılandırılmış bir reklamınız varsa yerel reklamlar düzgün çalışmaz.

Aşağıdaki kod snippet'inde GameObject öğesineBoxCollider Yerel reklamın başlık reklam öğesini göstermek için TextMesh. Bir BoxCollider, GameObject öğesine eklendi. Şuna otomatik olarak ölçeklenecek: TextMesh bileşeninin metnini barındırın.

// 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ılı bir şekilde simge öğesinin nasıl alınacağını yerel reklam yüklendikten sonra, Quad dokusunu ayarlayarak simge reklam öğesini görüntüleyin. ve öğeyi görüntülemek için kullanılacak GameObject öğesini kaydedin. Bu süreç reklam öğesini alıp yerel reklam sınıfına kaydettirmek tekrarlandığından emin olun.

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