Reklam Yerleşimlerini Kullanma

Bu kılavuzda, uygulamanız için reklam oluşturup yayınlamak üzere Google Mobile Ads Unity eklentisinin's Reklam Yerleşimleri özelliğini nasıl kullanacağınız gösterilmektedir.

Ön koşullar

Google Mobile Ads SDK'sını başlatma

Reklamları yüklemeden önce, Action<InitializationStatus> geri çağırma yöntemiyle MobileAds.Initialize() yöntemini çağırarak Mobile Ads SDK'sını başlatın. Bunun yalnızca uygulama lansmanında bir kez yapılması yeterlidir.

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize the Mobile Ads SDK.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

Reklam yerleşimleri oluşturma

Google Mobile Ads ile banner görüntülemenin ilk adımı, bir reklam yerleşimi oluşturup yapılandırmaktır. Unity Düzenleyici'de Öğeler > Google Mobile Ads > Reklam Yerleşimleri'nden Banner, Geçiş Reklamı veya Ödüllü reklam biçimi bir reklam yerleşimi seçebilirsiniz. Daha sonra, üç demo reklam yerleşimi oluşturulur ve kullanıma hazırdır.

Yeni bir Reklam Yerleşimi eklemek için listenin sonundaki Yeni Yerleşim Ekle düğmesini tıklayın. Reklam yerleşimini İnceleyici görünümünde yapılandırabilirsiniz.

Reklam yerleşimi yapılandırması

Her bir yerleşimin aşağıdaki özellikleri vardır:

Yerleşim Adı
Yerleşimin adı. Bir sahnede reklam oluştururken yerleşimleri tanımlamak için kullanılır.
İlan Biçimi
Banner, Ödüllü, Geçiş reklamı. Reklamın türü.
Reklam birimi kimliği
Android ve iOS için banner reklam birimi kimliğinizi sağlayın. En az bir reklam birimi kimliği sağlamanız gerekir.
Tüm sahnelerde kalıcı
İşaretlendiğinde, sahnedeki değişikliklerden (DontDestroyOnLoad ile aynı davranış) bağımsız olarak banner ekranda kalır.
Otomatik Yükleme Etkin
İşaretlendiğinde, reklam yerleşimiyle ilişkili bir sahne yüklendiğinde reklam otomatik olarak yüklenir.

Aşağıdaki ekran görüntüsünde, Muhteşem Banner adlı bir Reklam Yerleşimi örneği gösterilmektedir.

Sahneye AdGameObject ekleme

Unity Düzenleyici'de GameObject > Google Mobile Ads'ü kullanarak sahnenize BannerGame, Interstitial veya Ödüllü reklam biçimleri için AdGameObject ekleyebilirsiniz. Etkin sahneye bir yerleşim eklemek için biçimi seçin.

Sahneye bir AdGameObject ekledikten sonra, Unity Editor'ın Hiyerarşi görünümünde reklamı temsil eden bir GameObject görürsünüz.

Yerleşim nesnesinin adını değiştirerek yerleşimin adını değiştirebilirsiniz. Aşağıdaki ekran görüntüsünde Banner Reklam adlı bir AdGameObject örneği gösterilmektedir.

AdGameObject ayarları

Sahnenizdeki AdGameObject'i Ad Game Object (Script) bileşeninin ayarlarındaki İnceleyici görünümünde yapılandırabilirsiniz.

Reklam Yerleşimi

Yapılandırılmış yerleşimler açılır listesinden reklam yerleşimini seçin. Listede yalnızca doğru biçim için reklam birimleri bulunur. Örneğin, banner reklam oyunu nesneleri için açılır listede yalnızca yapılandırılan banner reklam yerleşimleri gösterilir.

BannerAdGameObject yapılandırması (yalnızca banner)

  • Boyut - Kullanmak istediğiniz banner'ın boyutunu seçin.
    • Sabit Uyarlanabilir Banner birkaç seçenek daha sunar:
      • Yön - Reklam yüksekliğini hesaplamak için kullanılan cihaz yönünü seçin.
      • Tam ekran genişliğini kullan - İşaretlendiğinde, banner tam ekran genişliğini kaplar. Tam ekran genişliğini kullan seçeneğinin işaretini kaldırırsanız ekranın genişlik yüzdesini (%50~%99) ayarlayabilirsiniz.
    • Özel, banner'ın genişliğini ve yüksekliğini sağlamanıza olanak tanır.
  • Reklam Konumu - Banner'ın yerleştirilmesi gereken konumu seçin.

