Reklam Yerleşimleri

Bu kılavuzda, uygulamanız için reklam oluşturmak ve göstermek üzere Google Mobile Ads Unity eklentisinin reklam yerleşimleri özelliğini nasıl kullanacağınız gösterilmektedir.

Ön koşullar

Google Mobile Ads SDK'sını ilk kullanıma hazırlama

Reklamları yüklemeden önce MobileAds.Initialize() işlevini Action<InitializationStatus> geri çağırma işleviyle çağırarak Google Mobile Ads SDK'sını başlatın. Bu işlemin yalnızca bir kez yapılması gerekir. İdeal olarak uygulama başlatılırken yapılmalıdır.

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

Reklam yerleşimleri oluşturma

Google Mobile Ads ile banner göstermenin ilk adımı, bir reklam yerleşimi oluşturup yapılandırmaktır. Unity Editor'da Assets > Google Mobile Ads > Ad Placements (Öğeler > Google Mobil Reklamlar > Reklam Yerleşimleri) bölümünden Banner, Geçiş Reklamı veya Ödüllü biçiminde bir reklam yerleşimi seçebilirsiniz. Ardından üç demo reklam yerleşimi oluşturulur ve kullanıma hazır hale gelir.

Yeni bir reklam yerleşimi eklemek için listenin sonundaki Yeni Yerleşim Ekle düğmesini tıklayın. Reklam yerleşimini inceleyici 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 reklamlar ayarlanırken yerleşimleri tanımlamak için kullanılır.
Reklam 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.
Sahneler arasında kalıcı
İşaretlendiğinde, sahne değişikliklerinden bağımsız olarak banner ekranda kalır (DontDestroyOnLoad ile aynı davranış).
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, My Awesome Banner adlı bir reklam yerleşimi örneği gösterilmektedir.

Sahneye AdGameObject ekleme

Unity Editor'da GameObject > Google Mobile Ads'i (Oyun Nesnesi > Google Mobil Reklamlar) kullanarak banner, geçiş veya ödüllü reklam biçimleri için sahnenize bir AdGameObject ekleyebilirsiniz. Etkin sahneye 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şimin adını, GameObject'in adını değiştirerek değiştirebilirsiniz. Aşağıdaki ekran görüntüsünde, Banner Ad adlı bir AdGameObject örneği gösterilmektedir.

AdGameObject ayarları

Sahnenizdeki AdGameObject'i, Ad Game Object (Script) bileşeninin ayarlarındaki Inspector görünümünden 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 ait reklam birimleri yer alır. Örneğin, banner reklam oyun nesneleri için açılır listede yalnızca yapılandırılmış 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: Bu seçenek iş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şliğini % olarak (50~99%) ayarlayabilirsiniz.
    • Özel, banner genişliğini ve yüksekliğini belirtmenize olanak tanır.
  • Reklam Konumu: Banner'ın yerleştirileceği konumu seçin.

Geri aramalar

Reklam geri aramalarına karşılık gelen işlevler uygulayabilirsiniz. Örneğin, bir banner reklamın yüklenemediği durumu 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, ardından komut dosyasını eklediğiniz GameObject'i sürükleyip bırakın.

  4. Reklam geri çağırmasıyla bağlamak istediğiniz işlevi seçin. Parametreli reklam geri çağırmaları için, SDK'dan parametre değerini alabilmek amacıyla dinamik değişkeni kabul edecek işlevi seçin.

Komut dosyasından AdGameObject'i kullanma

AdGameObject örneğini komut dosyasından alma

Tüm AdGameObject nesneleri, LoadAd() kolaylık yöntemine sahiptir. Bu, basit ve hedeflenmemiş bir AdRequest ile reklam yükler. Hedeflemeyi uygulamak için LoadAd(AdRequest adRequest) kendi yapılandırılmış reklam isteğinizi kullanmanız gerekir.

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

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

Döndürülen BannerAdGameObject nesnesinde Hide() ve Show() kolaylık yöntemleri de bulunur.

Geçiş reklamı

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

Döndürülen InterstitialAdGameObject nesnesinde bir kolaylık yöntemi ShowIfLoaded() bulunur.

Ödüllü

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

