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
Unity 2017.4 veya sonraki sürümler.
GMA Unity eklentisinin erken derlemesini indirin ve içe aktarın.
Unity Editor'da AdMob uygulama kimliğinizi ayarlayın.
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.
- Sabit Uyarlanabilir Banner birkaç seçenek daha sunar:
- 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:
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); }
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 öğesini sürükleyip bırakın.
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:
Banner
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.
Banner
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.