Reklam Yerleşimleri

Bu kılavuzda, uygulamanız için reklam oluşturmak ve görüntülemek amacıyla Google Mobil Reklamlar Unity eklentisinin 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ğırmasıyla MobileAds.Initialize() yöntemini çağırarak Mobile Ads SDK'sını başlatın. Bu işlem yalnızca bir kez, ideal olarak uygulamanın lansmanında yapılması gerekir.

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 Mobil Reklamlar'da banner görüntülemenin ilk adımı bir reklam yerleşimi oluşturmak ve yapılandırmaktır. Unity Düzenleyici'de Öğeler > Google Mobil Reklamlar > Reklam Yerleşimleri'nden Banner, Geçiş Reklamı veya Ödüllü reklam biçiminde bir reklam yerleşimi seçebilirsiniz. Daha sonra üç demo reklam yerleşimi oluşturulur ve kullanıma hazır olur.

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ünden yapılandırabilirsiniz.

Reklam yerleşimi yapılandırması

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

Yerleşim Adı
Yerleşimin adı. Bir sahnede reklam ayarlarken 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 girin. En az bir reklam birimi kimliği sağlamanız gerekir.
Ekranlar genelinde kalıcı
İşaretlendiğinde, sahne değişikliklerinden bağımsız olarak banner ekranda kalır (DontDestroyOnLoad ile aynı davranış).
Otomatik Yükleme Etkin
Bu seçenek işaretlendiğinde, reklam yerleşimiyle ilişkilendirilmiş bir sahne yüklendiğinde reklam otomatik olarak yüklenir.

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

Sahneye AdGameObject ekleme

Unity Düzenleyici'de GameObject > Google Mobil Reklamlar'ı kullanarak sahnenize Banner, Geçiş Reklamı veya Ödüllü reklam biçimleri için AdGameObject ekleyebilirsiniz. Etkin sahneye yerleşim eklemek için biçimi seçin.

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

GameObject'in 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ı

Reklam Oyunu Nesnesi (Komut Dosyası) bileşeninin ayarlarında, Denetleyici görünümünden sahnenizdeki AdGameObject'i yapılandırabilirsiniz.

Reklam Yerleşimi

Yapılandırılmış yerleşimlerin açılır listesinden reklam yerleşimini seçin. Listede yalnızca doğru biçime sahip reklam birimleri bulunur. Örneğin, banner reklam oyunu nesneleri için açılır liste yalnızca yapılandırılmış banner reklam yerleşimlerini gösterir.

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 genişliği yüzdesini (%50~%99) ayarlayabilirsiniz.
    • Özel seçeneği, banner genişliğini ve yüksekliğini sağlamanıza olanak tanır.
  • Reklam Konumu - Banner'ın yerleştirilmesi gereken konumu seçin.

Geri Aramalar

Reklam geri çağırmalarına karşılık gelen işlevler uygulayabilirsiniz. Örneğin, bir banner reklamın yüklenemediğinde bunu yapmak istiyorsanız:

  1. Reklam geri çağırma işleviyle 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, 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. Parametre haline getirilmiş reklam geri çağırmaları için dinamik değişkeni kabul edecek işlevi seçin. Böylece parametre değerini SDK'dan alabilirsiniz.

Komut dosyasından AdGameObject kullan

Komut dosyasından AdGameObject örneğini alma

AdGameObject nesnenin tümü LoadAd() kolaylık yöntemine sahiptir. Bu işlem, düz, hedeflenmemiş bir AdRequest içeren reklam yükler. Hedefleme uygulamak için kendi yapılandırılmış reklam isteğinizi kullanarak LoadAd(AdRequest adRequest) kullanmanız gerekir.

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

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

Döndürülen BannerAdGameObject nesnesi, Hide() ve Show() kolaylık yöntemlerine de sahiptir.

Geçişli

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

Döndürülen InterstitialAdGameObject nesnesi, ShowIfLoaded() adlı kolaylık yöntemine sahip.