Geri çağırmalar

Reklam geri çağırmalarına karşılık gelen işlevleri uygulayabilirsiniz. Örneğin, bir banner reklamın yüklenemediği zamanı yönetmek istiyorsanız:

  1. Reklam geri çağırmasıyla uyumlu bir işlev oluşturun.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. Yukarıdaki işlevi içeren komut dosyasını sahnedeki herhangi bir GameObject'e ekleyin.

  3. + düğmesini tıklayın ve ardından, komut dosyasını eklediğiniz GameObject öğesini sürükleyip bırakın.

  4. Reklam geri çağırmasına bağlamak istediğiniz işlevi seçin. Parametreleştirilmiş reklam geri çağırmaları için SDK'dan parametre değerini alabilmek üzere dinamik değişkeni kabul edecek işlevi seçin.

Komut dosyasından AdGameObject kullanın

Komut dosyasından AdGameObject örneğini alın

Tüm AdGameObject nesneleri LoadAd() kolaylık yöntemine sahiptir. Bu, düz ve hedeflenmemiş bir AdRequest içeren reklam yükler. Hedefleme uygulamak için kendi yapılandırılmış reklam isteğinizi kullanarak LoadAd(AdRequest adRequest) kullanmalısınız.

Bir AdGameObject örneğini almak için her biçimde aşağıdaki yöntemi kullanın:

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

Döndürülen BannerAdGameObject nesnesinin de kolaylık yöntemleri vardır: Hide() ve Show().

Geçiş

MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

Döndürülen InterstitialAdGameObject nesnesinin bir kolaylık yöntemi vardır: ShowIfLoaded().

Ödül olarak verildi

MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

Döndürülen RewardedAdGameObject nesnesinin bir kolaylık yöntemi vardır: ShowIfLoaded().

Örneğin, bir BannerAdGameObject örneğini alabilir ve aşağıdaki gibi yükleyebilirsiniz:

using UnityEngine;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class BannerTestScript : MonoBehaviour
{
    BannerAdGameObject bannerAd;

    void Start()
    {
        bannerAd = MobileAds.Instance
            .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

        bannerAd.LoadAd();
        ...
    }
    ...
}

BannerAd adlı bir BannerAdGameObject varsa bunun gibi bir örnek görebilirsiniz:

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

AdGameObject'teki temel reklam nesnesine erişme

Bu snippet'ler, AdGameObject ile ilişkili temel reklam nesnesine nasıl erişeceğinizi gösterir.

BannerAdGameObject bannerAd = MobileAds.Instance
    .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

Geçiş

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

Ödül olarak verildi

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

Örnekler

Geçiş reklamı gösterme

Bir oyunu AdGameObject kullanarak yüklemek ve geçiş reklamı göstermek için nasıl yapılandıracağınızla ilgili bir örneği aşağıda bulabilirsiniz.

Sahneye InterstitialAdGameObject ekleyin ve sahne yüklendiğinde reklamın otomatik olarak yüklenmesi için Otomatik Yükleme Etkin özelliğini açın.

Ardından, SDK'yı aşağıdaki şekilde başlattığınızdan emin olun. SDK'yı başlatmayı unutursanız AdGameObject'teki Auto Load özelliğinin çalışmayacağını unutmayın.

Daha sonra, InterstitialAdGameObject.ShowIfLoaded() işlevini çağırarak ekran geçişi arasında bir geçiş reklamı görüntüleyin. Aşağıdaki kod, sahne geçişi arasında bir geçiş reklamı görüntüleme örneğini göstermektedir.

using UnityEngine;
using UnityEngine.SceneManagement;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAd<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }

    public void OnClickShowGameSceneButton()
    {
        // Display an interstitial ad
        interstitialAd.ShowIfLoaded();

        // Load a scene named "GameScene"
        SceneManager.LoadScene("GameScene");
    }
}

Reklam yerleşiminde Otomatik Yükleme özelliğini etkinleştirmeniz nedeniyle, açıkça bir reklam istemeniz gerekmez. Sahne değiştiğinde, hazır olan geçiş reklamları gösterilir.

