Unity Mobil Oyunuma AdMob ile nasıl reklam eklerim

onat çipli

Unity ile geliştirdiğimiz mobil oyunumuza AdMob ile reklam eklemek için ilk önce AdMob üyeliği açmamız gerekiyor.

https://admob.google.com/home/ bu siteden kolayca gmail hesabınız ile üyelik açabilirsiniz.

üyeliğimizi açtıktan sonra direk AdMob üzerinden yeni bir uygulama oluşturalım. Burada oluşturacağımız uygulamayı daha sonra Unity ile geliştirdiğimiz Mobil Oyunumuz ile ilişkilendireceksiniz.

gelen soruları kendi durumumuza göre dolduruyoruz.

Ben bugün Android üstünden deneyeceğim için Anroid’i seçiyorum.

Oluşturan uygulama kimliğimizi Unity Mobil Oyunumuzun içerisinde kullanacağız.

Reklam birimi oluşturma adımını atlayıp daha sonrada yapabiliriz(çünkü burada oluşturulacak Id’leri uygulamamızı PlayStore’da veya AppStore’da yayınladıktan sonra kullanmamız gerekiyor.)

Burada sadece kullanacağımız reklam biçimleri var. Bu adımı yazının sonunda nasıl oluşturacağımızı ve nerelerde kullanacağımızı göstereceğim.

Şimdi sıra geldi Unity mobil oyunumuzu oluşturmaya.(Proje ismi AdMob’dakiyle aynı olması şart değil)

şimdi AdMob Package’ını indirmek için https://developers.google.com/admob/unity/start bu siteden DOWNLOAD THE PLUGIN butonuna basabiliriz, gelen sayfada indirmemiz gereken dosya GoogleMobileAds.unitypackage’dır :

sonra indirdiğimiz package’ı unity’e bu şekilde import ediyoruz.

Costom Package’a bastıktan sonra gelen ekranda indirdiğimiz GoogleMobileAds.unitypackage adlı dosyayı bulup seçiyoruz.Seçtikten sonra gelen pencereden import’a basıyoruz.

İlk olarak bir tane empty game object oluşturuyoruz Hierarchy penceresinden. ben oluşturduğum gameObject’in adını AdManager diye değiştirdim çünkü bu gameObject’in tek görevi reklamları kontrol etmek olacak.

AdManager Hierarchy penceresinde seçiliyken inspector’den AdManager gameObjectimize yeni bir C# script ekliyoruz, Adını ben yine AdManager koydum istediğniz ismi verebilirsiniz.

Script’imizi oluşturduktan sonra Inspectorden çift tıklayıp onu açıyoruz.

https://developers.google.com/admob/unity/test-ads bu sitede IOS ve Android için ayrı ayrı Banner, Interstitial(FullScreenAd), Rewarded test id’leri bulunuyor oyunumuzu yayınlamadan önce buradaki id’leri kullanamamız gerekiyor.

Android test idleri

Banner : ca-app-pub-3940256099942544/6300978111

Interstitial : ca-app-pub-3940256099942544/1033173712

Rewarded Video : ca-app-pub-3940256099942544/5224354917

Native Advanced : ca-app-pub-3940256099942544/2247696110

AdMob’dan uygulama kimliğinize bakmak isterseniz uygulamayı yantaraftaki kırmızı ile işaretlediğim yere tıklayıp o sekmeden uygulama kimliğinizi görebilirsiniz.


Aşağıdaki kod AdManager.cs script’i şuanlık scriptizin içinde sadece banner göstermek için gerekli olan kod var, _addId string’inin içine kendi uygulama kimliğinizi yapıştırmanız gerekli.

MobileAds.Initialize(_appId) bizim uygulamamızı admob ile birlikte çalışmasını sağlayacaktır.

BannerAd

using GoogleMobileAds.Api;
using UnityEngine;

public class AdManager : MonoBehaviour
{
public static AdManager instance;
//TODO: Buradaki appId'ye kendi appIdinizi yapıştırın.
private string _appId = "Buraya kendi Uygulama kimliğinizi girmelsiniz.";
private BannerView _bannerAd; // Bu test Banner Id si
private string _bannerAdId = "ca-app-pub-3940256099942544/6300978111";
//
void requestBannerAd()
{

_bannerAd = new BannerView(_bannerAdId, AdSize.Banner, AdPosition.Bottom);

AdRequest adRequest = new AdRequest.Builder().Build();

// burada banner reklamımızın AdMobdan yüklüyoruz ve göstermek için hazır hale getiriyoruz gibi düşünebilirsiniz.
_bannerAd.LoadAd(adRequest);
}
void showBannerAd()
{
requestBannerAd();

// yüklenen banner reklamımızı göstermek için aşağıdaki kodu kullanıyoruz.
_bannerAd.Show();
}
private void Update()
{
// Banner reklamımızı test etmek için Update methodunda klavyemizden B tuşuna basacağız.
if (Input.GetKeyDown(KeyCode.B))
{
showBannerAd();
}
}
}

Scriptimize yukarıda verdiğim kodu yapıştırdıktan sonra oyunu başlatıp B tuşuna bastığınızda aşağıdaki console log’larını görmelisiniz, Reklamları görsel olarak görmek istiyorsak oyunumuzu Android cihazda çalıştırmalıyız.(Belki Android Emulator ilede görebiliriz denemedim.)

FullScreenAD

using GoogleMobileAds.Api;
using UnityEngine;