Ödül olarak verildi

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

Döndürülen RewardedAdGameObject nesnesi, ShowIfLoaded() adlı kolaylık yöntemine sahip.

Ö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 bir örneğini şu şekilde alabilirsiniz:

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

AdGameObject'teki temel reklam nesnesine erişme

Bu snippet'ler, AdGameObject ile ilişkilendirilmiş temel reklam nesnesine nasıl erişileceğini gösterir.

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

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

Geçişli

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

Bir geçiş reklamı gösterin

Bir oyunu AdGameObject kullanarak geçiş reklamı yüklemek ve göstermek üzere nasıl yapılandıracağınıza dair bir örneği burada bulabilirsiniz.

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

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

Ardından, InterstitialAdGameObject.ShowIfLoaded() işlevini çağırarak ekran geçişi arasında bir geçiş reklamı gösterin. Aşağıdaki kod, bir sahne geçişi arasında geçiş reklamı görüntülemeye ilişkin bir örnek 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ükle özelliğini etkinleştirdiğiniz için açıkça reklam isteğinde bulunmanız gerekmez. Sahne değiştiğinde, hazır bir geçiş reklamı görünür.

Manuel olarak bir reklam isteğinde bulunmak isterseniz 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'inde bir reklamın manuel olarak nasıl isteneceği gösterilmektedir.

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 izle" düğmesinin durumunu yönetme

Aşağıda, reklam yerleşimlerini kullanarak "ödüllü reklam izle" düğmesinin nasıl etkinleştirileceğine dair bir örnek verilmiştir.

Sahneye ödüllü reklam göstermek için kullanılacak bir Düğme GameObject (bu örnekte Button adlı) ekleyin. Bu düğmeyi yalnızca ödüllü reklam mümkün olduğunda sağlayacağız.

Start() yönteminde Düğmenin etkin durumunu false olarak değiştirin. Bu işlem, düğmenin sahneden kaybolmasını sağlar.

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

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

Ödüllü reklam yüklendiğinde işlevin çağrılmasını etkinleştirmek için RewardedAdGameObject denetleyicisinin RewardedAdGameObject inceleyicisindeki Geri Çağırmalar bölümünde Reklam Yüklendiğinde'deki + düğmesini tıklayın.

Önceki adımda eklediğiniz Düğme GameObject öğesini Yok (Nesne) alanına sürükleyip bırakın. Açılır menüden çağrılacak bir işlevi seçin. İşlev Yok > GameObject > SetActive(bool)'u tıklayın, ardından true parametresini parametre olarak göndermesi için onay kutusunu işaretleyin (SetActive(true) çağrısı).

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

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

Ardından, RewardedAdGameObject.ShowIfLoaded() işlevini düğmenin On Click() geri çağırmasına ekleyin.

Son olarak, SDK'yı başlatmayı unutmayın. Aşağıdaki kod snippet'i, bu örnekte kullanılan sahnenin 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 sahnede düğmeyi görürsünüz.

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

Aşağıda, bir ödüllü reklam yerleşimine ödüllü geri çağırmanın nasıl yapılandırılacağına dair bir örnek verilmiştir. Böylece, 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 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 denetleyicisinin Geri Çağırma bölümünde, Kullanıcı Tarafından Kazanılan Ödül (Ödül) bölümündeki + düğmesini tıklayarak bir kullanıcıya ödül verildiğinde işlevin çağrılmasını sağlayın.

Önceki adımda eklediğiniz Ana Kamera GameObject öğesini sürükleyip Yok (Nesne) alanına bırakın. Açılır menüden çağrılacak bir işlevi seçin. İşlev Yok > RewardedTestScript > OnUser EarnedReward'yu tıklayın.

Projeyi çalıştırıp ödüllü reklam izlediğinizde, reklamla etkileşimde bulunduğunuz için ödül aldığınızda RewardedTestScript.OnUserEarnedReward() çağrılır.