Bir reklamı manuel olarak istemek için reklam yerleşimi denetleyicisinden Otomatik Yükleme özelliğini devre dışı bırakın ve bunun yerine InterstitialAdGameObject.LoadAd() işlevini çağırın. Aşağıdaki kod snippet'i, bir reklamın manuel olarak nasıl isteneceğini gösterir.

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAdGameObject<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("MobileAds initialized");

            // Load an interstitial ad after the SDK initialization is complete
            interstitialAd.LoadAd();
        });
    }
    ...
}

Ödüllü reklam izleme düğmesini basılı tutma

Reklam yerleşimlerini kullanarak "ödüllü reklam izle" düğmesinin nasıl etkinleştirileceğine dair bir örneği burada bulabilirsiniz.

Sahneye, ödüllü reklam göstermek için kullanılacak bir Button GameObject (bu örnekte Button adlı) ekleyin. Bu düğmeyi yalnızca ödüllü reklam varsa kullanıma sunacağız.

Start() yönteminde, Düğmenin etkin durumunu false olarak değiştirin. Bu şekilde düğme sahneden kaybolur.

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

Sahneye RewardedAdGameObject ekleyin ve açılır menüden AdMob Demo Ödüllü Reklam Reklam Yerleşimi'ni seçin.

RewardedAdGameObject denetleyicisinde Geri Çağırmalar bölümünün altında, ödüllü bir reklam yüklendiğinde işlevin çağrılması için Reklam Yüklemesinde() içindeki + düğmesini tıklayın.

Önceki adımda eklediğiniz Button GameObject öğesini Yok (Nesne) alanına sürükleyip bırakın. Açılır menüden çağrılacak bir işlev seçin. No Function > GameObject > SetActive(bool) seçeneğini tıklayın, ardından onay kutusunu tıklayarak true parametresini parametre olarak gönderir (SetActive(true) olarak adlandırılır).

Bu Geri Çağırmalar bölümünde, RewardedAd.OnUserEarnedReward etkinliği tetiklendiğinde çağrılacak bir etkinlik de bağlayabilirsiniz. Daha fazla bilgi için bu bölüme bakın.

Ardından, tıklandığında ödüllü reklam göstermek için düğmeyi tıklayın. Düğme inceleyicideki On()Click() Geri Çağırması bölümünden + düğmesini tıklayın ve Ödüllü Reklam Yerleşimi GameObject'ini (bu örnekte Ödüllü Reklam olarak adlandırılır) Yok (Nesne) alanına sürükleyip bırakın.

Ardından, RewardedAdGameObject.ShowIfLoaded() işlevini düğmede Click() geri çağırma değerine ekleyin.

Son olarak, SDK'yı başlatmayı unutmayın. Aşağıdaki kod snippet'i, bu örnekte kullanılan sahnenin tam kodudur:

using UnityEngine;

using GoogleMobileAds.Api;

public class MainScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("Button").SetActive(false);

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

Projeyi çalıştırdığınızda, ödüllü reklam yüklendiğinde ve gösterilmeye hazır olduğunda düğme üzerinde sahnede düğmeyi görürsünüz.

ÖdüllüAdGameObject için ödül geri çağırmayı yapılandırma

Bir ödüllü reklam yerleşimine ödüllü geri çağırmanın nasıl yapılandırılacağına dair bir örneği burada bulabilirsiniz. Böylece, bir geri çağırma işlevi çağrıldığında kullanıcıya ödül verebilirsiniz.

Yeni bir komut dosyası oluşturun ve aşağıdaki gibi parametre olarak Reward değerini kabul eden bir işlev tanımlayın.

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

RewardedTestScript komut dosyasını sahnedeki herhangi bir GameObject'e (Reklam Yerleşimi GameObject hariç) ekleyin. Bu örnekte, ana Kamera GameObject'e eklenmiştir.

Sahneye bir RewardedAdGameObject ekleyin. Ardından, RewardedAdGameObject inceleyicideki Geri Çağırmalar bölümünde, kullanıcıya bir ödül verildiğinde işlevin çağrılması için Kullanıcı Kazanılan Ödül (Ödül) bölümünde + düğmesini tıklayın.

Önceki adımda eklediğiniz Ana Kamera GameObject'i None (Object) [Yok (Nesne)] alanına sürükleyip bırakın. Açılır menüden çağrılacak bir işlev seçin. No Function > ÖdüllüTestScript > OnUserRevenueedReward'ı tıklayın.

Projeyi çalıştırıp ödüllü bir reklam izledikten sonra, reklamla etkileşimde bulunduğunuzda ödül kazandığınızda RewardedTestScript.OnUserEarnedReward() çağrılır.