Döndürülen RewardedAdGameObject nesnesinde bir kolaylık yöntemi ShowIfLoaded() bulunur.

Örneğin, BannerAdGameObject örneği alıp 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 örneğini şu şekilde alabilirsiniz:

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

AdGameObject'te temel alınan reklam nesnesine erişme

Bu snippet'ler, AdGameObject ile ilişkili 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ş reklamı

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

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

Ödüllü

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 geçiş reklamı yükleyecek ve gösterecek şekilde yapılandırma örneğini aşağıda bulabilirsiniz.

Sahneye bir InterstitialAdGameObject ekleyin ve Otomatik Yükleme Etkin özelliğini açın. Böylece sahne yüklendiğinde reklam otomatik olarak yüklenir.

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

Ardından, InterstitialAdGameObject.ShowIfLoaded() işlevini çağırarak ekran geçişi sırasında bir geçiş reklamı gösterin. Aşağıdaki kodda, sahne geçişi sırasında geçiş reklamı gösterme örneği verilmiştir.

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ştirdiğiniz için reklamı açıkça istemeniz gerekmez. Sahne değiştiğinde, hazır bir geçiş reklamı varsa gösterilir.

Reklamı manuel olarak istemek istiyorsanız reklam yerleşimi denetçisinden 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, 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 işleme

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 Button GameObject (bu örnekte Button olarak adlandırılır) ekleyin. Bu düğmeyi yalnızca ödüllü reklam olduğunda kullanılabilir hale getiririz.

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 listeden AdMob Demo Rewarded Ad reklam yerleşimini seçin.

RewardedAdGameObject denetleyicisindeki Geri Çağırmalar bölümünde, ödüllü reklam yüklendiğinde işlevin çağrılmasını etkinleştirmek için On Ad Loaded()'dan + düğmesini tıklayın.

Önceki adımda eklediğiniz Button GameObject'i None (Object) alanına sürükleyip bırakın. Açılır listeden çağrılacak bir işlev seçin. No Function > GameObject > SetActive(bool)'u tıklayın, ardından onay kutusunu tıklayarak true parametresini gönderin (SetActive(true) çağrısı yapılır).

Bu Geri Aramalar bölümünde, RewardedAd.OnUserEarnedReward etkinliği tetiklendiğinde çağrılacak bir etkinliği de bağlayabilirsiniz. Daha fazla bilgi için bu bölümü inceleyin.

Ardından, tıklandığında ödüllü reklam gösterecek düğmeyi oluşturun. Düğme inceleyicisindeki On Click() Geri Çağırmalar bölümünde + düğmesini tıklayın ve Ödüllü Reklam Yerleşimi GameObject'ini (bu örnekte Rewarded Ad olarak adlandırılır) None (Object) 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 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 sahnede gösterilir.

RewardedAdGameObject için ödül geri çağırması yapılandırma

Geri çağırma işlevi çağrıldığında kullanıcıya ödül verebilmeniz için ödüllü reklam yerleşimine ödüllü geri çağırma işlevinin nasıl yapılandırılacağına dair bir örnek aşağıda verilmiştir.

Yeni bir komut dosyası oluşturun ve aşağıdaki gibi Reward parametresini 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 (AdPlacement GameObject hariç) ekleyin. Bu örnekte, Main Camera GameObject'e eklenmiştir.

Sahneye RewardedAdGameObject ekleyin. Ardından, RewardedAdGameObject denetleyicisindeki Geri Arama bölümünde, bir kullanıcıya ödül verildiğinde işlevin çağrılmasını sağlamak için On User Earned Reward (Reward)'daki + düğmesini tıklayın.

Önceki adımda eklediğiniz Main Camera GameObject'i None (Object) alanına sürükleyip bırakın. Açılır listeden çağrılacak bir işlev seçin. No Function > RewardedTestScript > OnUserEarnedReward'ı (İşlev Yok > ÖdüllüTestKomutDosyası > OnUserEarnedReward) tıklayın.

Projeyi çalıştırıp ödüllü bir reklamı izlediğinizde, reklamla etkileşim kurduğunuz için ödül alacağınız zaman RewardedTestScript.OnUserEarnedReward() çağrılır.