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
Unity 2017.4 veya sonraki sürümler.
GMA Unity eklentisinin erken sürümünü indirip içe aktarın.
Unity Editor'da AdMob uygulama kimliğinizi ayarlayın.
Google Mobile Ads Unity eklentisini başlatma
Reklamları yüklemeden önce MobileAds.Initialize() işleviyle Action<InitializationStatus> geri çağırma işlevini kullanarak Google Mobile Ads Unity eklentisini 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 Unity Plugin.
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'daki Öğeler > Google Mobil Reklamlar > Reklam Yerleşimleri'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 (
DontDestroyOnLoadile 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ş reklamı 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.

BannerAdGameObjectyapı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 ayarlayabilirsiniz (50~99%).
- Özel, banner genişliğini ve yüksekliğini belirtmenize olanak tanır.
- Sabit Uyarlanabilir Banner, birkaç seçenek daha sunar:
- 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:
Reklam geri çağırmasıyla uyumlu bir işlev oluşturun.
public void OnBannerAdFailedToLoad(string reason) { Debug.Log("Banner ad failed to load: " + reason); }Yukarıdaki işlevi içeren komut dosyasını sahnedeki herhangi bir GameObject'e ekleyin.
+ düğmesini tıklayın, ardından komut dosyasını eklediğiniz GameObject'i sürükleyip bırakın.

Reklam geri çağırmasıyla bağlamak istediğiniz işlevi seçin. Parametreli reklam geri çağırmaları için, parametre değerini SDK'dan 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 nesnelerinde LoadAd() kolaylık yöntemi bulunur. Bu işlem, düz 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:
Banner
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.
Banner
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ükleyip gösterecek şekilde yapılandırma örneğini aşağıda bulabilirsiniz.
Sahneye bir InterstitialAdGameObject ekleyin ve Auto Load Enabled (Otomatik Yükleme Etkin) özelliğini etkinleştirin. 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. AdGameObject'teki Auto Load özelliğinin SDK'yı başlatmayı unutursanız ç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 bir ö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ıktan sonra, ödüllü reklam yüklendiğinde ve gösterilmeye hazır olduğunda düğmenin sahnede gösterildiğini görürsünüz.
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, MainCamera GameObject'ine bağlıdır.

Sahneye RewardedAdGameObject ekleyin. Ardından, RewardedAdGameObject denetleyicisindeki Geri Arama İşlevleri 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) (Kullanıcı Ödül Kazandığında) seçeneğindeki + 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'ı tıklayın.

Projeyi çalıştırıp ödüllü bir reklamı izledikten sonra,
RewardedTestScript.OnUserEarnedReward() reklamla etkileşimde bulunduğunuz için ödüllendirileceğiniz zaman çağrılır.