public class AdManager : MonoBehaviour
{
public static AdManager instance;

//TODO: Buradaki appId'ye kendi appIdinizi yapıştırın.
private string _appId = "Buraya kendi Uygulama kimliğinizi girmelsiniz.";
// Tam ekran reklam göstermek için gereken test id si
private string _fullScreenAdId = "ca-app-pub-3940256099942544/1033173712";

private InterstitialAd _fullscreenAd;

// FULLSCREENAD - START
void requestFullScreenAd()
{
_fullscreenAd = new InterstitialAd(_fullScreenAdId);

AdRequest adRequest = new AdRequest.Builder().Build();

_fullscreenAd.LoadAd(adRequest);
}

void showFullScreenAd()
{
requestFullScreenAd();
if (_fullscreenAd.IsLoaded())
{
_fullscreenAd.Show();
}
else
{
Debug.Log("FullScreenAd daha yüklenmedi!!");
}
}
// FULLSCREENAD - END


private void Update()
{
// FullScreen reklamamızı test etmek için F tuşuna basacağız.
if (Input.GetKeyDown(KeyCode.F))
{
showFullScreenAd();
}


}
}

F tuşuna bastığımızdada consolumuzda bu logları görmeliyiz.

RewardedAd

using GoogleMobileAds.Api;
using UnityEngine;

public class AdManager : MonoBehaviour
{
public static AdManager instance;

//TODO: Buradaki appId stringinin içine kendi appIdinizi yapıştırın.
private string _appId = "Buraya kendi Uygulama kimliğinizi girmelsiniz.";
// Ödüllü reklam göstermek için gereken test id'si
private string _rewardedAdID = "ca-app-pub-3940256099942544/5224354917";

private RewardBasedVideoAd _rewardBasedVideoAd;

// REWARDEDAD - START
void requestRewardedAd()
{
_rewardBasedVideoAd = RewardBasedVideoAd.Instance;

AdRequest adRequest = new AdRequest.Builder().Build();

_rewardBasedVideoAd.LoadAd(adRequest, _rewardedAdID);
}

void showRewardedAd()
{
requestRewardedAd();
if (_rewardBasedVideoAd.IsLoaded())
{
_rewardBasedVideoAd.Show();
}else
{
Debug.Log("Rewarded reklamımız daha yüklenmedi!!");
}
}

private void Update()
{
// Rewarded reklamamızı test etmek için R tuşuna basacağız.
if (Input.GetKeyDown(KeyCode.R))
{
showRewardedAd();
}
}
}

BannerView, InterstialAd ve RewardBasedVideoAd bazı callback fonksiyonlara sahip

bu callback functionlarda reklam request etmek yerine başka şeylerde yapabilirsiniz.

Örneğin Rewarded reklamlarda OnRewarded callback fonksiyonu ile karakterinizi yeniden canlandırabilirisiniz.

Telefonda test etmek isterseniz bir canvas oluşturup buttonlarınızı alttaki koddaki button objelerine referans olarak verirseniz, buttonlar aracılığıyla kolayca test edebilirsiniz.

using GoogleMobileAds.Api;
using UnityEngine;
using UnityEngine.UI;

public class AdManager : MonoBehaviour
{
public static AdManager instance;

//TODO: Buradaki appId'ye kendi appIdinizi yapıştırın.
private string _appId = "ca-app-pub-5406409821252930~3890799233";

private BannerView _bannerAd;

private InterstitialAd _fullscreenAd;

private RewardBasedVideoAd _rewardBasedVideoAd;

// Bu test Banner Id si
private string _bannerAdId = "ca-app-pub-3940256099942544/6300978111";
private string _fullScreenAdId = "ca-app-pub-3940256099942544/1033173712";
private string _rewardedAdID = "ca-app-pub-3940256099942544/5224354917";


public Button bannerButton;
public Button fullScreenButton;
public Button rewardedButton;
public Text callbackText;

private void Start()
{
MobileAds.Initialize(_appId);

bannerButton.onClick.AddListener(requestBannerAd);
fullScreenButton.onClick.AddListener(requestFullScreenAd);
rewardedButton.onClick.AddListener(requestRewardedAd);

}

public void requestBannerAd()
{
_bannerAd = new BannerView(_bannerAdId, AdSize.Banner, AdPosition.Bottom);

AdRequest adRequest = new AdRequest.Builder().Build();

// burada banner reklamımızın AdMobdan yüklüyoruz ve göstermek için hazır hale getiriyoruz gibi düşünebilirsiniz.
_bannerAd.LoadAd(adRequest);

_bannerAd.OnAdLoaded += (sender, args) =>
{
callbackText.text = "Bannner Loaded";
_bannerAd.Show();
};
}


public void requestFullScreenAd()
{
_fullscreenAd = new InterstitialAd(_fullScreenAdId);

AdRequest adRequest = new AdRequest.Builder().Build();

_fullscreenAd.LoadAd(adRequest);

_fullscreenAd.OnAdLoaded += (sender, args) => { _fullscreenAd.Show(); };

_fullscreenAd.OnAdClosed += (sender, args) => { callbackText.text = "FullScreenAd closed"; };
}


public void requestRewardedAd()
{
_rewardBasedVideoAd = RewardBasedVideoAd.Instance;

AdRequest adRequest = new AdRequest.Builder().Build();

_rewardBasedVideoAd.LoadAd(adRequest, _rewardedAdID);

_rewardBasedVideoAd.OnAdLoaded += (sender, args) => { _rewardBasedVideoAd.Show(); };

_rewardBasedVideoAd.OnAdRewarded += (sender, reward) =>
{
_bannerAd.Hide();
callbackText.text = "reward earned";
};
}
}

daha fazlası için bu sayfayı ziyaret edebilirsiniz: https://developers.google.com/admob/unity/start

github repo : https://github.com/onatcipli/unity_AdMob

onat çipli

Written by

Software Engineer who enjoys creating mobile applications with Flutter and Dart

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade