Unity 3D Android Oyunlarınıza AdMob Reklamları Eklemek – Resimli Anlatım

Yayınlandı: 26 Mayıs 2014 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde
Etiketler:, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

GÜNCELLEME – 24.04.2017: Rewarded video reklamlar yazıya eklendi.

Hepinize merhaba,

Bana gerek Facebook’tan gerek başka platformlardan Unity‘de yapılan Android oyunlarına nasıl reklam eklenebileceği ile ilgili çok fazla soru geliyordu. Ama kendi oyunlarıma hiç reklam eklemediğimden ben de bilmiyordum. Hem kendim bu işin nasıl yapıldığını öğrenmek hem de size göstermek için bu yazıyı yazıyorum.

Derste AdMob reklamlarını kullanacağız. Derse başlamadan önce Unity’nin en güncel versiyonuna sahip olduğunuzdan ve Android SDK‘yı düzgün kurmuş olduğunuzdan emin olun: https://yasirkula.com/2013/07/17/unity-android-sdk-kurulumu-resimli-anlatim/

Yazıyı yazarken faydalandığım kaynak: https://firebase.google.com/docs/admob/unity/start

İlk yapmanız gereken şu adrese gitmek: https://github.com/googleads/googleads-mobile-plugins/releases/latest

Oradaki GoogleMobileAds.unitypackage dosyasını indirin:

resim1

Şimdi şu adrese gidin: https://www.google.com/admob/

Buradan kendinize bir AdMob hesabı oluşturun (Sign up for AdMob). Öncesinde bir Gmail hesabınızın olması gerekiyor.

Hesabınızı oluşturduktan sonra anasayfadan Monetize new app butonuna tıklayın:

resim2

Eğer reklam koyacağınız oyununuz Google Play‘de yayında ise “Search for your app” yazan yere oyununuzun adını yazın ve listeden oyununuzu seçin. Yayında değilse “Add your app manually” seçeneğini seçin. “App name” kısmına oyunun adını yazıp Platform olarak Android‘i seçin. Ardından “Add app” butonuna tıklayın:

resim3

a) Banner Reklamlar

Reklam türü olarak Banner seçip aşağıdan dilerseniz reklam kutucuğunu kişiselleştirin. “Ad unit name” olarak “AdmobReklam” (veya istediğiniz başka bir isim) girin ve Save butonuna basın:

resim4

b) Interstitial (Tam ekran) Reklamlar

Reklam türü olarak Interstitial‘ı seçin. Interstitial timeout kısmına ne değer verirseniz siz sistemden interstitial reklam istediğinizde isteğiniz timeout olmadan önce o kadar süreniz olur. Bence değerini olduğu gibi bırakın. “Ad unit name” olarak “AdmobReklam” (veya istediğiniz başka bir isim) girin. Bu isimde başka reklam oluşturmadığınızdan emin olun! Ardından Save butonuna tıklayın.

resim4_2

c) Rewarded Video Reklamlar

Reklam türü olarak Rewarded Video‘yu seçin. Bu reklam türü, 15-20 saniyelik video reklam olmakla birlikte, kullanıcı reklamı baştan sona izlediği taktirde kullanıcıyı oyun içerisinde bir şekilde ödüllendirmeniz gerekir (örneğin 100 altın vererek). Bu durumda Reward amount‘a 100, Reward item‘a da “altın” değerlerini girebilirsiniz. Burada belirlediğiniz değerler Unity kodunuza parametre olarak gittiği için, burası vasıtasıyla kullanıcıların reklam izleyerek kazandığı altın sayısını dinamik olarak değiştirebilirsiniz (Unity kodunuzu değiştirmeye gerek kalmadan). Tabi dilerseniz bu değerleri yok sayabilir ve reklam izlenince kaç altın kazanılacağını direkt kodunuzda belirleyebilirsiniz. “Ad unit name” olarak “AdmobReklam” (veya istediğiniz başka bir isim) girin. Bu isimde başka reklam oluşturmadığınızdan emin olun! Ardından Save butonuna tıklayın.

Artık işimiz bitti, aşağıdan Done butonuna tıklayın. Karşınıza gelen sayfadaki Ad unit ID‘yi bir yere not edin:

resim5

Şimdi Android SDK‘yı kurduğunuz klasörü açın (ben şuraya kurmuştum: C:\Program Files (x86)\Android\android-sdk). Klasörün içindeki SDK Manager dosyasını açın. Uygulama açılınca aşağıdaki Extras kısmından “Google Play services“ı seçin ve Install butonuna tıklayarak servisi yükleyin (Install dedikten sonra lisans anlaşmasını kabul etmeniz gereken bir pencere gelecek, orada Accept deyin):

resim6

NOT: İşinizi garantiye almak için, Google Play services‘a ilaveten güncel bir Android API’sini de yüklemenizi öneririm; örneğin Android 6.0 (API 23).

Şimdi Unity projenizi açın, yukarıdan Assets-Import Package-Custom Package… yolunu izleyin ve daha önce indirdiğiniz GoogleMobileAds.unitypackage dosyasını seçin. Bir pencere açılacak, burada import etmek istediğiniz dosyaları seçebiliyorsunuz. Hiçbir değişiklik yapmayın (tüm dosyalar seçili olsun) ve sağ alttan Import butonuna tıklayın.

Import işlemi bittikten sonra dosya yöneticinizden Android SDK‘yı kurduğunuz klasörde yer alan şu konumu açın: C:\Program Files (x86)\Android\android-sdk\extras\google\google_play_services\libproject

Burada “google-play-services_lib” adında bir klasör var (eğer yoksa alttaki NOT2‘yi okuyunuz). Bunu kopyalayın. Ardından Unity projenizin olduğu klasörü dosya yöneticisinden açıp Plugins\Android klasörüne geçiş yapın ve kopyaladığınız klasörü buraya yapıştırın. Unity’e tekrar geçiş yapınca yeni klasörün import edilmesi için bir bar gelecek, dolmasını bekleyin.

NOT: Benim Rubix Fun oyunum için üstteki klasör kopyala-yapıştır işlemi gerekmedi ama başka bir plugin daha kullanıyordum belki ondandır.

NOT2:Google Play services“ın son sürümüyle birlikte artık “google_play_services” klasörünün içindeki “libproject” klasörü yok oldu. Eğer son sürümlerde build alırken hata alırsanız Assets/PlayServicesResolver klasörüne sağ tıklayıp “Play Services Resolver-Android Resolver-Resolve Client Jars” yolunu izleyin. Bu aşamadan sonra ben build alabilmiş ve reklamları sıkıntısız bir şekilde görebilmiştim. Ancak eğer sizde yine de bir sıkıntı olursa Assets-Plugins-Android yolunu izleyin ve oradaki “firebase-common-9.0.0.aar” dosyasını seçin (bu dosya yoksa “firebase-common-9.0.2” klasörünü seçin) ve Inspector’dan Android’in başındaki işareti kaldırın. Kaynak: https://groups.google.com/forum/#!topic/google-admob-ads-sdk/djySAXCZ7HE

a) Banner Reklamlar

Şimdi her şey hazır olduğuna göre reklamları oyunlarımızda göstermek için çok basit bir C# kodu yazacağız. Diyelim ki oyunun ilk sahnesinde ekranın en tepesinde bir reklam göstermek istiyorsunuz. O zaman Reklam adında yeni bir C# scripti oluşturun ve içini şöyle değiştirin:

using UnityEngine;
using GoogleMobileAds.Api;

public class Reklam : MonoBehaviour
{
	void Start()
	{
		BannerView reklamObjesi = new BannerView(
				"AD unit ID'niz", AdSize.SmartBanner, AdPosition.Top );
		AdRequest reklamiAl = new AdRequest.Builder().Build();
		reklamObjesi.LoadAd( reklamiAl );
	}
}

Burada tek dikkat etmeniz gereken şey “AD unit ID’niz” yazan yere dersin başlarında bir yere not ettiğiniz “AD unit ID“yi yazmak. Bu işlemi tamamladıktan sonra Reklam scriptini sürükleyerek sahnedeki kamera objesine atayın.

NOT: Eğer reklamın tepede değil de ekranın en altında çıkmasını isterseniz AdPosition.Top kısmını AdPosition.Bottom olarak değiştirin.

b) Interstitial (Tam ekran) Reklamlar

ReklamInterstitial adında yeni bir C# scripti oluşturun. Yapacağımız şey şu: ekranda bir buton olacak ve biz bu butona tıklayınca Interstitial reklam ekranda belirecek. Bunun için C# scriptinin içeriğini şöyle değiştirin:

using UnityEngine;
using System.Collections;
using GoogleMobileAds.Api;

public class ReklamInterstitial : MonoBehaviour
{
	private InterstitialAd reklamObjesi;

	void OnGUI()
	{
		if( GUI.Button( new Rect( Screen.width/2 - 150, Screen.height/2 - 150, 300, 300 ), "Reklamı Göster" ) )
		{
			if( reklamObjesi != null )
				reklamObjesi.Destroy();

			reklamObjesi = new InterstitialAd( "AD unit ID'niz" );
			AdRequest reklamiAl = new AdRequest.Builder().Build();
			reklamObjesi.LoadAd( reklamiAl );
			StartCoroutine( ReklamiGoster() );
		}
	}

	IEnumerator ReklamiGoster()
	{
		while( !reklamObjesi.IsLoaded() )
			yield return null;

		reklamObjesi.Show();
	}
}

Burada InterstitialAd türündeki reklamObjesi objesinin IsLoaded() fonksiyonunu kullanarak interstitial reklamın sunucudan indirilip indirilmediğini kontrol edebiliyoruz. Butona bastıktan sonra çalıştırdığımız ReklamiGoster() coroutine’inde reklamın sunucudan indirilmesini bekliyor ve ardından reklamı Show() fonksiyonu ile ekranda gösteriyoruz.

Koddaki “AD unit ID’niz” yazan yere dersin başlarında bir yere not ettiğiniz “AD unit ID“yi yazın. Ardından ReklamInterstitial scriptini sürükleyerek sahnedeki kamera objesine atayın.

c) Rewarded Video Reklamlar

ReklamRewardedVideo adında yeni bir C# scripti oluşturun. Bu script ile ekranda bir buton oluşturacak ve bu butona tıklayınca bir rewarded video reklam oynatacağız:

using UnityEngine;
using System.Collections;
using GoogleMobileAds.Api;

public class ReklamRewardedVideo : MonoBehaviour 
{
	void OnGUI()
	{
		if( GUI.Button( new Rect( Screen.width / 2 - 150, 0, 300, 300 ), "Reklamı Göster" ) )
		{
			RewardBasedVideoAd reklamObjesi = RewardBasedVideoAd.Instance;

			AdRequest reklamiAl = new AdRequest.Builder().Build();
			reklamObjesi.LoadAd( reklamiAl, "AD unit ID'niz" );
			
			StartCoroutine( ReklamiGoster() );
		}
	}

	IEnumerator ReklamiGoster()
	{
		while( !RewardBasedVideoAd.Instance.IsLoaded() )
			yield return null;

		RewardBasedVideoAd.Instance.Show();
	}
}

AD unit ID’niz” yazan yere dersin başlarında bir yere not ettiğiniz “AD unit ID“yi yazıp ReklamRewardedVideo scriptini sürükleyerek sahnedeki kamera objesine atayın.

Şimdi Build Settings‘ten Platform‘u Android olarak değiştirin. Sonrasında Player Settings-Other Settings‘teki Minimum API Level‘ın değerini “Android 4.0 ‘Ice Cream Sandwich’ (API level 14)” yapın. Artık oyunu Build edebilirsiniz. Reklamlar maalesef Unity Editor’de gözükmüyor, bu yüzden oyunu illa ki bir Android cihazda test etmelisiniz. Build ettikten sonra APK dosyasını cihazınızda test edin (interstitial ve rewarded video reklamların gelmesi biraz sürebilir; hatta rewarded video reklam hiç gelmeyebilir de. Ben genelde fillrate hatası alıyorum).

NOT1: Eğer daha önce Bundle Identifier belirlemediyseniz Player Settings-Other Settings-Bundle Identifier yolunu izleyerek oradaki değeri “com.SirketinizinAdi.OyununAdi” şeklinde değiştirin ve öyle oyunu Build edin.

– Her şeyi düzgün yaptığınıza inanmanıza ve hata almadan build alabilmenize rağmen bir türlü reklam göremiyor musunuz? –

  • Eğer reklamı Admob üzerinden daha yeni oluşturduysanız ertesi gün tekrar deneyin, başka bir “ad unit id” kullanmayı deneyin veya test modunu açın (nasıl olacağı yazının devamında yazmakta). Henüz yeni oluşturulan ad unit’lere reklam sağlan(a)madığını okumuştum.
  • Bundle Identifier‘ı rastgele bir şekilde değiştirmeyi deneyin. Bunun sebebi; eğer başka birisi girdiğiniz o Bundle Identifier ile Admob reklamları sunarken ban yemiş ise artık o Bundle Identifier’ı kullanan uygulamalarda Admob reklamları gözükmüyor.
  • logcat kullanarak bir hata alıp almadığınıza bakın. Örneğin bende rewarded video reklamlar çok ender gözüküyor ve genel olarak da fillrate hatası alıyorum, yani sunucuda herkese yetecek kadar reklam olmaması hatası. Bu gibi durumlarda elden bir şey gelmiyor maalesef (sadece Admob ile alakalı log’ları görmek için “adb logcat -s Ads” (tırnaksız) komutunu kullanabilirsiniz).

NOT2: Ben oyunu ilk Build etmeye çalıştığımda karşıma şöyle bir hata çıktı:

resim7

Sizde de buna benzer bir hata çıkarsa Bilgisayarım‘a sağ tıklayın, Özellikler deyin. Soldan “Gelişmiş sistem ayarları“na tıklayın. Gelen pencereden aşağıdaki “Ortam Değişkenleri…” butonuna tıklayın. Bu sefer açılan pencerede ise Yeni… butonuna tıklayıp değerleri şöyle doldurun:

resim8

Eğer sizde “C:\Program Files\Java\jdk1.7.0_51” klasörü yoksa kendi jdk klasörünüzü bulup o konumu yazın “Değişken değeri:” olarak. Sonrasında Path isimli sistem değişkenini listeden bulup çift tıklayın ve “Değişken değeri:“nin en sonuna şunu ekleyin: “;C:\Program Files\Java\jdk1.7.0_51\bin” (başında ; olduğuna dikkat edin!). Son olarak bilgisayarınıza restart atın. Artık Build ederken bu hatayı almamanız lazım.

ÇÖZÜM YOLU 2: Eğer NOT2‘de belirttiğim değişikliği yapmanıza rağmen aynı hatayı almaya devam ediyorsanız (ben başka bir plugin kullanırken başıma geldi) Android SDK Manager‘ı açın ve “Android SDK Build-tools Rev.20“nin kurulu olup olmadığına bakın:

resim8_2

Bende kurulu mesela ama eğer sizde değilse kurun. Ardından Android SDK’nın olduğu klasördeandroid-sdk\build-tools\20.0.0” yolunu izleyin. Oradaki “zipalign.exe” dosyasını kopyalayın. Ardından bu sefer “android-sdk\tools” yolunu izleyin ve kopyaladığınız “zipalign.exe” dosyasını buraya yapıştırın. Sorunun çözülmesi lazım.

ÇÖZÜM YOLU 3: Üstteki iki yöntem de işe yaramıyorsa ve siz JDK’nın 64-bit’lik sürümünü yüklediyseniz bir de JDK’nın 32-bit’lik sürümünü yüklemeyi deneyin.

ÇÖZÜM YOLU 4: Belki saçma gelecek ancak bazen Admob ile alakalı hatalar, plugin ile gelen tüm dosyaları silip plugini yeniden import ederek çözülüyor (başıma geldi).

EKLEME (05.02.2016): Kendi oyunumu (Whack ’em Augmented Reality) bazı cihazlarda test ederken oyun açılır açılmaz crash’liyordu ve “java.lang.NoClassDefFoundError: android.support.v4.util.SimpleArrayMap” hatası veriyordu. Bunu çözmek için şu 2 adımı uyguladım ve çalıştı:

  • …\Android\android-sdk\extras\android\support\v4” klasöründeki “android-support-v4.jar” dosyasını kopyalayıp “Assets\Plugins\Android” klasörüne yapıştırdım.
  • Assets\Plugins\Android\google-play-services_lib\res\values” klasöründeki “version.xml” dosyasını kopyalayıp “Assets\Plugins\Android\GoogleMobileAdsPlugin\res\values” klasörüne yapıştırdım (son path’teki var olmayan klasörleri elle oluşturdum).

NOT3: Artık uygulamanız Google Play’de yüklenirken “full network access” izni isteyecektir. Ve tahmin edeceğiniz üzere reklamlar sadece Android cihazınız internete bağlıyken karşınıza gelecektir.

ÇOK ÖNEMLİ NOT: Reklamları test ederken olur da reklamlara çok tıklarsanız hesabınızda çok fazla para birikebilir ve Admob servisinden banlanabilirsiniz. Oyunu kendi telefonunuzdan test ederken reklamların para kazandırmasını önlemek ve böylece bu sorunu çözmek için Test Device denilen bir özellikten faydalanabilirsiniz. Neyse ki kullanımı çok basit.

Her Android cihazın bir Device ID‘si vardır ve Test Device özelliğinden faydalanırken bize bu ID lazım. Maalesef bu ID’yi direkt bulmanız mümkün değil. İlla ki bir programdan faydalanmalısınız. Piyasada çeşitli programlar var, benim tavsiyem ise şu küçük Android uygulaması: https://play.google.com/store/apps/details?id=hagamosvideojuegos.apps.admobtestdeviceid

Device ID’nizi bulduktan sonra, Admob kodlarınızı yazarken “AdRequest reklamiAl = new AdRequest.Builder().Build();” satırını şu kodla değiştirmelisiniz:

AdRequest reklamiAl = new AdRequest.Builder()
    .AddTestDevice(AdRequest.TestDeviceSimulator)
    .AddTestDevice("Device ID'niz")
    .Build();

Burada “Device ID’niz” yerine kendi Android cihazınızın ID’sini yazmalısınız. İşte bu kadar basit! Yalnız henüz rewarded video reklamlar bu özelliği desteklemiyor, bilginiz olsun.

Sonuç olarak; projemi telefonumda çalıştırdığımda (öncesinde internete bağlanıp) karşıma şöyle bir reklam çıktı (oyun açıldıktan sonra reklamın belirmesi için 3-4 saniye beklemem gerekti):

a) Banner Reklamlar

resim9

b) Interstitial (Tam ekran) Reklamlar

resim9_2

c) Rewarded Video Reklamlar

Reklama tıkladıktan 5-10 dakika sonra AdMob hesabımı kontrol ettim ( https://apps.admob.com/#home ) ve hesabıma 1 kuruş geçtiğini gördüm (bu değer reklamdan reklama değişebiliyormuş)(bu sefer bende sıkıntı olmadı ama banlanmak riski almak istemiyorsanız bence kendi reklamlarınıza tıklamayın). Yani eğer her şeyi düzgün yaptıysanız reklamlar düzgünce getiri sağlıyor:

resim10

Şimdi reklamlara yapabileceklerimizi göstermek amaçlı scriptlerimizi birazcık geliştirelim:

a) Banner Reklamlar

Yapmak istediğimiz şey şu: reklamın her iki saniyede bir belirip kaybolması. Böylece istediğiniz zaman reklamı gizlemeyi, istediğiniz zaman geri getirmeyi göreceksiniz.

using UnityEngine;
using GoogleMobileAds.Api;

public class Reklam : MonoBehaviour
{
	private float reklamBelirmeAni;
	private bool reklamDurumu = false;
	private BannerView reklamObjesi;

	void Start()
	{
		reklamBelirmeAni = Time.time + 2f;

		reklamObjesi = new BannerView(
				"AD unit ID'niz", AdSize.SmartBanner, AdPosition.Top );
		AdRequest reklamiAl = new AdRequest.Builder().Build();
		reklamObjesi.LoadAd( reklamiAl );
	}

	void Update()
	{
		if( Time.time > reklamBelirmeAni )
		{
			reklamBelirmeAni = Time.time + 2f;
			reklamDurumu = !reklamDurumu;

			if( reklamDurumu )
				reklamObjesi.Show();
			else
				reklamObjesi.Hide();
		}
	}
}

Update fonksiyonunda iki saniyede bir reklamDurumu‘nun değerini değiştiriyoruz ve değeri true ise reklamı Show() fonksiyonu ile gösteriyor, false ise reklamı Hide() fonksiyonuyla gizliyoruz. Bu kadar basit!

NOT: Oyunda bir safhadan sonra reklamlarla işiniz bitti ve artık o reklamı göstermeyeceksiniz diyelim. O zaman görünürdeki reklamı Hide() ile gizlemek yerine Destroy() ile yok edin. Böyle yaparsanız hafıza rahatlar. Ancak bir kere reklamı yok ettikten sonra bir daha reklam göstermek için önce yine şu satırları çalıştırmanız gerekir:

reklamObjesi = new BannerView(...);
AdRequest reklamiAl = new AdRequest.Builder().Build();
reklamObjesi.LoadAd( reklamiAl );

b) Interstitial (Tam ekran) Reklamlar

Eğer siz de Interstitial reklamları test ettiyseniz fark etmişsinizdir: reklamların yüklenmesi çok uzun sürüyor. Bunun için benim düşündüğüm yöntem oyunun en başında reklam değişkeninde bir tane Interstitial reklamı hazır bulundurmak. Bu reklamı kullanıcıya gösterdikten ve kullanıcı reklamı kapattıktan hemen sonra ise yeni bir reklam alıp artık bu yeni reklamı değişkende depolamak. Böylece reklamlar onları göstermek istediğimiz zaman elimizde hazır olacak ve reklamın gözükmesi için daha az bekleyeceğiz. Bunu yapmak için ReklamInterstitial scriptini şöyle değiştirin:

using UnityEngine;
using System.Collections;
using System;
using GoogleMobileAds.Api;

public class ReklamInterstitial : MonoBehaviour
{
    private InterstitialAd reklamObjesi;

    void Start()
    {
        YeniReklamAl( null, null );
    }

    void OnGUI()
    {
        if( GUI.Button( new Rect( Screen.width/2 - 150, Screen.height/2 - 150, 300, 300 ), "Reklamı Göster" ) )
        {
            StartCoroutine( ReklamiGoster() );
        }
    }

    IEnumerator ReklamiGoster()
    {
        while( !reklamObjesi.IsLoaded() )
            yield return null;

        reklamObjesi.Show();
    }

    public void YeniReklamAl( object sender, EventArgs args )
    {
        if( reklamObjesi != null )
            reklamObjesi.Destroy();
        
        reklamObjesi = new InterstitialAd( "AD unit ID'niz" );
        reklamObjesi.OnAdClosed += YeniReklamAl;
        
        AdRequest reklamiAl = new AdRequest.Builder().Build();
        reklamObjesi.LoadAd( reklamiAl );
    }
}

c) Rewarded Video Reklamlar

Tıpkı üstteki interstitial kodunda olduğu gibi, rewarded video reklamın da oyunun en başında yüklenmesini sağlayalım. Kullanıcı reklamı kapattıktan sonra da otomatik olarak yeni bir video reklamı yükleyip hazırda bulunduralım. reklamObjesi‘nin IsLoaded() fonksiyonunu kullanarak, ekrandaki reklamı göstermeye yarayan butonun sadece reklam sunucudan tamamen indirilmişse tıklanabilir olmasını sağlayalım. Son olarak da, kullanıcı rewarded videoyu baştan sona izlerse ona ödül olarak 100 altın verelim:

using UnityEngine;
using System;
using GoogleMobileAds.Api;

public class ReklamRewardedVideo : MonoBehaviour 
{
	private int altin = 0;

	void Start()
	{
		RewardBasedVideoAd reklamObjesi = RewardBasedVideoAd.Instance;

		YeniReklamAl( null, null );

		reklamObjesi.OnAdClosed += YeniReklamAl;
		reklamObjesi.OnAdRewarded += OyuncuyuOdullendir;
	}
	
	void OnGUI()
	{
		GUI.Label( new Rect( 0, 0, 500, 150 ), altin + " altının var!" );

		// Butonu sadece reklam tamamen yüklenmişse (IsLoaded() true ise) tıklanabilir yap
		GUI.enabled = RewardBasedVideoAd.Instance.IsLoaded();

		if( GUI.Button( new Rect( Screen.width / 2 - 150, 0, 300, 300 ), "Reklamı Göster" ) )
		{
			RewardBasedVideoAd.Instance.Show();
		}

		GUI.enabled = true;
	}

	public void YeniReklamAl( object sender, EventArgs args )
	{
		RewardBasedVideoAd reklamObjesi = RewardBasedVideoAd.Instance;

		AdRequest reklamiAl = new AdRequest.Builder().Build();
		reklamObjesi.LoadAd( reklamiAl, "AD unit ID'niz" );
	}

	private void OyuncuyuOdullendir( object sender, Reward odul )
	{
		Debug.Log( "Ödül türü: " + odul.Type );

		altin += (int) odul.Amount;
	}
}

Burada OyuncuyuOdullendir callback fonksiyonuna parametre olarak gelen Reward türündeki odul değişkeni, siz rewarded video reklamı Admob üzerinde oluştururken girdiğiniz “Reward amount” (odul.Amount) ve “Reward item” (odul.Type) değerlerini depolamakta. Ben kendi reklamımı oluştururken “Reward amount“u 100 girdiğim için altin değişkenim 100 artıyor. Daha önceden de bahsettiğim gibi, burada işin güzel yanı, bu Reward parametrelerini oyunu güncellemeye gerek kalmadan direkt olarak Admob panelinden güncelleyebiliyor olmanız.

Singleton Reklam Scripti (Son Güncelleme 24.04.2017)

Admob dersim şimdiye kadar tahminimden çok daha fazla ilgi gördü. Ben de boş durmadım ve hem banner, hem interstitial, hem de rewarded reklamları bir arada destekleyen ve singleton pattern kullanan örnek bir script yazarak işinizi kolaylaştırmak istedim.

Oyunun ilk sahnesinde boş bir GameObject oluşturup içine aşağıdaki C# scriptini atın (scriptin ismini ReklamScript verin)(kameraya atmayın, içinde Transform hariç başka component olmayan boş bir objeye atın!):

using UnityEngine;
using System.Collections;
using System;
using GoogleMobileAds.Api;

public class ReklamScript : MonoBehaviour
{
	private static ReklamScript instance = null;

	[Header( "Ad Unit ID'ler" )]
	public string bannerID;
	public string interstitialID;
	public string rewardedVideoID;
	
	[Header( "Test Modu" )]
	public bool testMod = false;
	public string testDeviceID;

	[Header( "Diğer Ayarlar" )]
	public AdPosition bannerPozisyonu = AdPosition.Top;

	private BannerView bannerReklam;
	private InterstitialAd interstitialReklam;

	private float interstitialIstekTimeoutZamani;
	private float rewardedVideoIstekTimeoutZamani;

	private IEnumerator interstitialGosterCoroutine;
	private IEnumerator rewardedVideoGosterCoroutine;

	public delegate void RewardedVideoOdul( Reward odul );
	private RewardedVideoOdul odulDelegate;

	void Awake()
	{
		if( instance == null )
		{
			instance = this;
			DontDestroyOnLoad( this );
		}
		else if( this != instance )
		{
			Destroy( gameObject );
			return;
		}
	}

	void Start()
	{
		if( this != instance )
			return;

		BannerReklamYukle();
		InterstitialReklamYukle();
		RewardedReklamYukle();
	}

	void BannerReklamYukle()
	{
		if( string.IsNullOrEmpty( bannerID ) )
			return;

		bannerReklam = new BannerView( bannerID, AdSize.SmartBanner, bannerPozisyonu );

		AdRequest reklamiAl;
		if( testMod )
			reklamiAl = new AdRequest.Builder().AddTestDevice( AdRequest.TestDeviceSimulator )
									 .AddTestDevice( testDeviceID ).Build();
		else
			reklamiAl = new AdRequest.Builder().Build();

		bannerReklam.LoadAd( reklamiAl );
		bannerReklam.Hide();
	}

	void InterstitialReklamYukle()
	{
		if( string.IsNullOrEmpty( interstitialID ) )
			return;

		if( interstitialReklam != null )
			interstitialReklam.Destroy();

		interstitialReklam = new InterstitialAd( interstitialID );
		interstitialReklam.OnAdClosed += InterstitialDelegate;

		AdRequest reklamiAl;
		if( testMod )
			reklamiAl = new AdRequest.Builder().AddTestDevice( AdRequest.TestDeviceSimulator )
									 .AddTestDevice( testDeviceID ).Build();
		else
			reklamiAl = new AdRequest.Builder().Build();

		interstitialReklam.LoadAd( reklamiAl );

		interstitialIstekTimeoutZamani = Time.realtimeSinceStartup + 10f;
	}

	void RewardedReklamYukle()
	{
		if( string.IsNullOrEmpty( rewardedVideoID ) )
			return;

		RewardBasedVideoAd rewardedReklam = RewardBasedVideoAd.Instance;
		rewardedReklam.OnAdClosed -= RewardedVideoDelegate;
		rewardedReklam.OnAdClosed += RewardedVideoDelegate;
		rewardedReklam.OnAdRewarded -= RewardedVideoOdullendir;
		rewardedReklam.OnAdRewarded += RewardedVideoOdullendir;

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

		if( testMod ) // test id: https://groups.google.com/d/msg/google-admob-ads-sdk/k-kVwVu2XBc/57YBTdxPBgAJ
			rewardedReklam.LoadAd( reklamiAl, "ca-app-pub-3940256099942544/5224354917" );
		else
			rewardedReklam.LoadAd( reklamiAl, rewardedVideoID );

		rewardedVideoIstekTimeoutZamani = Time.realtimeSinceStartup + 30f;
	}
	
	void InterstitialDelegate( object sender, EventArgs args )
	{
		InterstitialReklamYukle();
	}

	void RewardedVideoDelegate( object sender, EventArgs e )
	{
		RewardedReklamYukle();
	}

	/*void OnGUI()
	{
		Color c = GUI.color;

		if( GUI.Button( new Rect( Screen.width / 2 - 150, 0, 300, 120 ), "Banner Goster" ) )
			ReklamScript.BannerGoster();
              
		if( GUI.Button( new Rect( Screen.width / 2 - 150, 120, 300, 120 ), "Banner Gizle" ) )
			ReklamScript.BannerGizle();
		
		GUI.color = InterstitialHazirMi() ? Color.green : Color.red;
		if( GUI.Button( new Rect( Screen.width / 2 - 150, 240, 300, 120 ), "Interstitial Goster" ) )
			ReklamScript.InsterstitialGoster();

		GUI.color = RewardedReklamHazirMi() ? Color.green : Color.red;
		if( GUI.Button( new Rect( Screen.width / 2 - 150, 360, 300, 120 ), "Rewarded Goster" ) )
			ReklamScript.RewardedReklamGoster( null );

		GUI.color = c;
	}*/

	public static void BannerGoster()
	{
		if( instance == null )
			return;

		if( instance.bannerReklam == null )
			instance.BannerReklamYukle();

		instance.bannerReklam.Show();
	}

	public static void BannerGizle()
	{
		if( instance == null )
			return;

		if( instance.bannerReklam == null )
			return;

		instance.bannerReklam.Hide();
	}

	public static bool InterstitialHazirMi()
	{
		if( instance == null )
			return false;

		if( instance.interstitialReklam == null )
			return false;

		return instance.interstitialReklam.IsLoaded();
	}

	public static void InterstitialReklamAl()
	{
		if( instance == null )
			return;

		if( instance.interstitialReklam != null && instance.interstitialReklam.IsLoaded() )
			return;

		instance.InterstitialReklamYukle();
	}

	public static void InsterstitialGoster()
	{
		if( instance == null )
			return;

		if( instance.interstitialReklam == null )
			instance.InterstitialReklamYukle();

		if( instance.interstitialGosterCoroutine != null )
		{
			instance.StopCoroutine( instance.interstitialGosterCoroutine );
			instance.interstitialGosterCoroutine = null;
		}

		if( instance.interstitialReklam.IsLoaded() )
			instance.interstitialReklam.Show();
		else
		{
			if( Time.realtimeSinceStartup >= instance.interstitialIstekTimeoutZamani )
				instance.InterstitialReklamYukle();

			instance.interstitialGosterCoroutine = instance.InsterstitialGosterCoroutine();
			instance.StartCoroutine( instance.interstitialGosterCoroutine );
		}
	}

	public static bool RewardedReklamHazirMi()
	{
		if( instance == null )
			return false;

		return RewardBasedVideoAd.Instance.IsLoaded();
	}

	public static void RewardedReklamAl()
	{
		if( instance == null )
			return;

		if( RewardBasedVideoAd.Instance.IsLoaded() )
			return;

		instance.RewardedReklamYukle();
	}

	public static void RewardedReklamGoster( RewardedVideoOdul odulFonksiyonu )
	{
		if( instance == null )
			return;

		if( instance.rewardedVideoGosterCoroutine != null )
		{
			instance.StopCoroutine( instance.rewardedVideoGosterCoroutine );
			instance.rewardedVideoGosterCoroutine = null;
		}

		instance.odulDelegate = odulFonksiyonu;

		RewardBasedVideoAd rewardedReklam = RewardBasedVideoAd.Instance;
		if( rewardedReklam.IsLoaded() )
			rewardedReklam.Show();
		else
		{
			if( Time.realtimeSinceStartup >= instance.rewardedVideoIstekTimeoutZamani )
				instance.RewardedReklamYukle();

			instance.rewardedVideoGosterCoroutine = instance.RewardedVideoGosterCoroutine();
			instance.StartCoroutine( instance.rewardedVideoGosterCoroutine );
		}
	}

	IEnumerator InsterstitialGosterCoroutine()
	{
		float istekTimeoutAni = Time.realtimeSinceStartup + 2.5f;
		while( !interstitialReklam.IsLoaded() )
		{
			if( Time.realtimeSinceStartup > istekTimeoutAni )
				yield break;

			yield return null;
		}

		interstitialReklam.Show();
	}

	IEnumerator RewardedVideoGosterCoroutine()
	{
		RewardBasedVideoAd rewardedReklam = RewardBasedVideoAd.Instance;
		float istekTimeoutAni = Time.realtimeSinceStartup + 10f;
		while( !rewardedReklam.IsLoaded() )
		{
			if( Time.realtimeSinceStartup > istekTimeoutAni )
				yield break;

			yield return null;
		}

		rewardedReklam.Show();
	}

	void RewardedVideoOdullendir( object sender, Reward odul )
	{
		if( odulDelegate != null )
			odulDelegate( odul );
	}
}

Şimdi Inspector‘dan Reklam Script‘teki “Banner ID“, “Interstitial ID” ve “Rewarded Video ID” yazan yerlere ilgili ad unit id‘leri yapıştırın (id’nin sonunda bir karakter bile boşluk kalmamasına dikkat edin)(kullanmadığınız reklam birimlerinin id’lerini boş bırakabilirsiniz). Eğer Test Device özelliğini kullanmak istiyorsanız “Test Mod“u aktifleştirin ve Android cihazınızın ID’sini “Test Device ID” yazan yere girin. Son olarak da, “Banner Pozisyonu” değişkeni vasıtasıyla banner reklamın ekranda gözükmesini istediğiniz yeri seçin. Varsayılan olarak bu değer AdPosition.Top, yani ekranın tepesidir ancak değerini AdPosition.Bottom yaparsanız banner reklam ekranın altında çıkar. Artık scripti kullanmaya hazırsınız.

Scriptin kullanımı oldukça basit: banner reklamı göstermek için “ReklamScript.BannerGoster();” komutunu, banner reklamı gizlemek için “ReklamScript.BannerGizle();” komutunu kullanabilirsiniz.

Interstitial reklam göstermek isterseniz “ReklamScript.InsterstitialGoster();” komutunu kullanmanız yeterli. Eğer o esnada bir interstitial reklam yüklenmişse reklam anında gösterilir, yoksa yeni bir reklam yüklenmeye başlar veya mevcut yüklenmekte olan reklamın yüklenmesi beklenir. Eğer reklam 2.5 saniye içerisinde yüklenirse ekranda gösterilir, yoksa interstitial reklam gösterme isteğiniz başarısız olur. Bunun sebebi ise, reklamın siz bu fonksiyonu çağırdıktan onlarca saniye sonra anca yüklenmesi durumunda oyunun ortasında *puf* diye ekranda belirerek kullanıcıları kızdırmasının önüne geçmek. Eğer ki sistem üzerinde biraz daha kontrol sahibi olmak isterseniz “ReklamScript.InterstitialHazirMi()” fonksiyonu ile interstitial reklamın göstermeye hazır olup olmadığını (yüklenip yüklenmediğini) kontrol edebilir (ve ancak reklam hazırsa göster fonksiyonunu çağırabilir) veya “ReklamScript.InterstitialReklamAl()” fonksiyonu ile manual olarak bir interstitial reklam yükleme talebinde bulunabilirsiniz. Yüklenen bu reklam arkaplanda “ReklamScript.InterstitialGoster()” fonksiyonunun çağrılmasını bekler. Aslında singleton kod, sizin bu fonksiyonu çağırmanıza gerek kalmadan gerektiğinde otomatik olarak yeni bir reklam yüklüyor ancak yine de böyle bir opsiyonunuz olduğunu bilin.

Gelelim rewarded video reklamlara. Rewarded video reklam kullanıcı tarafından baştan sona izlenirse kullanıcıyı ödüllendirmek zorunda olduğunuz için bu reklam biraz daha özel kategoriye giriyor. Rewarded video göstermek için aşağıdaki örnek kodu inceleyebilirsiniz:

using UnityEngine;

public class RewardedGosterTest : MonoBehaviour 
{
	private int altin = 0;

	void OnGUI()
	{
		if( GUILayout.Button( "Rewarded reklam göster" ) )
		{
			ReklamScript.RewardedReklamGoster( RewardedReklamGosterildi );
		}
	}

	void RewardedReklamGosterildi( GoogleMobileAds.Api.Reward odul )
	{
		altin += (int) odul.Amount;
	}
}

Gördüğünüz üzere, rewarded reklam başarılı bir şekilde gösterilirse yapılacak şeyleri RewardedReklamGosterildi isimli, GoogleMobileAds.Api.Reward türünde odul parametresi alan bir fonksiyonda belirliyor ve “ReklamScript.RewardedReklamGoster( RewardedReklamGosterildi );” komutu ile bir rewarded reklam gösterme talebinde bulunuyoruz. Böylece kullanıcı rewarded video reklamı izledikten sonra RewardedReklamGosterildi fonksiyonu çağrılıyor ve kullanıcı ödüllendiriliyor. Tıpkı interstitial’da olduğu gibi, rewarded reklamda da çağrıldıktan sonra bir timeout mevcut ancak bu değer 2.5 saniye yerine bu sefer 10 saniye çünkü interstitial’ın aksine, genelde rewarded video reklamlar kullanıcının izniyle çağrılır (mesela kullanıcı ‘bedava coin’ butonuna tıklayınca) ve bu durumda kullanıcının 2.5 saniyeden daha uzun bir süre bekletilmesi normaldir. Ancak yine de, sadece bir rewarded reklam hazırda bekliyorsa ‘bedava coin’ butonunu aktifleştirmek istiyorsanız “ReklamScript.RewardedReklamHazirMi()” fonksiyonu ile reklamın yüklenip yüklenmediğini kontrol edebilir veya uzun süredir rewarded reklam yüklenmediyse “ReklamScript.RewardedReklamAl()” fonksiyonu ile manual bir şekilde rewarded reklam talebinde bulunarak tekrar şansınızı deneyebilirsiniz.

Son olarak da, dilerseniz ReklamScript kodundaki OnGUI fonksiyonunun comment’ini kaldırarak reklam birimlerinizi test etmeye yarayan GUI butonlarını ekranda gösterebilirsiniz.

Script singleton’dan faydalandığı için sahne değişse bile yok olmuyor ve böylece bir önceki sahnede tanımladığınız bir reklamın kontrolü bir sonraki sahnede de elinizde oluyor.

Kanımca dersi böylece tamamlamış oldum. Umarım faydalı olmuştur. Başka derslerde görüşmek üzere!

SON BİR NOT DAHA: AdMob web sitesinde anasayfada ( https://apps.admob.com/#home ) en aşağıda şöyle bir buton var:

resim11

Google Play‘e oyununuzu yükledikten sonra bu butona tıklayarak oluşturduğunuz reklam profilini Google Play’deki oyununuza bağlayabilirsiniz. Bunun ne gibi bir avantajı olduğunu bilmiyorum ama Google‘ın sayfasında böyle yapınca AdMob reklam profilinizdeki ikon, uygulama ücreti gibi bilgilerin otomatik olarak güncellendiği yazıyor (https://support.google.com/admob/answer/3034835?hl=en).

yorum
  1. yusufaydinnn dedi ki:

    Faydalı bir yazı…

    • Enes Çetin dedi ki:

      Yasir Bey,

      Ben butonsuz olarak interstitial eklemek istiyorum bu mümkünmüdür ?

      • yasirkula dedi ki:

        Reklamın çıkmasını sağlayan satır şu: StartCoroutine( ReklamiGoster() );

        Bu satırı nerede kullanırsanız reklam o zaman çıkar.

      • enescetin1903 dedi ki:

        Başlangıç seviyede bir geliştiriciyim . sizin verdiğiniz kodu script olarak kameraya eklediğimde direkt olarak reklam gelmiyor acaba button olarak eklersem sizin kodunuz direk gelirmi yada butonsuz olarak yapmak istediğimde sizin Scriptinizdeki gui buttonu silip mi koymalıyım biraz detaylı sordum ama kusuruma bakmayın malum başlangıç internette türkçe kaynak olarak en detaylı siz anlatmışsınız. Şimdiden teşekkür ediyorum

      • yasirkula dedi ki:

        Örnek olması için koyduğum butonların gözükmesini istemiyorsanız OnGUI fonksiyonunu silmeniz lazım. Diyelim oyunun başında reklam gelsin istiyorsanız StartCoroutine(ReklamiGoster()); kodunu Start fonksiyonunun sonuna eklemelisiniz. Bir düşman ölünce reklam gelsin istiyorsanız düşmanın öldüğü koda gelip kodun sonuna şunu eklemelisiniz: StartCoroutine(Camera.main.GetComponent(ReklamScriptininIsmi).ReklamiGoster());

        En son verdiğim kod, kameradaki reklam scriptinin ReklamiGoster fonksiyonunu başka bir scriptten çağırmayı göstermek amaçlıydı.

    • ömer dedi ki:

      https://play.google.com/store/apps/details?id=com.FingerApp.Ballfinger bilgiler ışığında bu oyunu yaptım nasıl sizce

      • yasirkula dedi ki:

        Elinize sağlık. 2D basit temalı oyunlar için Game Maker’ı da kullanmayı düşünebilirsiniz, daha rahat olabilir. Unity’i daha çok 3D projeler için tavsiye ederim.

  2. RedySkyunders dedi ki:

    Ya ben yaptım ama admob’a veri düşmüyor.Nedeni nedir? Ayrıca bir kez tıklayınca açılmıyor.Birkaç kez tıklamak lazım sanırsam

    • yasirkula dedi ki:

      Öncelikle “AD unit ID’niz”niz yerine kendi unit ID’nizi doğru bir şekilde yazdığınızdan çok emin olun. Eminseniz yarım saat kadar bekleyip öyle bakın hesabınıza.

      Reklama iki kez tıklamak gerekiyor: ilk tıkladığınızda reklamda Visit Site adında bir buton beliriyor ve ikinci seferde bu butona tıklarsanız o zaman reklam sitesini açabiliyorsunuz. Google böyle yaparak kullanıcıların yanlışlıkla reklamlara tıklamalarını azaltmak istemiş muhakkak, iyi de yapmışlar bence.

  3. lal13 dedi ki:

    tık başına 1 kuruş. Bu her zaman için geçerli olan mı?

    • yasirkula dedi ki:

      Tık başına 3 kuruş, gösterim başına 1 kuruş da olabilir. Kesin bilgim yok.

      • ayhan dedi ki:

        aklıma çok değişik bi uyanıklık geldi şimdi biz oyunda playerle alakası olmayan bi maincamera atsak arayada doldursak reklamı ama oyuncu görmese nasıl olur 4 banner bir ınterstital ekldeik oyuncu görmüyo para getitrirmi bu şimdi ? 😀

      • yasirkula dedi ki:

        Oyuncunun görmediği reklamlardan para gelmiyor. Zaten reklamın üstünü kapatmanın mümkün olduğunu sanmıyorum.

  4. Emre dedi ki:

    Bir telefondan bir tık mı yapabiliyoruz yoksa istediğimiz kadar tıklasak da olur mu? 😀

    • yasirkula dedi ki:

      Her tıklayışta para geliyor ama reklamı tek bir telefondan spam’lerseniz daha sonra parayı banka kartınıza geçiş yaptırmak isteyince sorun çıkabilir.

      • mayk dedi ki:

        Hesapta belli bir miktar para birikince banka kartina gecirebilirmiyiz.sorun cikarmi.(bir ustteki yorumunuzu tam anlayamadimda .d).

      • yasirkula dedi ki:

        Parayı nasıl nakite çeviriyorsunuz ben de bilmiyorum, reklam kullanmadım hiç. Üstteki yorumda demek istediğim, telefonunuzdan reklama sürekli tıklayıp böyle hesabınızda 5 TL biriktirirseniz bu parayı nakite çevirmek istediğinizde elinize hiç para geçeceğiniz sanmıyorum. Tüm gelirin tek bir telefondan olduğunu görebilir oradaki yetkili kimseler.

  5. sultan dedi ki:

    ca-app-pub-*************/*********** şifrenin diğer yarısını yazıyozmu.kesme işaretinden sonrasını?

  6. sultan dedi ki:

    tmm teşekkürler hepsiymiş 🙂 işe yarıyor hepsini doğru yapınca saolun .

    • disshack dedi ki:

      kardeşim bişey sorcam şimdi ca-app-pub yazan kısım ile mi ekledin sen ve kesme işaretini de koydunmu nasıl yaptın tam olarak ayrıntı verir misin

      • yasirkula dedi ki:

        ca-app-pub- yazan kısmı da ekleyeceksiniz. Sadece yapıştırırken başta ve sonda boşluk olmamasına dikkat edin.

  7. geçiş lerdeki reklamı yapmayı da eklemeni heyecanla bekliyorum 😀

    • yasirkula dedi ki:

      Interstitial reklamları anlatmaya niyetli değildim ama onlarda da yüksek potansiyel olduğunu gördüm ve o yüzden dersi yakın zamanda interstitial reklamları kapsayacak şekilde güncellemeye çalışacağım.

  8. yhyhy dedi ki:

    birkere tıkladıktan sonra kaybolmasını nasıl yapıcaz?

    • yasirkula dedi ki:

      Bilmem olur mu ama bir yöntem biliyorum. Start fonksiyonuna şu kodu ekleyin:

      reklamObjesi.AdClosing += ReklamaTiklandi;

      Sonra scripte şu fonksiyonu ekleyin:

      public void ReklamaTiklandi(object sender, EventArgs args)
      {
      reklamObjesi.Destroy();
      }

  9. Eray Aslan dedi ki:

    Arkadaşlar bende admob kullanıyorum tam ekran reklamını. Herzaman 1 kuruş vermez. Bana bu zamana kadar 15 kurusun altında para vermedi. bir keresinde amerikadan tek tıka 1 TL vermişti. 380 tıka 63 TL verdi şuan. O kadar düşük değil değerler. Tam ekran kullanın çünkü bannerdan ziyade aniden çıktığı için tıklanma ihtimali daha yüksek.

    Bu arada buda benim oyunum indirip yorum yaparsanız sevinirim 🙂
    https://play.google.com/store/apps/details?id=com.jointsoft.spaceball

    • Arkadaşım bu hesabı nasıl gerçek paraya döndürüyoruz bir de ben karıştırırken analiz hesabı diye bir şey oluşturdum bunun bi handikapı olur mu?

      • yasirkula dedi ki:

        Adresi doğrulamak+banka hesabını doğrulamak şeklinde iki aşamayı gerçekleştirmelisiniz. Doğrulama işlemlerini başlatmak için gerekli adımlar Admob sitesinde mevcut, orayı kurcalayın.

        İkinci sorunuzun cevabını ben bilmiyorum.

  10. FIRAT UCKAN dedi ki:

    Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details.
    D:\adt-bundle-windows-x86_64-20130717\sdk\build-tools\19.1.0\aapt.exe package –auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S “res” -I “D:/adt-bundle-windows-x86_64-20130717/sdk/platforms/android-18\android.jar” -F bin/resources.ap_

    stderr[
    AndroidManifest.xml:9: error: Error: No resource found that matches the given name (at ‘value’ with value ‘@integer/google_play_services_version’).
    ]
    stdout[
    Configurations:
    (default)
    hdpi
    mdpi
    xhdpi
    af
    am
    ar
    be
    bg
    ca
    cs
    da
    de
    el
    en-GB
    es
    es-US
    et
    et-EE
    fa
    fi
    fr
    hi
    hr
    hu
    in
    it
    iw
    ja
    ko
    lt
    lv
    ms
    ms-MY
    nb
    nl
    pl
    pt
    pt-BR
    pt-PT
    ro
    ru
    sk
    sl
    sr
    sv
    sw
    th
    tl
    tr
    uk
    vi
    zh-CN
    zh-TW
    zu

    bende boyle bır hata alıyorum bunu uygularken

  11. kulaoglu dedi ki:

    gui button yerine oyundaki bir 3d text e tıklayınca açılmasını nasıl yapıcaz (C# bilmiyorumda)?

  12. mertcan dedi ki:

    gösterim başı ücret veriyor mu yoksa kullanıcı tıklamak zorunda mı?

    • mertcan dedi ki:

      yani mesela banner reklamı üst rafa koyduğumuzda kullanıcı tıklamasada kazanç sağlıyormu gösterimde

    • yasirkula dedi ki:

      Hiç bilmiyorum.

      • mertcan dedi ki:

        peki tam ekran bannerlarının aniden çıkmasını önleyebilir miyiz.. mesela her hangi bir sahneye geçiş yapıldığın çıkması gibi.. ben oyun esnasında aniden çıkan reklamlardan nefret eden biriyim.rekamı kapatınca hep ölmüş olurdum 😀

      • yasirkula dedi ki:

        Interstitial reklamlar çıktığında oyun tamamen duruyor. Reklamın ne zaman çıkacağına siz karar veriyorsunuz ve ona göre scriptler yazıyorsunuz.

  13. mertcan dedi ki:

    oooooooooo.. o çok kötü işte…ben tam ekran koymayı planlıyordum. sanırım banner koyucam. tam ekran sıkıntı yaratıcaktır. oyun dursada kullanıcı oyundan soğutur. beni soğutmuştu 😀

  14. mertcan dedi ki:

    Google Play services bende gözükmüyor ???

  15. mertcan dedi ki:

    tamamdır sıkıntı yok oluyor:D

  16. burak-on dedi ki:

    abi ben yaptım oldu ama bende 8 sahne var 8 sahnenin hepsinde gözüküyor birde reklam çok büyük… reklamı biraz küçültmek için ne yapacağız ve reklamı ben sadece bir sahnede göstermek istiyorum onu nasıl yapacağım

    • yasirkula dedi ki:

      Reklamın sadece ReklamiGoster() fonksiyonunu çağırdığınız zaman gelmesi lazım. Interstitial reklamlar her zaman tam ekran oluyor, küçültme imkanı yok.

      • burak-on dedi ki:

        anladım birde abi ben pc de deniyorum oyunu reklam çıkıyor ama az önce telefonda denedim reklam hiç çıkmadı..

        pc de emilatör ile deniyorum

      • yasirkula dedi ki:

        Hiç yaşamadım böyle birşey, enteresan.

    • Bekter dedi ki:

      Telefonlarda kasma oluyor o yüzden reklam geç çıkabiliyor. Bir süre aslında çalışan reklamı göremediğim olmuştu.

  17. burak-on dedi ki:

    abi sen oyunu goole playa yükleyip mi denedin telefonda

  18. burak-on dedi ki:

    bu son sorum 🙂 reklam yerine başka isim verdiğimizde class defined isimle ilgili hata veriyor her iki reklamıda bir scriptte yapabilirmiyiz yapabiliyorsak nasıl yerletiririz.. içerisinde

    • burak-on dedi ki:

      tamamdır yaptım abi.. ders için teşşekkür edrim.. ama bir sorun var ekranda doğrudan tam ekran reklamında reklamı göster yazısı var o güzkmemesi için ne yapılmalı. reklam kafasına göre çıksın

  19. turan_temel dedi ki:

    ekranda kocaman reklamı göster yazısı var ve oyunu oynatmıyor.. reklamın kendi kendine çıkmasını nasıl sağlarız … ben o yazının olmamasını istiyorum reklam rastgele çıksın istediği zaman bunu nasıl yapabilirim.

  20. remziatacan dedi ki:

    reklamlar sanki bir kasma yapıyor gibi… yoksa bana mı öyle geliyor.. !

  21. remziatacan dedi ki:

    burak-on emilatörde göstermesinin nedeni emilatörün doğrudan internetle bağlı olduğundandır.. telefonunda göstermiyorsa telefonun internete bağlı olduğundan emin ol…

    • remziatacan dedi ki:

      ben herşeyi gayet doğru ve güzel bir şekilde yaptım sorunsuzca çalışıyor … tek bir sorun var reklamlardan dolayı bir kasma oluyor. bunun bir çözümü var mı yoksa öyle olması normal mi.

      • yasirkula dedi ki:

        Normal olduğunu düşünmüyorum. Interstitial çıkarken ve kapanırken takılır ama banner sorunsuz olmalı. İnternetten Unity AdMob plugini bulup onu test edip sonuçları kıyaslamanızı tavsiye ederim.

  22. Abbas dedi ki:

    Yasir Hocam Şu kod diziliminde reklamda küçük bir hata fark ettim. reklam göster hiç kaybolmuyor. benim tel. LG ekranı küçük reklamı ne kadar kapatırsam kapatsam da reklam göster oradan ayrılmıyor.. yani ekranı kaplıyor. bunu nasıl düzeltebiliriz. reklamı sadece belli bir süre içerisinde çıkmasını… reklam göster diye bir şey olmasa oyunlarda görüyorum reklam birden çıkıyor sorgusuz sualsiz onun gibi yapılabilir mi..

    • yasirkula dedi ki:

      O halde OnGUI’yi silin, başta “private float zamanlayici = 10;” değişkeni tanımlayıp bir de Update fonksiyonu oluşturun:

      void Update()
      {
      zamanlayici-=Time.deltaTime;
      if(zamanlayici < 0 )
      {
      zamanlayici = 10;
      StartCoroutine( ReklamiGoster() );
      }
      }

      Her 10 saniyede bir reklam gözükecek artık…

      • Abbas dedi ki:

        işe yaramada farklı bir kodlama denemeyi düşünüyorum.. yardımınız için teşekkir ederim..

  23. Selmanüstün dedi ki:

    reklamı göster şeklinde bir buton çıkıyor ekrana ona tıklamadan reklam açılmıyor… birde ona tıkladıktan sonra reklam geliyor kapatınca tekrar buton orada oluyor… o buton sürekli orada hiç kaybolmuyor. ekranın neredeyse tamamını kaplıyor.. bu sadece bende olan bir şey mi ?

  24. umut dedi ki:

    merhabalar

    ellerine saglik peki bu islemleri ios tarafinda nasil yapabiliriz bununla ilgili herhangi bi calismaniz varmi?? yoksa bununla ilgili dokumana nasil ulasabilirim??

    kolay gelsin…

  25. Emre dedi ki:

    Unfortunately, our records indicate that you’re not eligible to participate in AdMob at this time. Please be sure to review our.

    Bu hatayı aldım, neden acaba?

    • yasirkula dedi ki:

      Admob hesabınız banlanmış olabilir. Reklamlara kasıtlı olarak tıklarsanız (mesela çıkan reklamların %20’sine tıklarsanız) ban yiyebiliyorsunuz. Oyunu test ederken hesabınızda 5-10 TL birikmişse ban yiyebilirsiniz, ben de tam bilmiyorum kuralları.

      • Emre dedi ki:

        Daha admob’a üye olurken bu hatayı aldım. 😀 Yani bütün bilgileri tamamladım tam üye olurken bu hatayı alıyorum.

  26. Atahan dedi ki:

    The type or namespace name `GoogleMobileAds’ could not be found.

    Hatasını veriyor. Nedenini anlayamadım. İmport ettim verdiğiniz linki dediğiniz herşeyi yaptım ama bu hatayı verdi nedense?

  27. halil dedi ki:

    Reklam çalışıyor fakat mesela 2 sn de bir açıp kapanan reklamda eğer 2.sahneye geçerken reklam açıksa 2.sahnedede açık kalıyor eğer 2.sahneye geçerken gözükmüyorsa 2.sahnedede gözükmüyor.

    Nasıl düzeltebilirim ?

  28. FIRAT dedi ki:

    İyi akşamlar kardeşim dediklerini yaptım bir hata almıyor ancak reklamda çıkmıyor nedeni ne olabilir ?

  29. kemal dedi ki:

    hep aynı hatayı alıyorum …
    Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details.
    C:\Program Files (x86)\android-sdk-windows\build-tools\20.0.0\aapt.exe package –auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S “res” -I “C:/Program Files (x86)/android-sdk-windows/platforms/android-20\android.jar” -F bin/resources.ap_

    stderr[
    AndroidManifest.xml:9: error: Error: No resource found that matches the given name (at ‘value’ with value ‘@integer/google_play_services_version’).

  30. kerem dedi ki:

    benim uygulamam full network access” iznini istemiyo hattqa hiç bir izin istemiyor sorun ne olabilir

  31. Emre dedi ki:

    Abi android sdk managerde extras kısmında sadece http://i.hizliresim.com/rYDZYP.jpg bunlar var. Neden acaba?

  32. mahmut dedi ki:

    hocam kaç tane reklam şirketi kullanabiliriz.mesela üst banner reklam admob.tam ekran reklamı ise startap olsa olurmu?unityde nasıl yapacagız

  33. mehmet dedi ki:

    hocam peki ikisi bir arada olan kodu varmı

  34. mehmet dedi ki:

    admob ve startapp

  35. muhtar dedi ki:

    admobu unityde yapsak startapı’da eclipsede yapsak olur bence

  36. muhtar dedi ki:

    hocam ekrana tıklayınca reklam kaybolsun istiyorum.

    • yasirkula dedi ki:

      Update fonksiyonunda şu kodu yazın:

      if( Input.GetMouseButtonDown( 0 ) )
      reklamObjesi.Destroy();

      Eğer kod sıkıntı çıkarırsa şunu deneyin:

      if( Input.GetMouseButtonDown( 0 ) )
      reklamObjesi.Hide();

  37. mahmut dedi ki:

    allah razi olsun hocam sayenizde reklam da ekledim :d oyun bitti fakat bu farkli ekran boyutu gelince gui buttonlar büyüyo kücülüyo bunlari tam oturtmak icin Matrix 4×4 sistemi varmis yapamadim bir tutorial yaparmisniiz acaba 😛

  38. hakantarik dedi ki:

    matrixden başka çözümü varmı hocam

    • yasirkula dedi ki:

      NGUI plugini her çözünürlükte çalışıyor diye biliyorum. Belki Unity’nin 4.6 versiyonunda çıkacak olan yeni arayüz sistemi de her çözünürlükte çalışır.

  39. Emre dedi ki:

    1 ağustostan itibaren sdk değişti diyor admob
    githubtan indirdiğimizle ilgili birşeymi bu ne gibi değişiklikler yapmalıyız güncel sürüm için?
    acil yardım.

  40. gökhan dedi ki:

    videolu reklam koyma hakkında bir bilginiz var mı veya bir kaynak?

  41. mhrs dedi ki:

    faydalı bilgi paylaşımlarınız için teşekkürler. iyi çalışmalar

  42. selim dedi ki:

    Abi ınstertitial reklamdaki butun olayı bana sorun oluşturuyo zoom yapma var oyunda adam reklama tıklıyor bu reklamı sahne geçişinde nasıl yaparız bi defa çıkacak bidaha çıkmayacak birde banner reklama close butonu ekleyebilirmiyiz

  43. seçgin dedi ki:

    void Start()
    {
    BannerView reklamObjesi = new BannerView(
    “xxxxx”, AdSize.SmartBanner, AdPosition.Top );
    AdRequest reklamiAl = new AdRequest.Builder()
    .AddTestDevice(AdRequest.TestDeviceSimulator)
    .AddTestDevice(“xxxx”)
    .Build();
    reklamObjesi.LoadAd( reklamiAl );
    }

    ////////////////

    hocam dediğiniz gibi ilk olarak test modunu açmak istiyorum fakat test modu açık olsa da olmasa da reklam aynı görünüyor yani benim bildiğim test modundayken bannerda “this is test ads” gibi bir yazı yazar. ama bende reklam görünüyor yine acaba kodda bir hata mı var, yada böyle olması normal mi, bu test olarak çıkan reklamın test mi gerçek mi olup olmadığını nasıl anlarım 😀

    • yasirkula dedi ki:

      Test modunda tek fark reklamlara tıklayınca para gelmiyor. Reklamlarda değişiklik olmuyor. En azından ben böyle biliyorum.

      • seçgin dedi ki:

        hocam bir de reklam banner pozisyonunu ayarlarken Top ve Bottom kullanabiliyorum sadece, Left Right komutlarını kullandırtmıyor. yani bannerin ekranın sol üst sağ üst sağ alt gibi konumlandırmak istiyorum nasıl yapabiliriz bunu

      • yasirkula dedi ki:

        Böyle bir şeyin mümkün olduğunu sanmıyorum.

  44. seçgin dedi ki:

    https://github.com/guillermocalvo/admob-unity-plugin
    bu pluginde aktif değil sanırım left right o yüzden olabilir mi acaba

  45. Burak dedi ki:

    hocam bütün scenelere koymaya gerek varmı?yoksa sadece menuyemi koyayım

  46. Burak dedi ki:

    using UnityEngine;
    using System.Collections;
    using GoogleMobileAds.Api;

    public class ukuk : MonoBehaviour
    {
    private InterstitialAd reklamObjesi;

    void OnGUI()
    {
    if (Input.GetKeyUp (KeyCode.Escape)) {

    reklamObjesi = new InterstitialAd( “blabla” );
    AdRequest reklamiAl = new AdRequest.Builder().Build();
    reklamObjesi.LoadAd( reklamiAl );
    StartCoroutine( ReklamiGoster() );
    }
    }

    IEnumerator ReklamiGoster()
    {
    while( !reklamObjesi.IsLoaded() )
    yield return null;

    reklamObjesi.Show();
    }
    }

    hocam geri tuşuna geldiğinde çalışmıyor kodda hata varmı

  47. selim dedi ki:

    Abi BannerVeiw could not be found hatası alıyorum

  48. hoca dedi ki:

    hocam ios oyunlarına nasıl yapacagız

  49. halis dedi ki:

    hocam kusura bakmayın rahatsız edecem ama ben apk almaya çalıştım unity de ama imzalama kısmında yeni imza için create new alias değilde sadece unsigned(debug) yazısı çıkıyor sorun nedir yardımcı olabilirmisiniz.

  50. halis dedi ki:

    keystore oluşturuyorum password giriyorum bir daha girebiliyorum ama o kısım açılmıyor unsigned(debug ) tek açılıyor

  51. Berk dedi ki:

    hocam bende yapıyorum hıc hata almıyorum aynen dediklerinizi ekranda gri kare ustunde reklamı goster yazısı cıkıyor hiç birşey anlamadım nasıl çözücem

    • yasirkula dedi ki:

      Herşeyi düzgün yapıp da oyunu Android cihazınıza attıysanız ve Android cihazınızın internet bağlantısı varsa o butona tıkladıktan sonra birkaç saniye içinde tam ekran (Interstitial) reklam karşınıza çıkmalı. Çıkmıyorsa bir adımı düzgün yapamamış olabilirsiniz.

  52. Emre B. dedi ki:

    Banner i bi sahnede oluşturunca diğerlerinde de sabit bi şekilde duruyor. DontDestroy yapıp Hide komutunu kullanıyorum ama olmuyor. Banner i istediğim sahnelerde kullanamıyorum.

    • yasirkula dedi ki:

      DontDestroyOnLoad yapınca banner’ın kaybolmaması lazım. Garip…

      • Emre B. dedi ki:

        O sorunu halletim ama şimdi şöyle durum var js de bulunan değişkenime ulaşmam lazım bu biraz sıkıntılı sanırım o yüzden ben bu reklamı js de yazsam olur heralde ama js nin içine import edeceğim kısmı bulamadım c# da using ile olan yer

      • yasirkula dedi ki:

        using yerine import kelimesini kullanın.

  53. çaylak dedi ki:

    başkan seninde build ederkenn aldığın hatayıı alıyorumm dediklerin aynen uyguladığım halde fakat senin örnek projeleri build edebiliyorumm

  54. aytunç erben dedi ki:

    Kardeşim sanırım Google Admob’u yenilemiş. Yazdıklarını harfiyen yaptığım halde reklam eklenmedi. Şu konuyu güncellesen iyi olur

    • yasirkula dedi ki:

      Yakın zamanda burada yazdıklarımı aynen yaptım ve bende reklam çıktı. Sizde çıkmaması garip. Kodlardaki “AD unit ID’niz” yazan yerlere kendi Ad unit ID’nizi yazdığınızdan emin olun.

  55. Ahmet dedi ki:

    yazılanların hepsini yaptım admob koduda doğru mobil cihazıma uygulamayı attım fakat reklamlar gözükmüyor

  56. Ahmet dedi ki:

    altta dummy LoadAd yazısı çıkıyor

    • yasirkula dedi ki:

      Dummy ifadeleri Unity editöründe çalışırken gözükür, bende de gözüküyorlar. Onlar gözüküyorsa plugin düzgün kurulmuş demektir. Ama reklam mobil cihazda neden gözükmüyor bilmiyorum. Scriptlerdeki “AD Unit ID’niz” yazan yerlere kendi AD Unit ID’nizi yazdığınızdan (“ca-app-pub” gibi bir ifade oluyor başında, o kısmı da alın) emin olun.

  57. Ahmet dedi ki:

    Yasir kardeşim kusura bakma senide rahatsız ediyorum ama son bişey daha sormam gerekiyor reklamın butona basmadan kendiliğinden çıkması için bişeyler yapılabilir mi

  58. çaylak dedi ki:

    hocam “full network access” izni hangi esnada çıkıyor acaba yükledim gp ye hiç öle izin cıkmadı

  59. memduh dedi ki:

    hocam banner reklamı sadece menuye koysam olurmu yoksa bütün sceneleremi koyacağım

  60. Emre dedi ki:

    Abi dediklerini yapıyorum ama tam ekran reklamda reklamı göster butonuna tıklayınca olduğu gibi kalıyor göstermiyor reklamı. Neden acaba

  61. feyzi dedi ki:

    hocam yok olma işlemini bu derste anlatabilirmisiniz tam anlamadım ben hide ediyorum

  62. feyzi dedi ki:

    hocam ben menuye koyuyorum banner hep orada duruyor.sceneler arası yok olmuyor ki zaten yok olmasını istemiyorum bir sıkıntı çıkmaz demi sadece menuye attım

  63. feyzi dedi ki:

    peki hocam bu banner reklam orjinal demi az para kazandıranlar var diyorlar ama fark etmiyor değilmi hoca

  64. Şahin dedi ki:

    Alllah Razı Olsun Çalıştı Çok Teşekkürler

  65. Şahin dedi ki:

    Oyunumu Bitirdim Google Play e Koymadan para kazanırmıyım?

  66. Levent dedi ki:

    Error building Player: Win32Exception: ApplicationName=’javac.exe’, CommandLine=’-bootclasspath “C:/Users/Levent/AppData/Local/Android/android-sdk/platforms/android-20\android.jar” -d “C:\Users\Levent\Documents\nss\Temp\StagingArea\bin\classes” -source 1.6 -target 1.6 -encoding UTF-8 “com\DeepGame\oyun\R.java” “com\google\android\gms\R.java”‘, CurrentDirectory=’C:\Users\Levent\Documents\nss\Temp\StagingArea\gen’

    Hocam bu hatayı alıyorum sizin verdıgınız 2 çözüm yolunuda yaptım neden hala bu hatayı alıyorum)

  67. emre dedi ki:

    hoca bu ders mac bilgisayarda ios build etmek için çalışırmı

  68. Özgür dedi ki:

    Test cihazı yapmak için gereken DeviceID yi , tavsiye edilen programla buldum. Fakat bize lazım olan bu ID değil zannedersem. Çünkü test reklamı çıkmıyor, normal reklam çıkıyor.Ayrıca para da yazıyor tıklamalara.
    Sonra “https://play.google.com/store/apps/details?id=ngcaothu.tools.admobtestdevice&hl=en” linkindeki uygulama ile başka bir ID buldum. Bu sefer test reklamları gelmeye başladı. Banlanmamak için bilgilerinize…

  69. Levent dedi ki:

    merhaba yasir abi. ben reklam şeyini ekledim. hatada vermedi ama reklam gozukmuyor?

  70. Muhammed dedi ki:

    hocam aynı hatayı aldım ama bende jdk yok nası yapcaz o işi aradım taradım yok

  71. Cihat dedi ki:

    hocam startapp ıda anlatabilirmisin ya

  72. murat dedi ki:

    en fazla kaç reklam ekleyebiliriz

  73. bekter dedi ki:

    Merhaba, Reklamı göster butonuna basınca reklam gözükmedi, bende gui butonu kaldırıp reklamObjesi.LoadAd( reklamiAl ); bu kodu void start’ın icine attım fakat yinede değişen birşey yok ne intertsial nede banner gözükmüyor herhangi bir hatada mevcut değil ne yapabilirim ?

  74. murat dedi ki:

    hem banner hemde installer reklamlar ekleyebilirmiyiz

  75. murat dedi ki:

    bu reklamlardan para kazanıyoruz dimi?

  76. Levent dedi ki:

    abi ben oyuna reklam eklerken soyle hata alıyorum yardım edebilir misin acaba? Failed to re-package resources. See the Console for details.

    • yasirkula dedi ki:

      Birisi şöyle bir cevap atmıştı, onu deneyebilirsiniz: “google-play-services_lib klasörünü, oyunun project dosyasında ki Plugins>Android klasörünün içine atınca düzeliyor.”

  77. Furkan dedi ki:

    Yasir abi ben uygulamamı yaptım ancak reklamı Google play’e gönderdikten yani yayınladıktan sonra mı yapacağız yoksa göndermeden mi yapıcaz şuan benim uygulamam bitti Unity’de bekletiyorum hangi adımları izlemeliyim ?

  78. Furkan dedi ki:

    Sağolun Yasir abi şimdi play’e göndermeden nasıl uygulayacağız ki unity’de şuan bitmiş halde duruyor uygulamam oyunu games ekranına aldığımızda mı geliyor reklam uygulaması nasıl oluyor kusura bakmayın bu alanda yeniyim biraz açıklar mısınız abi

  79. furkan dedi ki:

    şeyi diyorum abi oyunu android’e nasıl çevireceğiz ve reklam eklemeyi nasıl halledeceğiz onu soruyorum 😉

  80. Furkan dedi ki:

    Yasir abi build and run’a basınca ”No Android devices found. If you are sure that device is attached then it might be USB driver problem, for details please check” böyle bir hata veriyor sürekli

    • yasirkula dedi ki:

      Build&Run yapabilmek için ayarlar yapmanız gerekiyor. Onun yerine Build Settings’teki Build butonunu kullanın ve APK dosyasını USB kablo ile telefona atın.

      • Furkan dedi ki:

        onu hallettim abi şu telefonda geri tuşuna basınca çıkmak istiyor musunuz komutu şu mu function Update(){
        if (Input.GetKeyDown(KeyCode.Escape))
        Application.Quit();
        } ve bunu tam olarak ilk scene mi sonuncuya mı hepsine eklicez nasıl yapıcaz

      • yasirkula dedi ki:

        O kodu hangi scene’deyken geri tuşuna basınca çıkmak istiyorsanız o scene(ler)’e atacaksınız.

  81. Furkan dedi ki:

    peki abi ben her scene içerisinde çıkmak isteyen olursa hepsine eklicem sağolasın

  82. Furkan dedi ki:

    Yasir abi ”’Import işlemi bittikten sonra dosya yöneticinizden Android SDK‘yı kurduğunuz klasörde yer alan şu konumu açın: C:\Program Files (x86)\Android\android-sdk\extras\google\google_play_services\libproject”’ yazınızdakini aynen uyguladım ama google play services ve libproject bende yok

  83. Ahmet dedi ki:

    iyi günler Yasir bey verdiğiniz banner kodu hata veriyor bir türlü sorunu çözemedim yardımcı olur musunuz ?

    using UnityEngine;
    using GoogleMobileAds.Api;

    public class Reklam : MonoBehaviour
    {
    void Start()
    {
    BannerView reklamObjesi = new BannerView(
    "AD unit ID’niz", AdSize.SmartBanner, AdPosition.Top );
    AdRequest reklamiAl = new AdRequest.Builder().Build();
    reklamObjesi.LoadAd( reklamiAl );
    }
    }

    bu kod hata veriyor işte

  84. Ahmet dedi ki:

    hatalar da bunlar bakınız

    Assets/Reklam.cs(8,17): error CS1014: A get or set accessor expected
    Assets/Reklam.cs(6,14): error CS0547: `Reklam.Start’: property or indexer cannot have void type

    • yasirkula dedi ki:

      Kodda görünürde bir sıkıntı yok. Aldığınız hataları da ilk defa görüyorum. Kodu bir de elle yazmayı deneyin siz.

      • Ahmet dedi ki:

        peki deneyeceğim gerçekten 4 5 saat araştırdım bazı java eclipse ile yapıyorlar ama o daha da dikkat gerektiriyor

  85. Ahmet dedi ki:

    Yasir bey gene aynı oluyor elimle yazdım gene aynı hataları veriyor ben uygulamamı 2D yaptım acaba onla bir alakası var mı ya 😦

  86. eren dedi ki:

    Assets/KODLAR/reklam.cs(14,52): error CS1526: A new expression requires () or [] after type
    İD Yİ YAZDIKTAN SONRA ŞÖYLE BİR HATA ALIYORUM YARDIMCI OLABILIRMISINIZ

    • yasirkula dedi ki:

      Hatayı aldığınız satırı buraya kopyalar mısınız? Eğer o satırda ID’niz varsa rakamları gizlemek için yerlerine X karakteri koyabilirsiniz.

  87. Ahmet dedi ki:

    "AD unit ID’niz", AdSize.SmartBanner, AdPosition.Top );

    • yasirkula dedi ki:

      Benim burada paylaştığım kodu kopyala-yapıştır yaptığınız zaman bu şekilde bir hata almamanız lazım oysa. Sizin verdiğiniz satırın tam hali şöyle:

      BannerView reklamObjesi = new BannerView( “AD unit ID’niz”, AdSize.SmartBanner, AdPosition.Top );

  88. koyuncu dedi ki:

    Reklam birimi kimliği: ca-app-pub burda : işaretinden sonra bir boşluk var onunla birliktemi kopyalıyoruz yoksa ca dan mıbaşlıyoruz kopyalamaya

    • yasirkula dedi ki:

      Reklam birimi kimliğine ca-app-pub kısmı da dahil (ve elbette ki sonrasında gelen rakamlar dizisi de dahil). Yalnız : işaretinden sonra boşluk yok, eğer sizde varsa o boşluğu elle silin.

  89. Ahmet dedi ki:

    aynen dediğiniz yapıyorum tek sorun oluşturabilecek bir şey aklıma geldi benim yaptığım uygulama 2D formatlı acaba oradan mı sorun çıkarıyor ?

  90. koyuncu dedi ki:

    sizce bir oyun için reklam sayısı kaç olmalıdır

    • yasirkula dedi ki:

      Interstitial reklamlar arasında en azından bir dakika geçmesi ve interstitial reklamın oyunun ortasında küt diye çıkmaması tercihimdir. Round bitiminde/başlangıcında çıkabilir tabi. Banner reklam ise pause sürecinde çıkabilir ama oyun sırasında çıkmaması kullanıcıyı mutlu eder. Yani reklam sayısı olarak iki ideal: banner reklam ve interstitial reklam.

  91. umut dedi ki:

    bende tabletten test ettim reklamları tabletin en üstünde 2 tane banner reklamim var ama birtanesi en soldan ortaya kadar diğeride en üstün tam ortasında yani üst üsteler bu sorunu nasıl çözerim teşekkürler

  92. kemal dedi ki:

    hocam ben dediğinizi harfiyen uyguladım oyunu build ederken bir sorun çıkmıyor apk build ediliyor telefona yüklüyorum apk yı ama reklam gözükmüyor

    • yasirkula dedi ki:

      – Plugins klasörünün başka bir klasörün içinde olmadığından emin olun.
      – Projede hiçbir hata mesajı olmadığından emin olun.
      – google-play-services_lib isimli klasörü doğru yere kopyaladığınızdan emin olun.
      – Android SDK Manager’da Google Play Services’ın en son sürümünün kurulu olduğundan emin olun.
      – Oyunu yüklerken istenen izinler arasında “full network access”in olup olmadığını kontrol edin. Eğer öyle bir izin istemiyorsa gerçekten bir sorun vardır, ama öyle bir izin istiyorsa belki Ad Unit ID’nizi yanlış girmişsinizdir. Ad Unit ID’ye “ca-app-pub-” diye olan kısım da dahil olmalı.

  93. ömer dedi ki:

    proje olarak atma şansınız var mı?
    Not2 deki sorunu yaşıyorum.Yardımcı olurmusun.

    • yasirkula dedi ki:

      Zaten yardımcı olmak için Not2’ye 3 tane çözüm önerisi yazdım. Onları denediğiniz halde sıkıntı devam ediyorsa benim bilmediğim bir çözüm yolu gerekiyordur.

  94. Ömer dedi ki:

    yasir abicim ben oyunu oynarken yandığında high score ve score tablosunun üstüne banner reklam koydum oyunumda sadece bu kısımda banner var ama tekrar oyuna geçtiğimde banner reklam gitmiyor ve oyunun görünüş açısını daraltıyor ve ben bunu istemiyorum ne yapmalıyım nasıl bi kod lazım hani scene arası geçişte banner reklamın gizlenmesini istiyorum yandığında tekrar banner reklam çıksın

  95. Merhaba Yasir Bey,Reklam kodlarını oluşturup hata alamadan oyunu build ettim ve android cihazıma aktardım.Cihazda oynarken reklamlar gözükmüyor ama onun dışında her şey çalışıyor..Oyunu herhangi bir store da henüz yayınlamadığım için olabilir mi?Başka bi nedeni var mı?

    • yasirkula dedi ki:

      Store’a koymakla alakası yok. Ad Unit ID’ye ca-app-pub’lu kısmı da eklediğinizden ve Plugins klasörünün başka bir klasör içinde olmadığından emin olun.

  96. Yusuf dedi ki:

    Merhaba, her şey tam anlatıldığı gibi yapıldığında sorunsuz çalışmakta. Ancak ufak bir sorun var. Reklamları ekledikten sonra, oyun açıkken “Home” tuşu ile ana ekrana dönüp, tekrar oyunu ikondan açınca oyun başa sarmakta.Reklamları eklemeden önce böyle bir sorun yok. Yabancı sitelerde Manifest dosyası ile birkaç ayar ile sorunu aşanlar mevcut ancak ben çözüme ulaşamadım. Bu konuda yardım edebilir misiniz?

  97. Yusuf dedi ki:

    Çözümü buldum faydası olması açısından yazıyorum buraya. Plugins/Android klasörü içindeki AndroidManifest.xml dosyasında ufak bir değişiklik yeterliymiş.

    http://tinypic.com/r/w8td9w/8

    BU KOD BLOĞUNUN YERİNİ DEĞİŞTİRİYORUZ.

  98. fatih dedi ki:

    Hocam tesekkurler oncelikle.

    Reklam oyunda cikiyor ancak admob saymiyor sebebi nedir sizce ?

  99. batuhan dedi ki:

    tam ekran reklamda neden ekranda sürekli bir kutucuk ve reklamı göster yazısı var?reklam gösterilmiyorken ekranın boş olması gerekmiyor mu??

    • yasirkula dedi ki:

      Çünkü o kodu test amaçlı yazdım. O kodda butona basınca reklam çıkıyor. Butona basınca çalışan fonksiyonları siz, reklamın ne zaman çıkmasını istiyorsanız o zaman çağıracaksınız.

      • batuhan dedi ki:

        kusura bakmayın pek anlayamadım..mesela void ongui içindekileri startın içine yazdım yani oyun başladığında reklam çıksın diye ama olmadı.nerde hatam var acaba?

      • yasirkula dedi ki:

        Yazmanız gereken şey sadece şu:

        StartCoroutine( ReklamiGoster() );

        OnGUI ve GUI.Button fonksiyonları ile ilgili video ders izlemenizi şiddetle öneririm.

  100. Özgür dedi ki:

    Uygulamayı baska google hesabı ile yukledim admob hesabınıda baska google hesabı ile kullanabilirmiyim ?

  101. Özgür dedi ki:

    void OnGUI()
    {
    if( GUI.Button( new Rect( Screen.width/2 – 150, Screen.height/2 – 150, 300, 300 ), “Reklamı Göster” ) )
    {
    StartCoroutine( ReklamiGoster() );
    }
    }

    Bunu nasıl Uİ’ butona entegre ederim ?

  102. salihcan dedi ki:

    Kardesim ben reklami koydum dediklerinizi aynen yatim fakat reklam görunuyor ama tikladığım zaman açılmıyor…google playa koymadım dan mı acaba

  103. Yunus dedi ki:

    en başta 2 seçenek var gibi duruyo google playde oyunumuz varsa manuel işlemdeki c#kodlarını falan eklememize gerek yok mu oyuna. Google playdeki oyuna direk reklamı ekleyebiliyor muyuz ?

  104. Mehmet dedi ki:

    “Her Android cihazın bir Device ID‘si vardır ve Test Device özelliğinden faydalanırken bize bu ID lazım. Maalesef bu ID’yi direkt bulmanız mümkün değil. İlla ki bir programdan faydalanmalısınız. Piyasada çeşitli programlar var, benim tavsiyem ise şu küçük Android uygulaması: https://play.google.com/store/apps/details?id=com.redphx.deviceid&hl=en

    Şimdi burada böyle bir uygulama tavsiye etmişsiniz. İstenen testdeviceid burda yazan değil. Bu yazıyı güncellerseniz faydalı olacaktır. Bu şekilde faydası değil zararı doknur insanlara. Screen shot ile koyduğunuz interstitial ve banner reklamlar gerçek reklam olup test reklamları değildir. Bunlara tıklanıp hesaplar banlabilir. Yani ben de sizin buradan bakarak yaptım hesapta şuan 0.50TRY birikmiş. Umarım banlanmam diken üstünde bekliyorum.

    Testdeviceid 32 karakter uzunluğunda. “https://play.google.com/store/apps/details?id=hagamosvideojuegos.apps.admobtestdeviceid” bu linkteki uygulama ile Admob için test device id bulunabilir. Buradan alınan id ile girildiğinde http://www.mobilhanem.com/wp-content/uploads/2014/10/ios-gecis-reklam.png bu şekilde bir test reklamı çıkmaktadır.

    Faydalı olmak için yazınızı güncellerseniz çok iyi olur. Yazılarınız çok faydalı, fakat bir konuyu bilmiyorsanız ya da yeterince araştırmamışsanız bloga koymayın. Özellikle Admob da banlandıktan sonra aynı kişinin Admob da hesap açamayacağını biliyorsunuzdur umarım.

  105. gazi dedi ki:

    hocam bu nedir ya böyle bir hata alıyorum build ederken
    kafayı sıyırıcam her türlü şeyi denedim yardım ederseniz cook makbule olur
    saygılar..

    CommandInvokationFailure: Failed to re-package resources. See the Console for details.
    C:\Users\USer1\AppData\Local\Android\android-sdk\build-tools\22.0.1\aapt.exe package –auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S “res” -I “C:/Users/USer1/AppData/Local/Android/android-sdk\platforms\android-22\android.jar” -F bin/resources.ap_ –extra-packages com.google.unity

    stderr[
    AndroidManifest.xml:16: error: Error: No resource found that matches the given name (at ‘value’ with value ‘@integer/google_play_services_version’).

    ]
    stdout[
    Configurations:
    (default)
    ldpi-v4
    hdpi-v4
    xhdpi-v4
    xxhdpi-v4
    xxxhdpi-v4

  106. gazi dedi ki:

    Sorunu çözdüm.
    google-play-services_lib klasörünü yanlış yere kopyaladığım için böyle bir sorun olmuş.:\
    aynı sorunla karşılaşan arkadaşlar olursa bu klasörü doğru yere
    kopyaladığından emin olsunlar.:)
    iyi günler

  107. gazi dedi ki:

    Bu tam ekran reklamların sadece oyun açılırken gösterilmesini sağlamak için
    ne yapabiliriz?

    • yasirkula dedi ki:

      Start fonksiyonunun sonuna “StartCoroutine( ReklamiGoster() );” komutunu ekleyebilirsiniz.

      • gazi dedi ki:

        teşekkürler ama açıdıktan 3-4 saniye sonra geliyor.Hemen gelmesi için ne yapabilirim?

        Birde banner reklamın mesela belli bir saniye sonrası için yok olup belli bir saniye sonra tekrar gelmesi için nasıl bir kod yazabiliriz?

      • yasirkula dedi ki:

        Reklamın yüklenmesi birkaç saniye sürüyor, bu dediğiniz gecikme normal birşey.

        Banner için kodunuz şuna benzer olabilir:

        float değişme-zamanı = 5
        boolean banner-görünüyor = true

        if Time.time > değişme-zamanı
        {
        değişme-zamanı += 5

        if banner-görünüyor
        banner.Hide
        else
        banner.Show

        banner-görünüyor = !banner-görünüyor
        }

  108. umut dedi ki:

    https://support.google.com/admob/answer/2772620?hl=tr burada vergi odemenoz gerek diyor bunvergi odeme nasil oluyor admob otomatik olarakmi oduyor yoksa biz kendimiz devlete bunu bildirmemizmi gerek

  109. gazi dedi ki:

    dediğiniz gibi yaptım ama nedense banner if li yapılarda çalışmıyor anlayamadım.
    Acaba Time.time yerine başka bir şey mi kullanmam lazım oyun çalışıyor ama Hide ve Show fonksyonları çalışmıyor.
    Ne yapabilirim?

  110. semt cocugu dedi ki:

    Merhabalar hocam ne yaptıysam ne ettiysem sadece MainMenu mun oldugu scene’de calistirmak istiyorum banner reklamı ama butun scenelerde calisiyor ozellikle oyunun oldugu scene’de calismaması benim icin cok onemli. Teşekkür ederim iyi calismalar.

    • yasirkula dedi ki:

      Banner’ın Hide fonksiyonu var; ne zaman banner’ın kaybolmasını istiyorsanız o fonksiyonu çağırıyorsunuz. Örneğin BannerView objesinin ismi reklamObjesi ise reklamObjesi.Hide() dediğiniz vakit banner kaybolur ve reklamObjesi.Show() diyene kadar da geri gelmez.

  111. siradan dedi ki:

    Hocam oyunda uı buttona tıklayınca reklamın kaybolmasını , oyun bitince de reklamın çıkmasını istiyorum.

    Bunun için gameover objemin içine scriptimi attım.Butonun OnClick özelliğini de ayarladım.
    scriptin Start kısmında reklamı oluşturup Show dedim. OnClick kısmında oyunu tekrar başlatmasını
    ve reklam objesi için Hide ve Destroy u kullandım.

    Ancak:/ oyun basşladığında yanınca reklam geliyor ama butona basınca gitmiyor hep orada kalıyor.

    Bu sorunu nasıl düzeltebilirim?

  112. siradan dedi ki:

    Kolay gelsin üstteki sorun halloldu.

    Şunu sormak istiyorum. Mesela oyunda 5 defa yanıldığı zaman tam ekran reklamın çıkmasını nasıl sağlayabilirim

  113. mert dedi ki:

    hocam benım ihtiyacım olan reklamın 3 4 sahnede bır cıkması onun kodunu bi kaç kez denedim ama yapaadım sen baştan 3 4 sahnede bir cıkacak sekilde yazarmısın

    • yasirkula dedi ki:

      static int bir değişken olur ve ilk değeri 0 olur. Bu değişken Start fonksiyonunda 1 artar. Eğer değeri 3 4’ten büyükse reklam gösterme fonksiyonu çağrılır ve değişkenin değeri sıfırlanır.

      Ben yazmayacağım ama yapmanız gerekenler aşağı yukarı böyle.

      • mert dedi ki:

        hocam en fazla 5 10 dk nızı alır internette cok arastırdım bulamadım hep butonlu falan var kendım de denedım olmadı lutfen hocam yapın bi iyilik

      • yasirkula dedi ki:

        Oyun yapımı için kodlama bilgisi gerekli. Bu kodu ben yazmayacağım ancak başkasına yazdırmakta serbestsiniz tabi.

  114. Nuri KURUCU dedi ki:

    hocam kolay gelsin. oyuna iki reklamı birden koymak mümkün müdür? mümkünse bile sağlıklı mıdır? ben mesela öyle yaptım. tam sayfa reklamlarımda sıkıntı olmamasına rağmen banner reklamıma tıklanmıyor. görünmesinde ve kendi kendine yenilenmesinde sıkıntı yok ama tıklanamıyor. acaba iki reklam türünü de aynı anda kullanmam mı problem çözemedim.

  115. Furkan dedi ki:

    Hocam bende level başladıktan 3 saniye sonra gözüküyor.Acaba bunu nasıl hallederim ?

  116. umutt dedi ki:

    merhabalar bu hataları alıyor gender diye

    Assets/GoogleMobileAds/Platforms/Android/Utils.cs(95,17): error CS0266: Cannot implicitly convert type `Gender’ to `GoogleMobileAds.Api.Gender’. An explicit conversion exists (are you missing a cast?)

    Assets/GoogleMobileAds/Platforms/Android/Utils.cs(99,17): error CS0266: Cannot implicitly convert type `Gender’ to `GoogleMobileAds.Api.Gender’. An explicit conversion exists (are you missing a cast?)

    Assets/GoogleMobileAds/Platforms/Android/Utils.cs(103,17): error CS0266: Cannot implicitly convert type `Gender’ to `GoogleMobileAds.Api.Gender’. An explicit conversion exists (are you missing a cast?)

    • yasirkula dedi ki:

      Gender yazan herşeyi GoogleMobileAds.Api.Gender yapmayı deneyin.

      • osman dedi ki:

        Hocam merhabalar. Öncelikle belirtmeliyim ki sitenin yakından takip ediyorum.çok faydalı bir site.
        Benim sorum şu ben şimdi uygulaması goggle playa yukledim.reklam eklemen için uygulamaya unity içerisinde dediklerini uygulayıp ondan sonra build edip reklem ekleme basarili olmuşsa daha sonra google playdeki uygulamayı guncelleyecegiz. Öyle mi

      • yasirkula dedi ki:

        Evet, eğer telefonunuzda test ederken reklamlar sorunsuz gözüküyorsa Google Play’e oyunun son sürümünü yükleyebilirsiniz.

      • osman dedi ki:

        Hocam dediklerinizi aynen yaptım.hiçbir uyarı almadan build ettim.yalnız internete bağlı olduğum halde reklamlar görünmüyor.yanı reklamı goster butonuna tıkladığınızda halde gostermiyor.banner reklamı ise siyah ekran oluşuyor kırmızı yazıyla “Missing internet permission in AndroidManifest.xml”yazısı yazıyor.

      • yasirkula dedi ki:

        Admob’un düzgün çalışması için AndroidManifest’te internet erişimi gibi izinler alması lazım. Başka bir plugin kullanıyorsanız onun AndroidManifest’i ile Admob’unki çakışmış olabilir; gereken izinleri Plugins’teki AndroidManifest’e elle eklemelisiniz.

      • osman dedi ki:

        Bu konuda yardımcı olabilir misiniz yasir bey

      • yasirkula dedi ki:

        Admob pluginiyle gelen AndroidManifest dosyası ile Unity’nizin Plugins/Android klasöründe yer alan AndroidManifest dosyasını merge etmeniz lazım. Merge etme işinde belli bir standart var mı bilmiyorum, ben iki dosyayı notepad ile açıp farklı bulduğum yerleri kopyala yapıştır yapıyorum.

  117. Emre dedi ki:

    Merhaba arkadaslar,
    Yasir arkadasima emeginden dolayi tesekkur ediyor ve yabanci forumlqrda da bircok kisinin ayni konuda muzdarip oldugu soruyu yoneltiyorum.

    Reklamlarimiz android tablet ve telefonlarda gozukuyor ,
    Gozukmelerinden dolayi admob hesapta parada birikiyor fakat

    Reklamlara tiklayamiyorum.
    Yukaridaki adimlari teker teker yaptim
    Enson olarak googleadmob unity packege’in son surumunu yukleyip tekrar denedim fakat nafile.

    Kucuk bir ayrintiyida paylasmak idtiyorum
    Uygulama ilk yukleyip test ettigimde bir defa reklama tikladim. Ve reklamin web sitesi acildi. Ertesi gun admob hesabinda 1 kere reklaminiza clicklenmistir diye para bile yansidi.
    Birdaha da tiklayamadim

    • yasirkula dedi ki:

      Reklama tıklanmama sıkıntısı benim bilgi dağarcığım dışında kalıyor, böyle bir sorun yaşamadığım için sebebini bilemiyorum. Ancak çözümü bilen birisi varsa bizimle paylaşması eminim pek çok kişiye yardımcı olacaktır.

  118. umut dedi ki:

    merhabalar
    yaptığım oyunu yukarıda bahsettiğiniz link your app ile bağlayacam ama markette gözüken oyun burda gözükmüyor sebebi ne olabilir??

    • yasirkula dedi ki:

      Bir iki gün sonra tekrar deneyin, markette Publish edilen oyunlar illa ki listede gözükür. Onun dışında belki oyunun Age Rating gibi bazı bilgilerini Google Play Developer Console’da girmeyi unutmuşsunuzdur, ondan gözükmüyor da olabilir.

  119. Enes dedi ki:

    Merhabalar. Öncelikle emeklerinizden dolayı çok müteşekkirim. Verdiğiniz kodlar ile reklamımı kurdum ancak, oyunum level geçmeye dayalı. yani Oyuncu 2- 5 – 10 snde bir level geçebiliyor.
    Sorum şu ki: Her levelde ayrı kameralar var. Her leveldeki kameralara kodu yazdım. Leveller yüklendiğinde reklamlar üst üste biniyor. Dolayısıyla dokunmalar level yükseldikçe kasıyor. Eğer Sadece ilk levele/sahneye reklam scrpiti yazıp diğerlerine yazmasam, kasma yok ancak reklam tazelemeside olmuyor. Aynı reklam dönüp duruyor.

    İlginiz ve alakanız için tekrar teşekkürler..

  120. nebkarub dedi ki:

    Merhabalar. Benim oyunumda 3 sahne bulunmakta. Bunlarda 2. sahnede sadece üst tarafta bir banner düşünüyorum. 2. sahneden 3.sahneye geçerken de geçiş reklamı yapmak istiyorum. Fakat yukarıdaki banner kodlarını oyunuma koyunca tüm sahnelerde çıkıyor. Ben bunları sınırlayamıyorum. Ayrıca sahne geçişlerine nasıl geçiş reklamı koyabilir. Yardımcı olursanız çok sevinirim.

    • yasirkula dedi ki:

      Banner’ı kapatmak için Destroy() veya Hide() fonksiyonu kullanmalısınız. Application.LoadLevel fonksiyonundan önce interstitial reklamı çağırırsanız tam ekran reklam gelecektir.

  121. Barış dedi ki:

    Belli bir ücret karşılığı reklamları kaldırma özelliğini nasıl ekleyebilirim?

  122. ahmeta dedi ki:

    ben reklamın game over menüsüyle beraber gelmesini istiyorum bunu nasıl yapabilirim??

  123. Ekrem dedi ki:

    Slm herkese abi ben gecis reklami koydum ama oyuna ama oyunu actigimda reklami goster butonu cikiyor tam ortada onu nasil kaybedecegim ben bir oyun acildiginda bide oyun kapandiginda ciksin istiyorum reklam

    • yasirkula dedi ki:

      OnGUI fonksiyonunu silerseniz o debug butonu ortadan kalkar. Oyunun başında reklam göstermek için Start fonksiyonunda reklam çıkarmanız yeterli. Oyun kapanınca reklam çıkarmanın yolu var mı bilmiyorum.

  124. ekrem dedi ki:

    slm herkese abi ben Interstitial reklamı koydum reklamda cıkıyor dogru yaptım oyunu google playe koydum ama para gelmiyor sen demissin 5 10 dk sonra 1 kuruş geldigini ama bana hiç gelmedi yardım edermisin

    • yasirkula dedi ki:

      Admob anasayfasında reklamın istatistikleri (tıklanma sayısı ve tıklanma oranı gibi) gözükür, oradaki istatistikleri kontrol edin. O değerler sıfırdan farklıysa muhtemelen zamanla para gelmeye başlayacaktır.

  125. ekrem dedi ki:

    abi bide su var şimdi reklamı kapatınca mı yani carpıya basınca mı para geliyor yoksa reklama girince mi para geliyor

  126. ekrem dedi ki:

    abi ben carpıya basıyordum yani reklamı kapatıyodum ondan mı para gelmiyordu herkese oyle demiştim

  127. Sahin dedi ki:

    Hocam son güncelleme için teşekkürler. Bir sorum var, reklamda bulunan reklamı kapat butonunun önünü başka bir reklamla kapatırsak ve kullanıcı bu reklamı geçmek için reklamı tıklamak zorunda kalırsa ve böylece para kazanırsak admob hesabımız ban yermi?

  128. yakup dedi ki:

    muhtemelen ban yer ama sitelerde mesela reklam çıkıyo reklamın sağ üst köşesinde bi yuvarlak kutucuk ama gene seni reklama yönlendiriyo kapatmayı sol üst köşedeki çarpı kutusundan yapıyosun ben bunun istatistiğini çıkardım 1 hafta bu reklamlara 4 kere yanlışlıkla tıkladım çok şaşırtıcı böyle bi şey ban yemiyorsa eğer bence çok etkili çünkü oyununa göre değişir ama ortalama 4 sent getiriyo 1 haftada 1 kişiden 16 sent.iş telefona gelince çoğu insan sağ elini kullanıyo bence böyle bi şey android te de çok kazandırır çünkü o yuvarlak kutucuk sağ tarafta olduğundan oyunun heyecanıyla ilk ona tıklarlar peki böyle bişey ban yermi benim sorum bu.

  129. ekrem dedi ki:

    ŞAHİN kardeşim söylede olabilir şimdi o butonun ismini tum reklamları kapat yazar ve kullanıcılar reklamı sevmedikleri için tum reklamı kapat butonuna elbet tıklarlar ama tıkladıkları zaman o buton kaybolması gerekmektedir ve o nasıl olacak onu bilmiyorum

  130. Ekrem dedi ki:

    Yasirkula kardesim simdi ben bu banlanma olayini anlamadim simdi beni sevmeyen birisi yada benim para kazanmami istemeyen birisi benim oyunumu indiririse ve bu banlamayi biliyorsa reklama arka arka tiklayinca benim admob hesabim banlanirmi boyle birsey olurmu

    • yakup dedi ki:

      ardarda tıklayınca admob onları geçersiz sayar zaten ama oyunun eğer çok indirilmişse bence göze batmaz çünkü gösterilen reklama tıklanma oranı %10 geçmiyo kolay kolay,ama sen genede yaptığın oyunu kimseye duyurma,indirmeleri için “aa bak böyle bi oyun çıkmış çok değişik”falan de öyle indirt bence.

  131. Çağtay dedi ki:

    Reklam geliyor fakat tıklanmıyor yardımcı olurmusunuz …

  132. mehmet ali dedi ki:

    reklamı istediğim bir butonla cıkarmamız mumkunmu yani rety butonuna tıklayınca reklam cıksın bunu nasıl yapabiliriz?

    • yasirkula dedi ki:

      Butona tıklayınca çalışan fonksiyonun içinde reklam çıkarma fonksiyonunu çağırabilirsiniz.

      • mehmet ali dedi ki:

        StartCoroutine(Camera.main.GetComponent(ReklamScriptininIsmi).ReklamiGoster()); bu kodu yazıyorum ama reklamı goster kırmızı oluyor yardım edermisiniz

      • yasirkula dedi ki:

        ReklamScriptininIsmi adında bir scriptiniz yok diyor. Reklam scriptinin ismini yazacaksınız oraya.

      • mehmet ali dedi ki:

        using UnityEngine;
        using System.Collections;
        using System;
        using GoogleMobileAds.Api;

        public class reklam : MonoBehaviour
        {
        private InterstitialAd reklamObjesi;

        void Start()
        {
        YeniReklamAl( null, null );

        }

        public void retry(int mode)
        {
        StartCoroutine( ReklamiGoster() );
        }
        IEnumerator ReklamiGoster()
        {
        while( !reklamObjesi.IsLoaded() )
        yield return null;

        reklamObjesi.Show();
        }

        public void YeniReklamAl( object sender, EventArgs args )
        {
        if( reklamObjesi != null )
        reklamObjesi.Destroy();

        reklamObjesi = new InterstitialAd( “asdasdas” );
        reklamObjesi.AdClosed += YeniReklamAl;

        AdRequest reklamiAl = new AdRequest.Builder().Build();
        reklamObjesi.LoadAd( reklamiAl );
        }
        }

        kodu bu şekilde yaptım butonada button ekledim ordan retry sectim ama butona basınca reklam cıkmadı neden acaba?

      • yasirkula dedi ki:

        Retry’a basınca aynı zamanda Application.LoadLevel da çalışıyorsa reklam objesini singleton yapmalısınız. Böylece reklam objesi sahne geçişi sırasında yok olmaz ve execution’ı kaldığı yerden devam eder (teorik olarak). https://yasirkula.com/2014/08/03/unityde-bir-objenin-sahneler-arasi-gecislerde-yok-olmasini-onlemek-singleton-prensibi/

  133. Furkan dedi ki:

    Konsolda bakınca reklam alınıyor gözüküyor ama telefonda reklam gözükmüyor.Ad Unity ID doğru.

    http://oyun-programlama.com/Attachment/140-Ads-z-png/

  134. Recep dedi ki:

    Hocam ben tam ekran reklamı level açılınca ve karakter respone edilince gelmesini istiyorum fakat bunu randomize edebilirmiyiz mesela kullanıcı leveli her açtığında karşısına çıkmicak yani 1 kere çıkıyorsa 2. Veya 3. de açılmasın 4. Yüklenişte açılsın bunun kontrolünü nasıl yaparız.

    • yasirkula dedi ki:

      Bir int değişkende çıkan reklam sayısı depolanır. Bu değer diyelim 3’ten büyükse reklam gösterilip ardından değer sıfırlanır.

      • Recep dedi ki:

        Hocam aynen dediğinizi yaptım int değerini koruyorum birde random değerle kontrolunu yapıyorum kod çalışıyor random değerler oluyor fakat tam ekran reklam çıkmıyor bir göz atarsanız koda sevinirim çok zamanımı aldı baya araştırdım fakat bulamadım bi cevap.

        using UnityEngine;
        using System.Collections;
        using GoogleMobileAds.Api;

        public class Reklamm : MonoBehaviour
        {
        private InterstitialAd reklamObjesi;
        private int RandomPoints;
        private bool _reklam;
        public bool _Banner;

        public void Start()
        {
        _Banner = true;
        _reklam = false;

        if (_Banner) {
        BannerView reklamObjesii = new BannerView (
        “blabla”, AdSize.SmartBanner, AdPosition.Top);
        AdRequest reklamiAl = new AdRequest.Builder ().Build ();
        reklamObjesii.LoadAd (reklamiAl);
        RandomAt ();
        }

        }

        public void Update()
        {
        Debug.Log (RandomPoints);
        PlayerPrefs.SetInt (“ReklamPuanim”,GameManager.Instance.ReklamPuanim);

        if (PlayerPrefs.GetInt (“ReklamPuanim”) >= RandomPoints) {
        _reklam = true;
        RandomAt ();
        GameManager.Instance.RekReset ();
        } else { _reklam=false;}

        if(_reklam)
        {
        reklamObjesi = new InterstitialAd( “blabla” );
        AdRequest reklamiAl = new AdRequest.Builder().Build();
        reklamObjesi.LoadAd( reklamiAl );
        StartCoroutine( ReklamiGoster() );
        }
        }

        IEnumerator ReklamiGoster()
        {
        while( !reklamObjesi.IsLoaded() )
        yield return null;

        reklamObjesi.Show();
        }
        private void RandomAt()
        {
        RandomPoints = Random.Range (1,4);
        }
        public void falsea()
        {
        _Banner = false;
        }
        }

      • yasirkula dedi ki:

        PlayerPrefs.GetInt (“ReklamPuanim”)’ın değerinde bir sıkıntı vardır belki. Ben başka birşey göremedim.

      • Recep dedi ki:

        Birde banner reklamı üst kısmı sağdan sola tamaını kaplıyor skor süre Oyundurdurma butonlarının üstüne geliyor bloke ediyor.Bunun boyutunu nasıl değiştirmeliyim.

      • yasirkula dedi ki:

        O UI elemanlarını aşağıya taşımaktan başka bir çözüm yolu bilmiyorum. Bu yüzden ben sadece oyunu pause edince banner gösteriyorum.

  135. Mehmet Ali dedi ki:

    Abi her şey tamam’da ilk oyunumu yapıp koyduğumda sıkıntı çıkmıyor da her şeyi burada ki gibi yapıyordum yine aynı yapıyorum fakat hata veriyor sen aşşağıda Java/jdk1.7.0_51 yazıyorsun ya şuan yeni sürüm olduğu için değiştiriyorum ben onu 1.8.0 yapıyorum klasörden bakıp bunu değiştirmeliyimiyiz?

    “Eğer sizde “C:\Program Files\Java\jdk1.7.0_51” klasörü yoksa kendi jdk klasörünüzü bulup o konumu yazın “Değişken değeri:” olarak. Sonrasında Path isimli sistem değişkenini listeden bulup çift tıklayın ve “Değişken değeri:“nin en sonuna şunu ekleyin: “;C:\Program Files\Java\jdk1.7.0_51\bin” (başında ; olduğuna dikkat edin!). Son “

    • yasirkula dedi ki:

      Sizde jdk1.7.0_51 klasörü yoksa sizdeki klasörün ismini yazın, evet. Aldığınız hatayı Google’layın derim zira başka sebeplerden ötürü de alıyor olabilirsiniz.

      • Mehmet Ali dedi ki:

        Şöyle bir durum var aslında sorun admob yani reklam ile ilgili başka yaptığım bir oyunun çıktısını almaya çalışıyorum aynı şekil bu oyunda reklam yok hata vermiyor sonra tekrar başka bir oyuna geçip reklam eklediğim zaman hata almaya başlıyorum yani aslında hatanın tamamı reklam ile ilgili ne yapabilirim?

      • Mehmet Ali dedi ki:

        Ayrıyetten eklemeyi unuttuğum bir şey daha var ilk yaptığım google play’e koyduğum oyunu şuan build ettim onda da reklam var onda sıkıntı çıkmadı bence soru google-play-services_lib bu dosyayı kopyalarken oluşan bir sorun ben şöyle yapıyorum o aşamada da C:\Users\Mehmet Ali\AppData\Local\Android\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib bu konuma geliyor google-play-services_lib adlı klasörü kopyalayıp D:\Unity Projects\Oyun ismi\Assets\Plugins\Android\GoogleMobileAdsPlugin bu ykopyalıyorum dosyayı. Yardım için teşekkürler abi.

      • Mehmet Ali dedi ki:

        Biraz uzun ve taksit taksit yazdım kusura bakmayın. Şöyle bir yazı okudum “To fix this error, you have to copy the version.xml file from android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/res/values/ into Assets/Plugins/Android/res/values/ your Unity project’s folder.” bende Android/res/vaules diye bir yerde yoktu o yüzden dediğini yapamadım fakat şimdi şöyle bir yöntem denedim google-play-services_lib klasörünün içindekileri Android/Plugins/GoogleMobileAdsPlugin içine kopyaladım oldu eskiden GoogleMobileAdsPlugin’in içine google-play-services_lib klasörünü kopyalıyordum dediğim gibi ilk oyunda da öyle yaptım klasör şeklinde oldu fakat bunda olmadı şimdi klasörün içindekileri kopyaladım hata vermedi fakat hala merak ediyorum sorun neden böyle oldu? doğru mu yaptım? sıkıntı çıkar mı?

      • Mehmet Ali dedi ki:

        Ayrıyetten şimdi de şöyle bir sorunum var reklamlara tıklanmıyor…

      • yasirkula dedi ki:

        Admob ile ilgili sıkıntılar hakkında bilgi düzeyim çok kısıtlı. Ben karşılaştığım sorunların çözümünü bu derste belirttim; onlar haricinde bir çözüm yolu bilmiyorum. Reklamlara tıklanamaması sorununuysa ben yaşamadım. Bazı reklamlarda reklama bir kere tıklayınca sağda bir ok çıkıyor ve o oka tıklamak gerekiyor. Belki sizdeki de öyle bir sıkıntıdır.

        NOT: Eğer reklamları Unity editörde görmeye çalışıyorsanız göremezsiniz. Reklamlar sadece mobil cihazlarda ve emülatörde gözükmekte.

      • Mehmet Ali dedi ki:

        Mobil’de çalıştığını biliyorum para gelmiş fakat Büyük boy reklam ekledim onda tıkladı fakat banner’a tıklamadı anlamadım şahsen neyse Admob’a baktım 2 kuruş gelmiş bir çözüm bulucaz artık teşekkürler abi kolay gelsin.

  136. İbrahim dedi ki:

    Hocam Admoıbda analizide kurdum analizi tek başına kullandığımda çalıştı admobda kulanıcı girdiğim cihaz sahne adı filan yazıyor bir sonraki denememde ise Ads reklamı ve analizi aynı anda çalıştırmaya kalktığımda böyle bir hat aldım.Çok araştırdım fakat bir çözüm bulamadım siz biliyorsanız veya yabancı kaynaklarda varsa yazarsanız sevinirim bu işi tamamlarsam oyunumu yayınlayacağım Reklam için yaptığınız script mükemmel teşekkürler.

    • İbrahim dedi ki:

      http://i.hizliresim.com/o9Q3j2.png Hata da şöyle birşey yer var.

      • yasirkula dedi ki:

        İlginiz için teşekkür ediyorum. Analytics’i şimdiye kadar hiç kullanmadığımdan malesef bu sıkıntının çözümünü bilmiyorum. Ancak internette yaptığım araştırmalardan yola çıkarak söyleyebilirim ki büyük ihtimalle projenizde aynı isimli iki dosya var. Bence Project panelindeki arama kutucuğuna “.jar” (tırnaksız) yazın ve aynı isimli dosya varsa bunlardan birini (hangisi bilmiyorum) silin.

  137. maliyazici dedi ki:

    Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details.
    C:\Users\MuhammedAli\Music\Mali\android\sdk\build-tools\21.1.1\aapt.exe package –auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S “res” -I “C:/Users/MuhammedAli/Music/Mali/android/sdk\platforms\android-21\android.jar” -F bin/resources.ap_ –extra-packages com.google.unity

    stderr[

    Reklamı yaptıktan sonra bu hatayı verdi acil yardım edermisin ?

    • yasirkula dedi ki:

      stderr kelimesini bu sayfa içinde aratın, birkaç sonuç çıkması lazım.

      • maliyazici dedi ki:

        Tamam teşekkür ederim onu halletimde şimdide interstital rekalm almıştım ben sizin verdiginiz kodu girdim girince ekranın tam ortasında reklamı göster tuşu çıktı nasıl gizliycem bunu

      • yasirkula dedi ki:

        Bu soruyu yorumlarda defalarca kez cevapladım. OnGUI fonksiyonunu sileceksiniz.

  138. onur dedi ki:

    İyi güzelde kazanılan paraları nasıl ne şekilde elimize geçirebiliyoruz? Bazı yerlerde şirket kurmalısın, vergi ödeyeceksin gibi şeyler okudum. Nedir ne değildir ayrıntılı bir yazı da göremedim konuda.

    • yasirkula dedi ki:

      Adres bilgilerinizi ve IBAN numaranızı sisteme giriyorsunuz. Sonra adresinize postayla gelen kodu siteye giriyorsunuz (postanın gelmesi yaklaşık bir ay sürebiliyor) ve bundan böyle hesabınıza para otomatik olarak yatıyor.

      • onur dedi ki:

        Valla bizim gibi yeni başlayanlarla senin kadar ilgilenen başka biri yoktur herhalde. Ne kadar teşekkür etsek azdır. Windows Phone için AdMob reklam koyma hiç bir yerde yok bu arada. Uygun bir zamanın olursa onunla da ilgili ufakta olsa öğretici/açıklayıcı bir yazı yazarsan süper olur.

      • yasirkula dedi ki:

        Admob’un Windows Phone Unity plugini yok; olmasını ben de isterdim ama malesef :/

  139. ahmet dedi ki:

    Ben karekterin yürümesini bilgisayarda aşağıdaki kodlarla sağladım.Fakat ben bunu dokunmatikte yapmak istiyorum. Karekterin bilgisayarda yürüme falan kodlaması animasyonlar herşey tamam bilgisayarda sağlam çalışıyor

    #pragma strict

    internal var animator:Animator;
    var v:float;
    var h:float;
    var sprint :float;

    function Start () {

    animator=GetComponent(Animator);

    }
    function Update () {

    v=Input.GetAxis(“Vertical”);
    h=Input.GetAxis(“Horizontal”);
    Sprinting();
    }
    function FixedUpdate()
    {
    animator.SetFloat(“Walk”,v);
    animator.SetFloat(“Turn”,h);
    animator.SetFloat(“Sprint”,sprint);

    }
    function Sprinting()
    {
    if(Input.GetButton(“Fire1”))
    {

    sprint=0.2;
    }
    else{
    sprint=0.0;
    }

    }

  140. ahmet dedi ki:

    Ben bunu dokunmatik ekranda yapmak istiyorum:
    bunlar buton kodamaları

    *Kod çok uzun olduğu için temizlendi*

  141. ahmet dedi ki:

    Ben bilgisayarda ki butonlar sayesinde harelet ettirdiğim (yürümesi ve koşması)olan karekterin kodlamasını oluşturduğum buton kodlamasına nasıl dahil edip karekteri hareket ettirebilirim. Yardımlarınız için şimdiden teşekürler

    • yasirkula dedi ki:

      TouchButtonCheck fonksiyonunun olduğu scriptteki Update fonksiyonunu LateUpdate’e çevirin. Ardından karakter scriptini düzenleyin:

      function MoveUp() { v = 1.0; }
      function MoveDown() { v = -1.0; }
      function MoveLeft() { h = -1.0; }
      function MoveRight() { h = 1.0; }

      function Update()
      {
      h = 0.0;
      v = 0.0;
      Sprinting();
      }

      Kodda eskiden var olan Update fonksiyonundan kurtulun.

      • ahmet dedi ki:

        Tam olarak nasıl olduğunu anlayamadım.Denedim ama olmadı.Biraz daha açıklama imkanınız varmı acaba. Yardımınız için teşekürler.Yapmak istediğim dokunmatik ekrana çizdirdiğim butonlarla Karekterin yürümesini sağlamak.

      • yasirkula dedi ki:

        Bir scriptte TouchButtonCheck fonksiyonu var. O scripti bir şekilde bulacaksınız (CTRL+F?). Orada Update fonksiyonu var. Artık o fonksiyonun adı LateUpdate olacak.

        Karakter scriptinde de Update fonksiyonu var. Buradaki Update fonksiyonunu sileceksiniz. Ardından önceki yorumumda yazdığım birkaç satır kodu kopyalayıp karakter scriptinin sonuna yapıştıracaksınız.

  142. Volkan dedi ki:

    reklam scriptlerini koydum ama reklamlar çıkmıyo banner fln interstital da ise göster diyorum reklam gözükmüyo sadece çarpı işareti var napmam lazım?? bide şunu sormam gerekiyor interstitial’ı ben game over sahnesine butonsuz yapıcam ama her yüklendiğinde değil 2 defa da bir yani 1.de açılacak 2. de açılmicak 3. de açılcak 4. de açılmicak bunu nasıl yapabilirim ben beginner bide.

    • enescetin1903 dedi ki:

      Reklam gorunmemesini bi kontrol et. Aşamaları gözden geçir.Olması tekrar kur.

      2de 1 reklam çıkma olayını İF ile yapabilirsin.

      Oyunun gameover olma fonksiyonun içine İF koyacaksın.

      Örnek;

      Public static int reklam=0;

      Public void GameOver() {
      reklam++;
      İF(reklam==1){
      Reklam gösterme kodunu buraya yaz.
      }
      Else İF(reklam==2){
      reklam=0;
      }

      }

      Yukarıda ki şekilde 1.3.5.7….. Tek sayılı şekilde reklam gösterirsin.

      • Volkan dedi ki:

        ben şöyle bişey yazdım ama 1 kere arttırıyo daha artırmıyo yani 1 oluyo 2 olmuyo

        void Update()
        {
        if (Input.GetMouseButtonDown (0)) {
        defa+=1;
        PlayerPrefs.SetInt(“defa”, defa);
        YeniReklamAl( null, null );
        }
        else if (defa % 2 == 0) {
        StartCoroutine (ReklamiGoster ());
        }
        Debug.Log (PlayerPrefs.GetInt(“defa”));
        }
        ayrıca bu startcoroutine olduğu için başka scriptte gösteremiyorum. reklaminterstitial’ın içinde göstersem daha iyi olcak playerprefs ile sayıyı kaydediyorum çünkü diğer sahneye geçince yine sıfılanıyo ama 1 olunca daha başka arttırmıyo

      • Volkan dedi ki:

        yazdığını denedim ama olmadı arttırmıyo benimkinde olduğu gibi diğer sahneye geçtiği için

    • yasirkula dedi ki:

      static bir boolean’ınız olur. Game over olduğu vakit bu boolean’ın değeri true ise InterstitialGoster fonksiyonu çağrılır ve boolean false yapılır. Yok eğer game over olduğunda boolean’ın değeri false idiyse o zaman sadece boolean’ın değeri true yapılır, InterstitialGoster fonksiyonu çağrılmaz.

      Reklamların niye bozuk gözüktüğüyle ilgili bir bilgim yok, bende şimdiye kadar hep düzgündü.

      EDIT: Üstteki yorumdaki kodu biraz düzenleyecek olursam:

      void Update()
      {
      	if (Input.GetMouseButtonDown (0)) 
      	{
      		PlayerPrefs.SetInt("defa", PlayerPrefs.GetInt("defa") + 1);
      		YeniReklamAl( null, null );
      		
      		if (PlayerPrefs.GetInt("defa") % 2 == 0) 
      		{
      			StartCoroutine (ReklamiGoster ());
      		}
      		
      		Debug.Log (PlayerPrefs.GetInt("defa"));
      	}
      }
      
      • Volkan dedi ki:

        bu kodun yanına static boolean eklemem mi gerekiyor? ayrıca orda ki update’i start yaptım çünkü bi kere çalışacağı için update olursa sürekli yükseltir.

      • yasirkula dedi ki:

        Bu boolean’lı yöntem değil. Sizin kodunuzu elledim biraz sadece. Fonksiyon Update olmak zorunda yoksa GetMouseButtonDown(0) işinize yaramaz.

      • Volkan dedi ki:

        yok ben gameover ekranı yüklenirken istiyorum 2. defa yüklendiğinde reklam çıkacak butonu ben denemek için yapmıştım yükseltiyo mu diye

      • yasirkula dedi ki:

        Game over’ı tetikleyen olay çalışınca eğer statikBooleanDegisken’in (static var statikBooleanDegisken : boolean = false;) değeri true ise reklamı gösterip statikBooleanDegisken’ı false yapın; yoksa sadece statikBooleanDegisken’ı true yapmakla yetinin.

      • Volkan dedi ki:

        ya şimdi de bu hatayı veriyor çıkartırken nedir bu??

        AndroidManifest.xml:16: error: Error: No resource found that matches the given name (at ‘theme’ with value ‘@style/Theme.IAPTheme’).

      • yasirkula dedi ki:

        Derste yazdıklarımı harfi harfine yaptıysanız sebebini ben de bilmiyorum.

      • Volkan dedi ki:

        şu hatayı veriyo daha önceki mesajımda da belirttim build ederken. AndroidManifest.xml:16: error: Error: No resource found that matches the given name (at ‘theme’ with value ‘@style/Theme.IAPTheme’).

      • yasirkula dedi ki:

        Ben derste yazan herşeyi aynen yapınca hiç hata almadım, bu yüzden bu hatanın sebebini bilmiyorum.

      • Volkan dedi ki:

        o yazdığınız kod işe yaramadı. bastıktan sonra tekrar ölüyorum ve bakıyorum ama hala 0 ve sanırım bastığımda da reklam çıkıyor.

      • yasirkula dedi ki:

        SetInt fonksiyonundan sonra PlayerPrefs.Save() yapabilirsiniz.

      • Volkan dedi ki:

        debug logda görünüyo çıkıyo ama butona basınca oyun durduruldu diyo ve hala şu IAPTheme sorununu çözemedim debug.logda reklamlar çıkıyor görünyor show ve hide diye ama telefonda görünmüyo

  143. YusufOz dedi ki:

    Yasir hocam merhaba. İnterstital reklamda oynama yabtim kismen. Bir button a atadim scripti method olarak. Simdi hocam reklam butonu surekli akrif ama ben eger rekkam yuklenmiş ise aktif etmek istiyorum. O yuzden nasil kontrol edebilirim reklamin yuklenmis oldugunu veya henuz olmadigini.

  144. Paylaşımlarınız için teşekkürler Yasin Bey, Sizin sayenizde ben de ilk uygulamama tam boy reklam ekleyerek Google Play’ de yayınladım.
    Destek için indirip oynayabilirsiniz 🙂 Umarım beğenirsiniz.

    https://play.google.com/store/apps/details?id=com.bagames.Bigbang3D.Labyrinth&hl=tr

  145. Volkan dedi ki:

    Yeni Android oyunumu yayınladım. Destek için oyunu indirebilirsiniz. Teşekkürler

    https://play.google.com/store/apps/details?id=com.WOLKY.SwingJumper

  146. atlok dedi ki:

    Hocam sanki, banner codeu her kodu eklediğimiz scenee gittiğimizde üzerine yeniden banner ekliyor gibi çalışmıyor mu? Diyelim ki ilk sayfanın kamerasına koyduk bu kodu ve applicationı ilk açtığımzıda bu banner reklamı çıktı. Sanki başka bir scenee gidip tekrar ilk sayfaya döndüğümüzde aynı reklamı silmeden, üzerine yeni bir reklam bannerı atıyor gibime geldi.

    Ben sadece interstitial reklamı eklemek istiyorum. Kullanıcı her yanlış cevap verdikten sonra yani score penceresinden önce interstitial reklamı göstermek istiyorum. Aşağıya kodun ilgili bölümünü kopyalıyorum, vaktiniz olduğunda da incelemenizi rica ediyorum. Banner kodlarım çalışıyor ama bir türlü bunu çalıştıramadım.

    using UnityEngine;
    using UnityEngine.UI;
    using System.Text;
    using System.Xml;
    using System.Collections;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Xml.Serialization;
    using System.IO;
    using GoogleMobileAds;
    using GoogleMobileAds.Api;

    public class responder : MonoBehaviour
    {
    private InterstitialAd interstitial;

    private int gecis;

    public Text questionsorular;
    public Text responseA;
    public Text responseB;
    public Text responseC;
    public Text responseD;
    public Text infoResponses;
    public Text infoResponses1;
    public Text example;
    public Text dogrusayisi;

    private float corrects;
    private float questoesquestions;
    private float media;
    private int Notice;
    }

    void Start()
    {
    RequestInterstitial();
    }

    public void response(string alternative)
    {

    RequestInterstitial();

    if (alternative == “A”)
    {
    if (responseA.text == infoResponses.text)
    {
    corrects += 1;
    nextQuestion();
    }
    else
    {
    Invoke(“wrong”, 1);
    }
    }

    else if (alternative == “B”)
    {
    if (responseB.text == infoResponses.text)
    {
    corrects += 1;
    nextQuestion();
    }
    else
    {
    Invoke(“wrong”, 1);
    }
    }

    else if (alternative == “C”)
    {
    if (responseC.text == infoResponses.text)
    {
    corrects += 1;
    nextQuestion();
    }
    else
    {
    Invoke(“wrong”, 1);
    }
    }

    else if (alternative == “D”)
    {
    if (responseD.text == infoResponses.text)
    {
    corrects += 1;
    nextQuestion();
    }
    else
    {
    Invoke(“wrong”, 1);
    }
    }
    }

    void wrong()
    {
    ShowInterstitial();
    Application.LoadLevel(“Notice”);
    }

    private void RequestInterstitial()
    {
    #if UNITY_EDITOR
    string adUnitId = “unused”;
    #elif UNITY_ANDROID
    string adUnitId = “MY ADS ID”;
    #elif UNITY_IPHONE
    string adUnitId = “INSERT_IOS_INTERSTITIAL_AD_UNIT_ID_HERE”;
    #else
    string adUnitId = “unexpected_platform”;
    #endif

    // Create an interstitial.
    interstitial = new InterstitialAd(adUnitId);
    // Load an interstitial ad.
    interstitial.LoadAd(createAdRequest());
    }

    private AdRequest createAdRequest()
    {
    return new AdRequest.Builder()
    .AddTestDevice(AdRequest.TestDeviceSimulator)
    .AddTestDevice(“0123456789ABCDEF0123456789ABCDEF”)
    .AddKeyword(“game”)
    .SetGender(Gender.Male)
    .SetBirthday(new DateTime(1985, 1, 1))
    .TagForChildDirectedTreatment(false)
    .AddExtra(“color_bg”, “9B30FF”)
    .Build();
    }

    private void ShowInterstitial()
    {
    if (interstitial.IsLoaded())
    {
    interstitial.Show();
    }
    }

    • yasirkula dedi ki:

      Tepede hep banner olacaksa sadece ilk sahnede banner çağırın. İlla öteki sahnelerde de banner çağıracaksanız sahne değiştirmeden önce mevcut banner’ı Destroy edin.

      Interstitial’ın AdClosed event’ine bir fonksiyon verin (benim örnek kodumda var) ve bu fonksiyonun içine sadece Application.LoadLevel(“Novice”); yazın. wrong()’daki kodu ise şöyle yapın:

      if (interstitial.IsLoaded()) {
      interstitial.Show();
      }
      else {
      Application.LoadLevel(“Novice”);
      }

  147. Murat dedi ki:

    Merhaba
    Çok detaylı çok güzel bir anlatım olmuş teşekkürler.
    Adobe flash ile as3 kodları kullanılarak yapılan bir android oyun yada uygulamanın içine admob reklam ekleme konusunda bilginiz varmı ? bizimle paylaşırmısınız ?
    teşekkürler…

  148. Volkan dedi ki:

    ya admob’un eski sürümünü yükledim IAP hatası yüzünden ama bu seferde banner çıkmıyo interstitial’i başlatınca oyundan atıyo internette aradım bi türlü çözemedim sorunu

    • yasirkula dedi ki:

      Admob plugini ile gelen herşeyi import ederseniz IAP hatası almamanız lazım. Ben 1 hafta kadar önce bir build almıştım ve sıkıntı çıkmamıştı.

      • Volkan dedi ki:

        admob ile gelen başka neler var ki??

      • yasirkula dedi ki:

        unitypackage’ın içinde neler geliyorsa onlar var. Bir de Android SDK’nın olduğu yerdeki google-play-services_lib klasörü var.

      • Volkan dedi ki:

        IAPTheme ve Interstitial reklamda çökme sorunu çözüldü benim gibi sorun yaşayanlar olduysa:

        Assets\GooglePlayGames\Editor\BackgroundResolution.cs’ye girip

        private static void AddDependencies() fonksiyonun içine bu kodu eklesinler

        svcSupport.DependOn(“com.google.android.gms”,”play-services-ads”,PluginVersion.PlayServicesVersionConstraint);

        admin işine yararsa konuna ekleyebilirsin.

  149. ahmet dedi ki:

    merhabalar kolay gelsin. Bir sorum olacaktı.Unity uygulama içinde kamera nasıl açabiliriz(cihaz kamerası direk açılsın)

  150. Sedat dedi ki:

    hocam satın olduğum bir oyunda leadbolt ads var, ve admob eski sürüm.. interstittial ads yok, eklemeye çalışıyorum, başlangıç js dosyasında leadbolt dan gösterme kodu var oraya sizin örneğinizi veya orjinal google unity örneğini koysam da
    “Assets/Scripts/PlayButton.js(41,17): BCE0005: Unknown identifier: ‘GoogleMobileAdsDemoScript’.”
    hatası veriyor.. nasıl çözerim size?

    • yasirkula dedi ki:

      GoogleMobileAdsDemoScript adında bir script yok diyor hatada. Eğer öyle bir script varsa o scripti Plugins klasörüne koymayı deneyebilirsiniz.

      • Sedat dedi ki:

        o zaman da “Assets/Plugins/GoogleMobileAdsDemoScript.cs(3,7): error CS0246: The type or namespace name `GoogleMobileAds’ could not be found. Are you missing a using directive or an assembly reference?”
        diyor..

      • yasirkula dedi ki:

        Bu hatayı veren tüm scriptleri Plugins’e taşıyın diycem ama o zaman da çok fazla script taşımak zorunda kalabilirsiniz. Sanırım en iyi yöntem ilk başta hata veren başlangıç js dosyasını Editor isimli klasörün içine taşımak.

  151. Ali dedi ki:

    Kardeşim scriptler iyi hoşta tam ekran olsun banner olsun bunlar hep cs sicript benim oyun full java sicriptle yazıldı.Ben şimdi karakter objeye çaptığında tam sayfa reklamın gelmesini istiyorum nasıl olacak bu iş.java sicriptten cs sicripte GetComponent komutunu kullanamıyorum.Nasıl uyarlayabilirim yardımcı olurmusun?

    • Sedat dedi ki:

      yoksa benim sorun da bundan mı 🙂
      hocam interstitial i koymak istediğim yer aynı klasörde bulunan playbutton js dosyası, ve başlangıcı da şöyle, ama kodda dediğim gibi hata veriyor.. ama leadbolt a ait başka adcontrol.cs dosyasını çağırınca sorun yapmıyor

      private var musicOnText : Texture;
      private var musicOffText : Texture;
      private var texSoundOn : Texture;
      private var texSoundOff : Texture;

      function onModuleFailedEvent()
      {
      loadDisplayAd();
      }

      function loadDisplayAd()
      {

      //Interstitial ads
      ReklamScript.InsterstitialGoster();

      }

    • yasirkula dedi ki:

      C#’tan Javascript’e geçiş yapmak için şu ders işinize yarayabilir: https://yasirkula.com/2013/08/21/unityde-javascript-unityscript-ile-cin-birbirinden-farklari/

      • Sedat dedi ki:

        benim interstitial ads ı göstermesi gereken dosya “pragma strict” imiş. nasıl uyarlayabiliriz?

      • yasirkula dedi ki:

        pragma strict satırı scriptte türü belli olmayan değişken tanımlamayı engellemeye yarar. Yani reklam scriptine herhangi bir etkisi olmaması lazım.

  152. zeroxali dedi ki:

    yasirkula maalesef konunda sadece javadan javaya ve cs den cs ye yazıyor.Hiçbir yolu yokmu bunun.cs scriptten java scripte tanımlamanın?Yada admobun verdiği scriptler hepsi cs mi niye java yok.Lütfen yardımcı ol!!!

    • yasirkula dedi ki:

      Önce ReklamScript’i Plugins klasörü içine taşımayı deneyin. Eğer hata verirse scripti Javascript’e çevirin, başka bir yolu yok. C# scripti Javascript’e çevirmek için attığım linke bakabilirsiniz.

  153. elaslan dedi ki:

    destekleriniz için teşekkür ederim.
    Sonunda reklam ekleyebildim.
    https://play.google.com/store/apps/details?id=com.elaslan.zipla

  154. ekrem dedi ki:

    yasir kardeşim aynısı yapıyorum ama reklam cıkmıyor butonlu olarak yapıyorum butona basıncada cıkmıyor neden acaba biliyormusun

    • yasirkula dedi ki:

      Android SDK’nın ve Unity plugininin en son sürüm olmasına dikkat edin. Plugindeki herşeyi import edin. Ad unit ID’yi kopyalarken “ca-app-pub”lu kısmı da kopyalamayı unutmayın. Singleton kodunu kullanmayı deneyin. Oyunu Unity editörde çalıştırırken konsolda “Dummy Ad Loaded” gibi mesajlar çıkıp çıkmadığını kontrol edin (çıkması lazım); run-time error olmamasına da dikkat edin.

  155. ekrem dedi ki:

    Gencler merhaba hepinize ilk paralı oyunumu yayınladım destek verirseniz sevinirim birde söyle duydum ben avea wodafone turkcell ilk oyun yada program satın alan kişi ücretsiz oluyormuş oyle duydum ben bilmiyorum destek verirseniz memnun olurum

    https://play.google.com/store/apps/details?id=com.ekremmay17

  156. yakup dedi ki:

    Bir sahnede her 4 geçişte bir tam ekran reklam açılsın istiyorum bunu nasıl yapabilirim?Mesela ana oyun sahnesinden restart menusüne 4 kere geçiş yapıldığında 4. de tam ekran reklam açılsın.

  157. Mehmet KAYA dedi ki:

    Resimler gözükmüyor hocam yenileyebilirsen çok sevinirim

    • yasirkula dedi ki:

      Firefox veya Internet Explorer ile girince gözüküyor bende; eğer sorunu çözebilirseniz nasıl yaptığınızı paylaşmanız güzel olur.

  158. Barış dedi ki:

    Singleton Reklam Scripti kullanmadan uygulamama banner reklam ekledim. İlk bölüme ve oyunun diğer bölümlerine ekledim reklamı ama menüye eklemedim.Menüye eklemediğim halde reklam menüde de gösteriliyor. Reklam bazı butonların üzerini kaplıyor. Bu yüzden reklam sunumum devre dışı bırakılmış.Bana bir mail geldi. Gelen mailin bir kısmı şu şekilde

    Violation explanation

    ADS AND CONTENT OVERLAP: As stated in our program policies, publishers are not permitted to alter the behavior of AdMob ads in any way. This includes placing ads so that they cover any part of the application content or parts of an application covering any portion of the ads. If your app has drop-down menus they are not permitted to cover AdMob ads.

    Ben şimdi yeni reklam oluşturcam. Ama bu reklamların sahne arası geçişlerde yok olmasını nasıl sağlarım? Oda olmadı Tam ekran reklam kullanıcam.

  159. Alper dedi ki:

    Merhaba ben projeme GoogleMobileAds.unitypackage paketini importladım ve şöyle bir hata çıktı henüz reklam eklemedim bu hata bir sıkıntı yaşatırmı, çözümü nedir ?

    Google.JarResolver.ResolutionException: Cannot find candidate artifact for com.android.support:appcompat-v7:23.1.0+
    at Google.JarResolver.PlayServicesSupport.DependOn (System.String group, System.String artifact, System.String version) [0x00000] in :0
    at AdMobDependencies..cctor () [0x00039] in D:\RunnerProject\Assets\PlayServicesResolver\Editor\AdMobDependencies.cs:21
    UnityEditor.EditorAssemblies:SetLoadedEditorAssemblies(Assembly[])

    • yasirkula dedi ki:

      Daha önce karşılaşmadığım bir hata; internette de garip bir şekilde benzer bir hata görmedim. Eğer hataya rağmen oyunu çalıştırabiliyorsanız hatayı görmezden gelmeyi deneyin.

  160. Barış dedi ki:

    Yasir abi oyunuma güncelleme yapacağım güncelleme yapmak için aynı paket adı olması şart mı? Çünkü paket adını değiştirmezsem oyunum hiçbir şekilde reklam almıyor.Hayatımda ilk defa böyle bir sorun başıma geldi.İnşallah güncelleme yapmak için aynı paket adı olması şartı yoktur google play’in.Şimdiden cevabın için teşekkür ederim.

    • Barış dedi ki:

      Sorunu hallettim google a mail attım.Meğer reklam sunumum devre dışı bırakılmış.Ama tekrar açtılar

  161. mahmut dedi ki:

    admobu ekleyince build edemiyorum

    Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details.
    C:\Users\OTTOMAN\Desktop\SDK\build-tools\23.0.2\aapt.exe package –auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S “res” -I “C:/Users/OTTOMAN/Desktop/SDK\platforms\android-23\android.jar” -F bin/resources.ap_ –extra-packages com.google.unity -S “C:\Users\OTTOMAN\Desktop\SADOBAN\Temp\StagingArea\android-libraries\GoogleMobileAdsPlugin\res”

    stderr[
    AndroidManifest.xml:16: error: Error: No resource found that matches the given name (at ‘theme’ with value ‘@style/Theme.IAPTheme’).

    ]
    stdout[
    Configurations:
    (default)

    Files:
    values\version.xml
    Src: () C:\Users\OTTOMAN\Desktop\SADOBAN\Temp\StagingArea\android-libraries\GoogleMobileAdsPlugin\res\values\version.xml
    AndroidManifest.xml
    Src: () AndroidManifest.xml

    Resource Dirs:
    Type values
    values\version.xml
    Src: () C:\Users\OTTOMAN\Desktop\SADOBAN\Temp\StagingArea\android-libraries\GoogleMobileAdsPlugin\res\values\version.xml
    Including resources from package: C:\Users\OTTOMAN\Desktop\SDK\platforms\android-23\android.jar
    applyFileOverlay for drawable
    trying overlaySet Key=app_banner.png
    trying overlaySet Key=app_icon.png
    applyFileOverlay for layout
    applyFileOverlay for anim
    applyFileOverlay for animator
    applyFileOverlay for interpolator
    applyFileOverlay for transition
    applyFileOverlay for xml
    applyFileOverlay for raw
    applyFileOverlay for color
    applyFileOverlay for menu
    applyFileOverlay for mipmap
    Processing image: res\drawable-xhdpi\app_banner.png
    Processing image: res\drawable\app_icon.png
    Processing image: res\drawable-ldpi\app_icon.png
    Processing image: res\drawable-hdpi\app_icon.png
    (processed image res\drawable-ldpi\app_icon.png: 98% size of source)
    Processing image: res\drawable-xhdpi\app_icon.png
    (processed image res\drawable\app_icon.png: 98% size of source)
    Processing image: res\drawable-xxhdpi\app_icon.png
    (processed image res\drawable-hdpi\app_icon.png: 99% size of source)
    Processing image: res\drawable-xxxhdpi\app_icon.png
    (processed image res\drawable-xhdpi\app_icon.png: 99% size of source)
    (processed image res\drawable-xxhdpi\app_icon.png: 99% size of source)
    (processed image res\drawable-xxxhdpi\app_icon.png: 99% size of source)
    (processed image res\drawable-xhdpi\app_banner.png: 93% size of source)
    (new resource id app_banner from xhdpi-v4\drawable\app_banner.png #generated)
    (new resource id app_icon from drawable\app_icon.png #generated)
    (new resource id app_icon from ldpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from hdpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from xhdpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from xxhdpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from xxxhdpi-v4\drawable\app_icon.png #generated)
    ]

    tüm denilenleri yaptım hata bu ve

    CommandInvokationFailure: Failed to re-package resources. See the Console for details.
    C:\Users\OTTOMAN\Desktop\SDK\build-tools\23.0.2\aapt.exe package –auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S “res” -I “C:/Users/OTTOMAN/Desktop/SDK\platforms\android-23\android.jar” -F bin/resources.ap_ –extra-packages com.google.unity -S “C:\Users\OTTOMAN\Desktop\SADOBAN\Temp\StagingArea\android-libraries\GoogleMobileAdsPlugin\res”

    stderr[
    AndroidManifest.xml:16: error: Error: No resource found that matches the given name (at ‘theme’ with value ‘@style/Theme.IAPTheme’).

    ]
    stdout[
    Configurations:
    (default)

    Files:
    values\version.xml
    Src: () C:\Users\OTTOMAN\Desktop\SADOBAN\Temp\StagingArea\android-libraries\GoogleMobileAdsPlugin\res\values\version.xml
    AndroidManifest.xml
    Src: () AndroidManifest.xml

    Resource Dirs:
    Type values
    values\version.xml
    Src: () C:\Users\OTTOMAN\Desktop\SADOBAN\Temp\StagingArea\android-libraries\GoogleMobileAdsPlugin\res\values\version.xml
    Including resources from package: C:\Users\OTTOMAN\Desktop\SDK\platforms\android-23\android.jar
    applyFileOverlay for drawable
    trying overlaySet Key=app_banner.png
    trying overlaySet Key=app_icon.png
    applyFileOverlay for layout
    applyFileOverlay for anim
    applyFileOverlay for animator
    applyFileOverlay for interpolator
    applyFileOverlay for transition
    applyFileOverlay for xml
    applyFileOverlay for raw
    applyFileOverlay for color
    applyFileOverlay for menu
    applyFileOverlay for mipmap
    Processing image: res\drawable-xhdpi\app_banner.png
    Processing image: res\drawable\app_icon.png
    Processing image: res\drawable-ldpi\app_icon.png
    Processing image: res\drawable-hdpi\app_icon.png
    (processed image res\drawable-ldpi\app_icon.png: 98% size of source)
    Processing image: res\drawable-xhdpi\app_icon.png
    (processed image res\drawable\app_icon.png: 98% size of source)
    Processing image: res\drawable-xxhdpi\app_icon.png
    (processed image res\drawable-hdpi\app_icon.png: 99% size of source)
    Processing image: res\drawable-xxxhdpi\app_icon.png
    (processed image res\drawable-xhdpi\app_icon.png: 99% size of source)
    (processed image res\drawable-xxhdpi\app_icon.png: 99% size of source)
    (processed image res\drawable-xxxhdpi\app_icon.png: 99% size of source)
    (processed image res\drawable-xhdpi\app_banner.png: 93% size of source)
    (new resource id app_banner from xhdpi-v4\drawable\app_banner.png #generated)
    (new resource id app_icon from drawable\app_icon.png #generated)
    (new resource id app_icon from ldpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from hdpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from xhdpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from xxhdpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from xxxhdpi-v4\drawable\app_icon.png #generated)
    ]
    UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
    UnityEditor.Android.PostProcessAndroidPlayer.Exec (System.String command, System.String args, System.String workingdir, System.String[] progress_strings, Single progress_value, System.String errorMsg)
    UnityEditor.Android.PostProcessAndroidPlayer.CompileResources (System.String stagingArea, System.String packageName, UnityEditor.Android.AndroidLibraries androidLibraries)
    UnityEditor.Android.PostProcessAndroidPlayer.PostProcessInternal (System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)
    UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)
    UnityEditor.HostView:OnGUI()

    build-tools\23.0.2\ siz 20.0 daki zipalign dosyasını kopyalayın demişsiniz yuakrda ben hem onu hem bunu denedim bunun haricinde 5 gün önce GoogleMobileAds 3.0 çıkmış bunda ad.close yok 2.3 versiyonunda var 3.0 versiyonunda onad.close var acaba sorunum nerde olabilir ? şuanda bende 2.3 yüklü güncellemelerle gelen bir problem mi yoksa

    • yasirkula dedi ki:

      Ben de böyle bir hata almıştım. Çözmek için plugin ile gelen dosyaları projeden silip plugini tekrar import ettim (libs ile biten klasörü android sdk’dan kopyala-yapıştır yapmama ise nedense gerek kalmadı).

  162. ahmet dedi ki:

    Hocam merhabalar;Bir sorum olacaktı:Sahnede olan nesnenin üzerinde ses var ve bu sesin her 5 saniyede bir tekrar çalmasını nasıl yapabilirim.Şimdiden Teşekürler.

    • yasirkula dedi ki:

      Şuna benzer şekilde olabilir:

      private var aSource : AudioSource;
      
      function Start()
      {
      aSource = GetComponent(AudioSource);
      InvokeRepeating(“Tekrarla”,5f,5f);
      }
      
      function Tekrarla()
      {
      aSource.Stop();
      aSource.Play();
      }
      
  163. bekter dedi ki:

    Daha öncede buradaki kodlarını kullanmıştım. Bu sefer singletonu gördüm çok sevindim fakat o kodu koyduğum ana ekrana gelince oyun kapanıyo. Sonra singleton kodunu kaldırıp eski sisteme döndüm Bu seferde geçiş reklamının olduğu sahneye gelince kapanıyor. Çok kafam karışık.

  164. bekter dedi ki:

    using UnityEngine;
    using GoogleMobileAds.Api;

    public class ReklamBanner : MonoBehaviour
    {

    private BannerView reklamObjesi;

    void Start()
    {

    reklamObjesi = new BannerView(
    “**admob id*”, AdSize.SmartBanner, AdPosition.Bottom);
    AdRequest reklamiAl = new AdRequest.Builder()
    .AddTestDevice(AdRequest.TestDeviceSimulator)
    .AddTestDevice(“***Device id’im*”)
    .Build();
    reklamObjesi.LoadAd(reklamiAl);

    }

    public void reklamGizle()
    {

    reklamObjesi.Hide();
    }

    public void reklamGoster()
    {

    reklamObjesi.Show();
    }

    }

    Hocam sadece menülerde reklam gözüksün istiyorum sabahtan beri ne denediysem olmadı. Oyun ekranında kamera scriptinde reklamGizle() fonksiyonunu çağıyırorum fakat olmuyor.if ApplicationLoadedLevelName”” bla bla olanlarda reklam objesini hide yap diyorum gene olmuyor. illa bu her sahnede çıkıyor.

    • yasirkula dedi ki:

      Reklamı çıkaran ReklamBanner scripti bölümler arası geçişlerde yok olduğu için artık o reklamı yok etmeniz mümkün değil (bir nevi memory leak). Bölüm değiştirmeden önce reklamı yok etmeniz gerekiyor.

      • bekter dedi ki:

        Anladım hocam, çok teşekkürler. Aslında reklam kullanmak istediğim her sahne için, o sahneye has banner scripti koymam ve o sahneden çıkarken hide demem gerekti. Ve sanırım her sayfada yeni request alıyorum şuan bakalım ne o olacak.

  165. Mehmet dedi ki:

    Herkese Kolay Gelsin bende bugün bitirdim oyunumu. Güzel bir site yararlı bilgiler var.
    Bu arada Reklam olarak en düşük 15 kuruş filan alıyorsun tıklamada. Gösterim ise 1000 gösterimde 4.40 değerlerinde başlıyor. fakat tıklama ve gösterim sayısı doğru orantıya girdikçe bu oran artıyor. Yeni Yaptığım oyunuma Herkezi Beklerim Bir sıkıntı Veya Sorun Yaşarsanız Bildirirseniz sevinirim.)

    https://play.google.com/store/apps/details?id=com.MaybysStudio.AngryOrange&hl=tr

  166. Kimex dedi ki:

    Bu başlığa ek olarak Unity Ads ve dükkan sistemi yapmayı düşünür müsünüz ?

    • yasirkula dedi ki:

      Unity Ads’i kullanmak oldukça basit: http://docs.unity3d.com/Manual/UnityAdsHowTo.html

      In App Purchase sistemini kendim kullanacak olursam dersini paylaşabilirim.

    • Kimex dedi ki:

      Google.JarResolver.ResolutionException: Cannot find candidate artifact for com.google.android.gms:play-services-ads:LATEST
      at Google.JarResolver.PlayServicesSupport.DependOn (System.String group, System.String artifact, System.String version) [0x00000] in :0
      at AdMobDependencies..cctor () [0x00024] in C:\Users\belgelerim\Desktop\Unity Oyunları\Menu Deneme24\Assets\PlayServicesResolver\Editor\AdMobDependencies.cs:18
      UnityEditor.EditorAssemblies:SetLoadedEditorAssemblies(Assembly[])

      Böyle bir hata aldım GoogleMobileAds.unitypackage dosyasını import edince bu ne hatası ?

      • yasirkula dedi ki:

        Şu linkte diyor ki: “Extras/Android Support Repository” ve “Extras/Google Repository”nin son sürümünün yüklü olduğundan emin olun. Ayrıca plugin’in de son sürümünü indirdiğinizden emin olun.

  167. Kimex dedi ki:

    iyi günler bu admob ve unity ads yi windows phone ( veya universl) ve pc için de uygulamamız mümkün mü ? değilse hangi reklam sistemlerini uygulayabiliriz ?

    • yasirkula dedi ki:

      Hem Admob hem Unity Ads kullandım. İkisinin de Unity pluginleri ne Windows Phone ne de PC destekliyor. Admob’un aslında Windows Phone desteği var ama pluginlerde görmedim henüz bu desteği.

  168. Kimex dedi ki:

    Tekrar iyi günler
    Yukardaki tüm adımları izleyince 2 mesaj yukardaki hatayı alıyordum sürekli ve son SDK güncellemesinden sonra o hatayı vermedi ve düzgün bir biçimde build yapabildim ama şimdide bannerların gelmediğini görüyorum 😦 İşin tuhaf tarafı unity de bannergoster fonksiyonunu atadığım butona her tıkladığımda Dummy ShowBannerView UnityEngine.Debug:Log(Object) uyarısının sayısı sürekli artıyor yani sanıyorum banner çağrılıyor ama niye banner tablette gözükmüyor anlamadım 😦 Tabletim 4,4,2 android sürümü ve sdk daki tüm importları yapıldı ayrıca test sürümünü kullanmıyorum,gerçi bundan olacağınıda sanmıyorum 😦
    NOT: test için device id gösteren program indirdim oda Secure ID , GSF ID ve UUID numaralarını gösteriyor ben hangisini kullancam ?

  169. Kimex dedi ki:

    verdiğiniz linke tıklayınca verilen uyarı
    Sorry! This content is not available in your country yet.
    We’re working to bring the content you love to more countries as quickly as possible.
    Please check back again soon.

  170. hocam merhabalar benim bir sorunum var. ben bir objeye çarptığımda misal objenin tagı “carpma” olsun. ben carpma tagındaki bir objeye çarptığım zaman nasıl geçiş reklamını çıkartabilirim. yeniyim bu konularda kusura bakmayın şimdiden.

    • ve bir tane ui menü yaptım bu menüm açıldığı zaman geçiş reklamı görünsün istiyorum onun içinde yazabilirseniz çok sevinirim.

      • yasirkula dedi ki:

        Menüyü ne zaman açıyorsanız o zaman “ReklamScript.InterstitialGoster();” fonksiyonunu çağırabilirsiniz.

    • yasirkula dedi ki:

      Şunun gibi birşey işinize yarayabilir:

      function OnCollisionEnter( temas : Collision )
      {
      if(temas.gameObject.CompareTag( “carpma” ))
      ReklamScript.InterstitialGoster();
      }

  171. hocam şimdi düzenleme yaptım. bir scene yaptım ve istediğim şey bu scene açılınca interstitial geçiş reklamım açılsın.

  172. Kimex dedi ki:

    http://i.hizliresim.com/NAW1ka.png
    Merhaba Resimdeki hatayı alıyorum ve 1 haftadır çözemedim bu problemi.Nette baktığımda pek çok kişi bu hatayı almış ve çözdüklerini gördüklerim hep 1,5 yıl önceki Build tools’a dönerek bunu çözmüşler.Bu hatayı alıpda çözebilen var mı ?

    Birde eğer asset store dan mesela https://www.assetstore.unity3d.com/en/#!/search/page=1/sortby=relevance/query=publisher:2256 bu adamın sattığı google admob assetini satın alırsam yukardaki sorunla karşılaşmam mümkün mü ?

    Aldığımız bir assette sorun çıkarsa para iadesi oluyor mu ?

    Yardımlarınız için şimdiden teşekkürler.Bir tek bu admob eklemesi kaldı onuda bir türlü çözemedim 😦

    • yasirkula dedi ki:

      Hatanın çözümünü bilmiyorum, plugini silip tekrar import etmek belki işe yarar. Asset store’daki pluginler de aynı hataya sebebiyet verebilir, belki sorun pluginde değildir. Asset Store’da para iadesi için plugin sahibiyle iletişime geçip onun onayını almanız lazımmış.

  173. urnamed322013med32 dedi ki:

    Hocam dediğiniz herşeyi yaptım. İnternetten çeşitli tutorialler izledim ama hala bu hatayı alıyorum: (Assets/Standard Assets/Scripts/Reklam.cs(2,7): error CS0246: The type or namespace name `GoogleMobileAds’ could not be found. Are you missing a using directive or an assembly reference?)

    Kütüphaneyide android klasörüne attım hala böyle lütfen yardımcı olun. İsterseniz burdan olursa teamviewerden herhangi bir yerden olabilir 🙂

    • yasirkula dedi ki:

      C# script kullandığınız halde bu hatayı almanız garip geldi. Normalde Javascript’ten C#’a erişmeye çalışınca bu hata gelir. İsterseniz Reklam.cs scriptini Plugins klasörüne taşımayı veya konsolda başka bir error varsa o hatayı gidermeyi deneyin.

  174. Kimex dedi ki:

    Aslında boş bir proje oluştursanız siz.Sadece 3 buton olacak ,banner göster,banner gizle ve instatial göster butonları ve bu boş projeyi nete yükleseniz.En azından sizde çalışan bir proje ile başlamış olur insanlar,kim bilir belkide biz yanlış yaptığımız için o yüklediğiniz projede reklamlar çalışır

    • yasirkula dedi ki:

      Admob plugini sürekli güncellendiği için ben bir proje yüklesem de bu projede kullandığım pluginin 1 ay sonra tarihi geçmiş olacak. Onun yerine tavsiyem singleton kodunu kullanmanız ve komutları test etmek için de OnGUI fonksiyonundaki comment’leri kaldırmanız.

  175. hocam herşey tamam hatta scripte debug.log ekledim reklamın çalışıp çalışmadığını kontrol etmek için.

    çıktı alıyorum fakat oyunumda bir türlü reklam açılmıyor. unityden bakıyorum loglarda reklamın çalıştığı yazıyor ama oyuna girdiğim zaman telefondan veya bluestarkdan bir türlü reklamlar gözükmüyor. sorun ne olabilir acaba?

  176. Kimex dedi ki:

    hakketten ya nasıl çözdün kaç gündür uğraşıyorum çözemedim bir türlü 😦
    “google-play-services_lib” Dosyasının artık kopyalanmasına gerek yokmuş çünkü PlayServicesResolver klasörü gerekli olanları alıyor muş diye duydum doğru mu ?
    Örnek dosya istememin asıl nedeni bu arada birde video çekersiniz belki diyeydi ama onu yazmayı unutmuşum 😀
    Nette araştırdığımda hep AndroidManifest değişikliği yaptırıyorlar bu gerekli mi ? Çünkü onlar eski plugin kullanıyorlardı

    • yasirkula dedi ki:

      “google-play-services_lib” klasörünü kopyalayıp kopyalamayacağımızı ben hâlâ çözemedim. Bazen kopyalamadan da build alabilirken bazen aldığım bir hatayı ancak klasörü kopyalayarak çözebiliyorum.

      AndroidManifest dosyasında bir ayar yapmanız ise gerekmiyor.

  177. Enes dedi ki:

    Hocam anlattıklarınızı bir bir uygulamadım tam ekran olanları hallettim fakat bannerleri oyun menusune ekledim cameraya unit-id vs. her şey tamam fakat yinede banneri bir türlü göremedim sizce sıkıntı ne olabilir

  178. Kimex dedi ki:

    Yasir Hocam ben reklamın ana menu ve oyun scene lerinde üstte diğer scene lerde ise altta olmasını istiyorum,bu yüzden scripti

    void BannerReklamAl()
    {
    if (Application.loadedLevel == 0 || Application.loadedLevel == 1)
    {
    Debug.Log(“yukarda”);
    bannerReklam = new BannerView(bannerID, AdSize.SmartBanner, AdPosition.Top);
    }
    else if (Application.loadedLevel == 2)
    {
    Debug.Log(“asagida”);
    bannerReklam = new BannerView(bannerID, AdSize.SmartBanner, AdPosition.Bottom);
    }
    şeklinde düzenledim ama banner reklamı hep üstte çıkıyor.Bu scene göre banner in yer değiştirme işlemini başka nasıl yapabilirim ?

    • Kimex dedi ki:

      Bu arada Admobun fiyatlandırması nasıldı ? Yani 1000 gösterimin bedeli nedir ?

      • yasirkula dedi ki:

        Fiyatlandırma o reklamı veren şirketin ayırdığı bütçeye göre değişiyor(muş). Sabit bir ücret yok. Gösterimden daha ziyade tıklama ile para kazanıyorsunuz.

    • yasirkula dedi ki:

      Banner’ı aşağıya yerleştirmek sizin yaptığınız gibi oluyor. Ben bir hata göremedim. Önceki sahnedeki banner’ı yok etmemiş olabilirsiniz diyeceğim ama her halükarda aşağıda banner gözükmesi lazım (üstteki banner’a ilaveten). Yani bilemedim.

  179. Emre dedi ki:

    İyi günler dediginz her şeyi yapmama rağmen “unable to convert classes into dex format. see the console for details” hatası alıyorum buildlerken yardımcı olursanız sevinirim

    • yasirkula dedi ki:

      Benim de bilgim burada yazdıklarımla sınırlı. Plugini tekrar import etmenizi öneririm.

      • Emre dedi ki:

        Tekrar importlamak icin ne yapmam gerekir (bu islerde yeniyim kusuruma bakmayin)

      • yasirkula dedi ki:

        Kullandığınız tek plugin Admob ise direkt Plugins klasörünü silin, yoksa oradaki GoogleMobileAds’i silin. Eğer daha ileri gitmek isterseniz reklamla ilgili yazdığınız kodları da commentleyin. Ardından Import seçeneği ile plugini tekrar import edin.

      • Emre dedi ki:

        hocam sorun google_play_services klasöründe fakat ne olduğunu çözemedim android sdkdan bir daha kursam düzelirmi yoksa bildiğiniz bir çözüm yolu varmıdır

      • yasirkula dedi ki:

        Plugini tekrar import ettikten sonra bi “google_play_services” klasörü olmadan build almayı deneyebilirsiniz. Benim bildiğim bir çözüm yolu yok.

      • Kimex dedi ki:

        Öğrendiğim kadarıyla ( bendede öyle oldu ve çalıştı ) son pluginde “google-play-services_lib” klasörünü import etmeye gerek yokmuş. Bunu yapmadığım zaman hem build hatası almadım hemde reklamlar gözüküyordu 😀

  180. batuhan dedi ki:

    Bende de failed to repackage resources …hatası veriyor.bu yorumlarda yazan herşeyi deneme rağmen.başka çözen varsa lütfen bu yoruma yazabilir mi?

  181. fatihblogsite dedi ki:

    sizin ilk yazdığınız kodu yazdım,(tam ekran olanını) build etti,ikinci kez hem reklamlar çabuk gelsin hem de butonu kaldırmak için olan 2 paylaştığınız kodu yapıştırdım bu sefer failed to repackage hatası aldım

    • yasirkula dedi ki:

      Ben oyunlarımda singleton reklam scriptini kullanıyorum; sizde neden sıkıntı çıkardı bilemedim. İsterseniz plugini silip tekrar import etmeyi ya da “google-play-services_lib” klasörünü kopyalamadan build almayı deneyin.

  182. fatihblogsite dedi ki:

    bir de ilk build ettiğimi telefona attım,orada reklama tıkladım fakat adMob hesabımda hala bir değişme yok

  183. fatihblogsite dedi ki:

    Bir sorum daha var admobda her uygulama için tek bir ID mi yeterli mi yoksa ayrı ayrı almak zorunda mıyız ??

    • yasirkula dedi ki:

      Kesin bir bilgim yok ancak ayrı ayrı alırsanız her bir uygulamanın reklam istatistiklerini ayrı ayrı görme imkanınız olur.

  184. fatihblogsite dedi ki:

    Tamamdır,sonunda çözdüm son kodu kullandım.Şimdi deneyeceğim bakalım reklam gösterecek mi
    ilk attığın tam ekran reklam kodunda buton olmasa çok güzel olacaktı 🙂

  185. fatihblogsite dedi ki:

    failed re-pack ile başlayan sorunun çözümü “sdk menagerdan google service yazan yeri silip yeniden yükleyin ardından uygulamadaki bütün google servisle alakalı dosyaları ve plugins i silin yeniden yükleyin “

  186. batıkan dedi ki:

    using UnityEngine;
    using System.Collections;
    using GoogleMobileAds.Api;
    public class Reklam : MonoBehaviour {
    private BannerView reklamObjesi;
    void Start () {
    reklamObjesi = new BannerView (
    “reklam id”, AdSize.SmartBanner, AdPosition.Bottom);
    AdRequest reklamiAl = new AdRequest.Builder ().Build ();
    reklamObjesi.LoadAd (reklamiAl);
    }
    IEnumerator Strt() {
    yield return new WaitForSeconds( 30f );
    reklamObjesi.Hide ();
    reklamObjesi.Destroy ();
    }
    // Usta ben normalde ana menüde reklamın cıkmasını play a basıp 2. sahne acılınca reklamın gitmesini istiyordum lakin hiç bi şekilde başaramadım.Yukarda destroy filan yap demişsiniz yaptım bişeyler olmadı. Olmayınca 30 saniye reklam gözüksün sonra kapansın dedim üstteki kodu yazdım oda olmadı. Nerde yanlış yapıyorum ya ?

    • batıkan dedi ki:

      Bu arada reklam gözüküyor çalışıyor hertürlü ama ben kapanmasını istiyorum her sahnede gözüküyor gitmiyor

    • yasirkula dedi ki:

      Şu fonksiyonu eklemeyi deneyin:

      void OnDestroy()
      {
      if(reklamObjesi != null)
      reklamObjesi.Destroy();
      }

      • batıkan dedi ki:

        Sonunda ya 2 gündür gece gündüz uğraşıyorum şimdi 2. sahneye geçince kapanıyor reklam. Herşeyini bitirdim oyunumun sıra geldi stora a üyelik alıp yüklemeye. Ufak tefek sorunlar var her telefonda butonlar farklı yerlerde gözüküyor bunları düzeltmem lazım tabi önce 🙂
        Bu arada Reklam denemesi çalışmadı bende direkt reklam üzerinden denedim 20 kere gözüktü 1 kere tıklandı diyor umarım bişey olmaz kaç gözükmede banlıyolar acaba ve hep tahmini kazanç 0.01 TL 🙂

  187. ahmet enes adlığ dedi ki:

    hocam ben apk ladım telfona yükledim hiç bir sıkıntı çıkmadı google playa yükledikten sonra 4 5 cihaza oyunu indiremedim google play 963 hatası veriyor nasıl çözebilirim.

    not:unity de bu hata var ama build ederken sorun çıkmıyor
    Google.JarResolver.ResolutionException: Cannot find candidate artifact for com.google.android.gms:play-services-ads:LATEST
    at Google.JarResolver.PlayServicesSupport.DependOn (System.String group, System.String artifact, System.String version) [0x00000] in :0
    at AdMobDependencies..cctor () [0x00024] in C:\Users\Enes\Documents\New Unity Project 2\Assets\PlayServicesResolver\Editor\AdMobDependencies.cs:18
    UnityEditor.EditorAssemblies:SetLoadedEditorAssemblies(Assembly[])

    • yasirkula dedi ki:

      Hatayı internette aradığımda iki kişinin “Local Maven repository for Support Libraries” modülünü Android SDK’da kurarak sorunu çözdüğünü gördüm ama kesin bir yöntem mi bilmiyorum.

  188. bekirozan dedi ki:

    Yaptığım oyunda her level arasında admob reklamı çıksın diyorum. Kod çalışıyor fakat şayet telefon internete kapalı ise devamlı reklam isteği yaptığından dolayı oyun 3-4. levellerden sonra iyice donmaya başlıyor. Oynanmamaya başlıyor donduğu için. Bu sorunu hangi c# kodu ile aşabilirim. Kodu yazabilirmisiniz. Şimdiden yardımınız için teşekkürler.

    • yasirkula dedi ki:

      İnternette şöyle birşey buldum ancak denemedim:

      void Start()
      {
      	if( !CheckForInternetConnection() )
      	{
      		Destroy(this);
      	}
      }
      
      private bool CheckForInternetConnection()
      {
      	System.Net.WebClient client;
      	System.IO.Stream stream;
      	
      	try
      	{
      		client = new System.Net.WebClient();
      		stream = client.OpenRead("http://www.google.com");
      		return true;
      	}
      	catch (ex)
      	{
      		return false;
      	}
      	finally
      	{
      		if(client) { client.Dispose(); }
      		if(stream) { stream.Dispose(); }
      	}
      }
      

      Scripti Admob scripti ile aynı objeye verin.

  189. onur dedi ki:

    hocam ben Uİ button kulanıyorum buttonuma tıklanınca reklam cıkmasını istiyorum nasıl yapabilirim

  190. Barış dedi ki:

    Ben böyle bir asset buldum https://www.assetstore.unity3d.com/en/#!/content/14835
    bu plugin de Windows phone 8 desteği var görünüyor. Bu plugin ile sizin reklam scriptinizi kullansam sizce sorun çıkar mı?(WP için)

  191. ahmet dedi ki:

    hocam merhablar kusura bakmayın rahatsız ediyorumda bir sorum olacaktı.Hocam şimdi unity asset store dan alınan herhangi bir model için lisanslarına nasıl ulaşabilirm.Ücretsiz olanlar için değil ücretli modeller için soruyorum.Birde bu ücretli olan modelleri satın aldığımda ne kadar kullanma hakkım var.Üzerinden para kazanacağım uygulamalar içinde kullanma izni varmı.Hocam şimdiden teşekürler.

  192. bahadır dedi ki:

    Hocam projeyi build etmeye çalışırken konsolda şöyle bir hata alıyorum çözümünü bilen varmı acaba.

    UnityException: Build failure
    Failed to re-package resources. See the Console for details.
    UnityEditor.Android.PostProcessor.CancelPostProcess.AbortBuild (System.String title, System.String message)
    UnityEditor.Android.PostProcessor.CancelPostProcess.AbortBuildPointToConsole (System.String title, System.String message)
    UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
    UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)
    UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args)
    UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:176)
    UnityEditor.HostView:OnGUI()

  193. bce dedi ki:

    hocam oyunun başında internet erişimi olup olmadığını kontrol eden yoksa bir mesaj yazdırıp oyundan atan bir scripti nasıl yazarım?

  194. Burak dedi ki:

    Test device olarak eklediğimizde yayınlarken bu kodları normale mi çevireceğiz yoksa
    AdRequest reklamiAl = new AdRequest.Builder()
    .AddTestDevice(AdRequest.TestDeviceSimulator)
    .AddTestDevice(“Device ID’niz”)
    .Build();
    bu şekilde mi kalması lazım.Yani google playe bu şekilde koyarsak kazanç
    elde etmemizi engeller mi?

    • yasirkula dedi ki:

      Oyunu sizin telefondan açınca test reklamı çıkmaya devam eder ama diğer cihazlarda normal reklamlar çıkacağı için kazancınızı engellememesi lazım. Bence yine de silin test reklamı şeysini.

  195. cenker07 dedi ki:

    unity3d ads’ta var ama , video ile para vericem kullanılara rewarded video sistemi var mı admob’ta,

      • Cenker dedi ki:

        Alakasiz ama baska birsey daha sormak istiyorum cok buyuk bir harita yapicaz mesela onlinede olabilir gridlerden olusucak cs2d oyununa bakarsaniz anlarsiniz her gridi gameobject yapmak draw alli artiriyor nasil boyle bir sistem yapilabilir mesela 1000×1000 32pixelli harita ama tamami degil birazi gozukuyo sebilginin terrain serisindr haritayi parcalara bolmus oyle doluyo bujun aynisini 2d olarak yapabilir miyiz .biraz arastirdiktan sonra nette minecraftin sistemiji gordum chunk dedikleri olayi yapiyolar x y ve z boyutlarinda 256x256x256 bir alani hafizaya koyuyor karakter ne tarafa gidiyorsa sadece koca haritadan sadece 1 chunklik yer dolduruyo)ama gameobjecy kullanmalimiyim kod ile mesh olusturmayi bilmiyorum onu mu ogreniyim ne onerirsin

      • yasirkula dedi ki:

        Minecraft’taki sistem için kod ile procedural mesh oluşturmanız gerekebilir, evet.

        2D oyunda draw call’u azaltmak için benim bildiğim yol, sprite’ların Import Settings’inde “Packing Tag”lerini aynı vererek bu sprite’ların batch’lenmesini sağlamak. Bir de shader da çok önemli olabilir. Örneğin Unity’nin UI sisteminde çok fazla sprite kullansanız bile draw call sayısı gerçekten çok az olabiliyor çünkü sprite’ların hangi sırayla çizileceğini orada elle belirliyorsunuz (Hierarchy’de yukarıdan aşağıya doğru). O tarz bir shader da kullanmak isteyebilirsiniz.

  196. serhan dedi ki:

    Yasir Kula

    Admob Firebas İle İlgili Bilgi Verebilirmisin , Admoba Firebas Geldi Nedir Tam Olarak

  197. Hüseyin dedi ki:

    Merhaba , verdiğiniz script ve adımları takip ettiğimde reklamları ekranda göremiyorum ?
    Script güncel mi ?

    • yasirkula dedi ki:

      İlk bakışta koddaki problemi göremedim. Haftaya daha detaylı bir şekilde bakacağım.

      • Hüseyin dedi ki:

        Teşekkürler, Bu arada oyunlarda reklam gösteriminde nelere dikkat etmeliyiz ?
        Mesela bir banner oyunu etkilemeyecek bir yerde her 10 snde bir değişse destroy edilip tekrar yeni bir reklam çağrılıp baner da gösterilse faydalı mıdır ? Reklam çok gösterildi ama hiç tıklanmadı gibi bir durum oluyor mu merak ettim.

      • yasirkula dedi ki:

        Banner otomatik yenileniyor gibi gözlemledim şimdiye kadar; o yüzden belli aralıklarla Destroy edip tekrar oluşturmadım hiç. Reklam gösterirken en çok dikkat etmeniz gereken şey butonların üzerini örtmemek. Eğer butonlar tepedeyse banner’ı aşağıya, yoksa yukarıya koyun. Her yerde buton varsa banner koymayın. Zaten daha çok interstitial reklama odaklanın, onlar tam ekran olduğu için daha ilgi çekici olabiliyorlar.

        Reklamların tıklanma oranı ise normal şartlarda çok çok az olur, eğer yüksek bir tıklanma yüzdesine sahip olursanız büyük olasılıkla sahtekarlık şüphesiyle hesabınız uyarı alır veya direkt kapatılır.

    • yasirkula dedi ki:

      Bugün en son sürüm ile deneme yaptım ve bende bir sorun çıkmadı. Eğer reklam yerine sadece siyah bir ekran geliyorsa bu bazen bende de oluyor(du), herhalde bulunulan bölgede gösterilecek reklam bulamayınca böyle birşey oluyordur. Ama sonradan düzeliyor sanki çünkü bir süre sonra bana olmamaya başladı.

  198. Furkan dedi ki:

    sdk managerden Google Play Services indirdim ancakgoogle-play-services-lib adlı bir dosya yok o yüzden hata alıyorum

    • yasirkula dedi ki:

      Evet bende de kaybolmuş. Onu kopyalamadan devam ederseniz ne oluyor peki?

    • assassinfurkan dedi ki:

      Yarin deniycem artik eger duzelirse bildiririm birde bir oneri almak istiyorun android icin oyun yapmak istiyorum ancak bilgim yeterli degil bana acaba onerdigim bir pdf filan var biraz deneyimim varda yetmiyor

      • yasirkula dedi ki:

        PDF’den ziyada Unity’nin kendi video derslerini öneririm. Ayrıca Unity forumlarındaki Teaching kısmına da bakabilirsiniz, orada da güzel kaynaklar olabiliyor.

      • assassinfurkan dedi ki:

        Malesef işe yaramıyor

  199. assassinfurkan dedi ki:

    Error Building Player hatası veriyor yorumlarda okudum o dosyayı atınca düzeliyormuş

    • yasirkula dedi ki:

      Şurada yazdığına göre: https://groups.google.com/forum/#!topic/google-admob-ads-sdk/djySAXCZ7HE

      1- Build Settings’ten platform olarak Android’i seçin
      2- Project panelinden PlayServicesResolver klasörüne sağ tıklayıp “Google Play Services-Resolve Client Jars” yolunu izleyin
      3- Bu aşamadan sonra Assets-Plugins-Android klasöründeki firebase-common-9.0.0.aar dosyasını seçin ve Inspector’dan “Platform for Plugins” altındaki “Android”in başındaki işareti kaldırın

      Bu yolu ben denemedim ama siz denedikten sonra olumlu sonuç alıp almadığınızı paylaşırsanız çok güzel olur.

      • furkan dedi ki:

        Oyun build edildi ancak yüklerken internet izni filan istemediği için reklam gözükmedi

      • yasirkula dedi ki:

        Bugün test etme imkanım oldu. İki farklı metod denedim: birinde 3. maddeyi uygulamadım, öbüründe uyguladım. Her iki durumda da reklamlar düzgün gözüktü. Assets/Plugins/Android/GoogleMobileAdsPlugin/AndroidManifest.xml dosyasının içinde şu iki satır zaten olduğu için de internet erişimi konusunda bir sıkıntım olmadı:

        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        

        EDIT: Yalnız şöyle de birşey var ki “Resolve Client Jars” dedikten sonra bende “firebase-common-9.0.0.aar” adında bir dosya oluşmadı, onun yerine “firebase-common-9.0.2” adında bir klasör belirdi (daha önce orada var mıydı onu bilmiyorum). Üçüncü aşamayı bu klasör üzerinden yaptım ben.

      • assassinfurkan dedi ki:

        Failed to re-package resources. See the Console for details.

        CommandInvokationFailure: Failed to re-package resources. See the Console for details.

        Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details.

        Google.JarResolver.ResolutionException: Cannot find candidate artifact for com.google.android.gms:play-services-ads:LATEST

        Android deki tiki kaldırmazsam böyle hata veriyor kaldırınca vermiyor işte ama izin filan istemiyor AndroidManifest.xml dosyasıda doğru düzgün açılmıyor bu yüzdne içine bakamıyorum

      • yasirkula dedi ki:

        AndroidManifest’in açılamaması garip geldi. Plugini herşeyiyle silip yeniden indirip ardından yeniden import etmeyi deneyebilirsiniz. Bende böyle bir sıkıntı çıkmadığından aklıma birşey de gelmiyor açıkçası. Çözerseniz buradan da paylaşırsanız çok güzel olur.

  200. serhan dedi ki:

    Yasir Dediklerini Yaptım Bende Reklam Çıkmıyor. Uygulamayı Yüklerken Reklam İznide İstemiyor Ayrıca

  201. cenker07 dedi ki:

    delegate ve event olayını biliyorum delegate trigger edildiğinde eklenen eventler çalışıyor. sormak istediğim bazen delegate’e sender ve eventargs ekleniyor .bunları işlevini button vs anlatmış nettede bunu unity3d ne olarak kullanılıyor anlamadım ayrıca iki türlü mü eventi ekleme olayı var
    public event ChangedEventHandler Changed; ve delegate += event ayrıca eventargs yerine istediğimiz bişey nasıl koyarız ve niye koyarız mesela

    • yasirkula dedi ki:

      Bu konuda benim de bilgim kısıtlı ancak bildiklerim doğrultusunda konuşacak olursam:

      – bahsettiğiniz sender ve eventargs argümanlarını Admob’da ben de kullanmadım, onları ben de bilmiyorum
      – benim event’e yeni bir fonksiyon eklemek için bildiğim tek yöntem += kullanmak
      – kendi event’inizi tanımlamadığınız sürece eventargs’ı değiştiremezsiniz. Bu event’ler Admob’un kendisinden tanımlı olduğu için de kaynak kodu düzenlemeniz gerekir ki ben hiç bulaşmanızı tavsiye etmem. Kendi event’lerinizde event’e kaydolan fonksiyonların alacakları parametreleri ise delegate’te belirtiyorsunuz

      • cenker07 dedi ki:

        eklenen eventler sırayla mı oluyor https://firebase.google.com/docs/admob/android/games#rewarded_video_mediation
        burda eventleri eklemiş sırayla mı kontrol ediyor

      • yasirkula dedi ki:

        Event’ler sırayla çağrılmıyor. Onun yerine özel bir “eylem” gerçekleştiğinde çağrılıyor. Örneğin OnAdLoaded event’i, reklamın sunucu tarafından indirilmesi başarılı bir şekilde tamamlandığı vakit çalıştırılıyor. OnAdClosed ise reklam gözüktükten sonra kullanıcı çarpıya basarak reklamı kapatınca çağrılıyor (reklam kendi kendine kapanınca da çağrılıyordur herhalde). Yani her reklam event’i çağrılmıyor. Çağrılan event’lerin çağrılma sırası ise büyük olasılıkla verdiğiniz linkte sıralandığı gibidir çünkü mantıken doğru duruyor öyle bir sıralama.

  202. cenker07 dedi ki:

    bu arada o admodtaki event ve delegate olayın amacı özel delegateler varmış onadclosed onadrewarded gibi . ödüllendirdikten sonra şu kadar para kazandınız gibi bir gui çıkartabiliriz eklenen eventte. kodlaki onadclosed’ta eski reklamı silip yeni reklam dolduruyoruz . gerçi bunu biliyosunuzdur 😀

    • cenker07 dedi ki:

      yanlız tek sorun rewarded videoları destroy edemiyoruz

    • yasirkula dedi ki:

      Reklam kapanınca OnAdClosed çağrıldığı için ben kolaylık açısından tam o vakit yeni reklamı sunucudan indirmeyi uygun gördüm. Bu şekilde, yeni bir interstitial reklam gösterme isteği geldiğinde reklam objesi büyük olasılıkla çoktan sunucudan indirilmiş olacak.

  203. Barış dedi ki:

    Bana bir mail geldi AdMob’dan, ingilizcem iyi olmadığı için tam anlamadım.Ben sizin verdiğiniz linkteki plugini 1 sene önce indirmiştim halada oyunlarımda onu kullanıyorum.pluginin en son versiyonunu güncellememi mi istiyor benden 1 sene önceki plugin sorun mu çıkarır? bana niye böyle bir mail geldi acaba bu mailden size de geldi mi?

    Upgrade your Android Google Mobile Ads SDK to ensure ads keep serving
    Upgrade to Google Mobile Ads SDK, 7.0.0 or higher

    Hi,
    AdMob is committed to providing you the most effective monetization solutions. As we innovate, it’s important that we leverage the latest technologies to bolster our platform. As part of this movement, we are deprecating versions 6.4.1 and lower of the Android Google Mobile Ads SDK on September 15th, 2016.
    In order to ensure that your ads continue to serve after September 15th, 2016, please upgrade to Google Mobile Ads SDK 7.0.0 or higher.
    The newer Google Mobile Ads SDKs have many more benefits for you:
    Seamless auto-updates. Changes to the Google Mobile Ads SDK for Android get pushed seamlessly to users through Google Play services, so you can focus your time where it matters
    You won’t need to spend time updating your apps with the latest versions of the ads SDK each time it changes
    New features and bug fixes will also reach users through auto-updates
    Better user experiences. Users will find it easier to manage updating their apps as some improvements will automatically be received in the background.
    To upgrade your SDK, add the latest version of play-services (listed under dependencies) in your Gradle Build configuration file. For example, the following added v9.0:
    apply plugin: ‘com.android.application’

    dependencies {
    compile ‘com.google.android.gms:play-services:9.0.2’
    }
    Stay tuned for more updates and tips.
    Cheers,
    The AdMob Team

    • yasirkula dedi ki:

      Admob 7.0.0 öncesini kullanan oyunlarda reklamların 15 Eylül itibari ile verilemeyeceği yazıyor. Bu durum Unity plugini için de geçerli mi orası muamma.

  204. Barış dedi ki:

    Xcode üzerinden hata alıyorum http://i.hizliresim.com/DJ12g1.png
    en üstteki 2 hatayı çözemedim. O 2 hatanın altındakileri üstüne tıklayıp fix-it yaptım
    Use of ‘@import’ when modules are disabled

  205. Yunus dedi ki:

    Bende de lib klasörü yok.Dediklerini yaptım ama Not 2 deki “firebase-common-9.0.2” bunu bulamadım Asset>Plugins>Android burada yok.Ne yapabilirim.Oyun telefonda açılmıyor..

    • yasirkula dedi ki:

      Plugin son sürüm olduğu sürece dediğiniz klasörün plugin ile gelmesi gerek aslında. “firebase” adını taşıyan başka bir klasör varsa onun üzerinde deneme yapın, yoksa çözümü ben de bilmiyorum.

      • Yunus dedi ki:

        Bende bulamadım ya.Pketi bir daha indirdim ama olmadı.Biraz daha araştırmam gerek.

      • Yunus dedi ki:

        Bi şekilde yaptım.Reklamlarda gözüküyor.Yeni yazılar bekliyoruz… 🙂

    • metehan dedi ki:

      Dostum bi şekilde hallettim demişsin sorunu, nasıl hallettin acaba?

  206. Halil dedi ki:

    Belirli bir alana objeyi sürükleyip bırakmak istiyorum,o alana gelince obje o alana oturmasını istiyorum nasıl yapabilirim..

  207. İbrahim dedi ki:

    Yasir bey admob reklemının hazır olduğunu anlayabileceğim bir kod varmı tapjoyda reklam hazırsa butonu aktif ediyordum admobdada bunu yapmam mümkünmü.

  208. osman dedi ki:

    yasir bey sizi çok önceden beri takip ediyorum.çok iyi paylaşımlarınız var.
    bunu geçen sene uygulamıştım hiç sorunsuz halletmiştim.hatta şuan play storda hala aynı kodları kullanıyorum yalnız şimdi unıty 5,3,5 i kullanıyorum yalnız Bende de lib klasörü yok.Dediklerini yaptım ama Not 2 deki “firebase-common-9.0.2” bunu bulamadım Asset>Plugins>Android burada yok.Ne yapabilirim.oyunu çok rahat buıld edebiliyorum sorunsuz,hatta unıty de reklamlara tıklayabiliyorum bile yani “Dummy LoadAd
    UnityEngine.Debug:Log(Object)” bu uyarıyı veriyor ama build ettikten sonra telefonda reklamlar çıkmıyor…lütfen yardım edebilirmisiniz.

    • yasirkula dedi ki:

      Yakın zamanda kendim deneyip dönüş yapmaya çalışacağım.

    • yasirkula dedi ki:

      PlayServicesResolver klasörüne sağ tıklayıp “Google Play Services-Resolve Client Jars” yolunu izledikten sonra reklamlar bende gözüktü (Build Settings’te Android seçili olmalı). Ancak nedense reklamların gözükmesi yaklaşık 10 saniye kadar sürdü.

  209. ahmet dedi ki:

    Hocam merhabalar.Bir sorum olacaktı.Unity içine attığım bir objeyi telefonda çalıştırırken ekranda joystick yada butonla değilde elle sağa sola ekranın dışına çıkmayacak şekilde nasıl hareket ettirebilirim.Baktığım kadarıyla swipe diye geçiyor ama nasıl çalışacağını çözemedim.Yardımcı olma imkanınız varmı teşekürler.

    • yasirkula dedi ki:

      Bence en kolay yolu sahnede görünmez bir UI-Image oluşturmak, bu UI’ın tüm ekranı kaplamasını sağlamak (anchor min = (0,0), anchor max = (1,1), üstteki değerlerin hepsi 0), bu Image’a bir Event Trigger verip içine Drag event’i eklemek ve bu event’te kendi yazdığınız bir scriptin şuna benzer bir fonksiyonunu çağırmak:

      public void ParmakSuruklendi( UnityEngine.UI.BaseEventData data )
      {
      Vector2 parmakDelta = ((PointerEventData) data).delta;
      // parmakDelta.x = parmağın yatay eksenindeki delta pozisyonu
      // parmakDelta.y = parmağın dikey eksendeki delta pozisyonu
      }

      Alternatif olarak, şu dersten faydalanarak kendi kodunuzu da yazmaya çalışabilirsiniz: https://yasirkula.com/2013/07/17/unity-ile-androide-uygulama-gelistirmek-1-dokunmatik-ekran-entegrasyonu/

  210. İbrahim dedi ki:

    Yasir bey burada YeniReklamAl fonksiyonu bir tek Startta çağırmışsınız.Bu komutun çalışma mantığı nasıl.Koda baktığımda bitek startla çağırılıyor (object sender, EventArgs args)
    gibi şeylerde yazıyor start fonksiyonundan hariç başka nasıl aktif oluyor YeniReklamAl fonksiyonu.

    void Start()
    {
    YeniReklamAl(null, null);
    }
    .
    .
    .
    .
    public void YeniReklamAl(object sender, EventArgs args)
    {
    if (reklamObjesi != null)
    reklamObjesi.Destroy();

    reklamObjesi = new InterstitialAd(“AD unit ID’niz”);
    reklamObjesi.OnAdClosed += YeniReklamAl;

    AdRequest reklamiAl = new AdRequest.Builder().Build();
    reklamObjesi.LoadAd(reklamiAl);
    }

    • yasirkula dedi ki:

      Kullanımı kolay olsun diye o fonksiyonu manual olarak sadece en başta çağırıyorum. Interstitial reklam kullanıcı tarafından kapatıldığında ise otomatik olarak tekrar çağırıyorum (OnAdClosed += YeniReklamAl).

  211. ahmet dedi ki:

    Hocam swipe olayını tam anlamadım.Sensör ile sadece belli iki aralı arasında hareketi sınırlamayı nasıl yapabiliriz. transform.Translate (Input.acceleration.x*Time.deltaTime*10,0,0); sensör le sadece bir eksende hareket ettiriyorum.Bunun sadece +2 VE -2 arasında çalışmasını nasıl yapabilirz.Şimdiden Teşekürler.

  212. bayram dedi ki:

    Assets/ReklamInterstitial.cs(40,30): error CS1061: Type `GoogleMobileAds.Api.InterstitialAd’ does not contain a definition for `AdClosed’ and no extension method `AdClosed’ of type `GoogleMobileAds.Api.InterstitialAd’ could be found (are you missing a using directive or an assembly reference?)
    unity 5.0 da
    bu hatayı alıyorum
    yardım edebilirmisiniz?

  213. bayram dedi ki:

    Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details.
    C:\Users\bayram\AppData\Local\Android\android-sdk\build-tools\22.0.1\aapt.exe package –auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S “res” -I “C:/Users/bayram/AppData/Local/Android/android-sdk\platforms\android-22\android.jar” -F bin/resources.ap_ –extra-packages com.google.unity

    stderr[
    AndroidManifest.xml:16: error: Error: No resource found that matches the given name (at ‘theme’ with value ‘@style/Theme.IAPTheme’).

    AndroidManifest.xml:18: error: Error: No resource found that matches the given name (at ‘value’ with value ‘@integer/google_play_services_version’).

    ]
    stdout[
    Configurations:
    (default)
    ldpi-v4
    hdpi-v4
    xhdpi-v4
    xxhdpi-v4
    xxxhdpi-v4

    Files:
    drawable\app_banner.png
    Src: (xhdpi-v4) res\drawable-xhdpi\app_banner.png
    drawable\app_icon.png
    Src: () res\drawable\app_icon.png
    Src: (ldpi-v4) res\drawable-ldpi\app_icon.png
    Src: (hdpi-v4) res\drawable-hdpi\app_icon.png
    Src: (xhdpi-v4) res\drawable-xhdpi\app_icon.png
    Src: (xxhdpi-v4) res\drawable-xxhdpi\app_icon.png
    Src: (xxxhdpi-v4) res\drawable-xxxhdpi\app_icon.png
    values\strings.xml
    Src: () res\values\strings.xml
    AndroidManifest.xml
    Src: () AndroidManifest.xml

    Resource Dirs:
    Type drawable
    drawable\app_banner.png
    Src: (xhdpi-v4) res\drawable-xhdpi\app_banner.png
    drawable\app_icon.png
    Src: () res\drawable\app_icon.png
    Src: (ldpi-v4) res\drawable-ldpi\app_icon.png
    Src: (hdpi-v4) res\drawable-hdpi\app_icon.png
    Src: (xhdpi-v4) res\drawable-xhdpi\app_icon.png
    Src: (xxhdpi-v4) res\drawable-xxhdpi\app_icon.png
    Src: (xxxhdpi-v4) res\drawable-xxxhdpi\app_icon.png
    Type values
    values\strings.xml
    Src: () res\values\strings.xml
    Including resources from package: C:\Users\bayram\AppData\Local\Android\android-sdk\platforms\android-22\android.jar
    applyFileOverlay for drawable
    applyFileOverlay for layout
    applyFileOverlay for anim
    applyFileOverlay for animator
    applyFileOverlay for interpolator
    applyFileOverlay for transition
    applyFileOverlay for xml
    applyFileOverlay for raw
    applyFileOverlay for color
    applyFileOverlay for menu
    applyFileOverlay for mipmap
    Processing image: res\drawable-xhdpi\app_banner.png
    Processing image: res\drawable\app_icon.png
    Processing image: res\drawable-ldpi\app_icon.png
    Processing image: res\drawable-hdpi\app_icon.png
    (processed image res\drawable-ldpi\app_icon.png: 98% size of source)
    Processing image: res\drawable-xhdpi\app_icon.png
    (processed image res\drawable\app_icon.png: 98% size of source)
    Processing image: res\drawable-xxhdpi\app_icon.png
    (processed image res\drawable-hdpi\app_icon.png: 99% size of source)
    Processing image: res\drawable-xxxhdpi\app_icon.png
    (processed image res\drawable-xhdpi\app_icon.png: 98% size of source)
    (processed image res\drawable-xhdpi\app_banner.png: 93% size of source)
    (processed image res\drawable-xxhdpi\app_icon.png: 98% size of source)
    (processed image res\drawable-xxxhdpi\app_icon.png: 97% size of source)
    (new resource id app_banner from xhdpi-v4\drawable\app_banner.png #generated)
    (new resource id app_icon from drawable\app_icon.png #generated)
    (new resource id app_icon from ldpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from hdpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from xhdpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from xxhdpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from xxxhdpi-v4\drawable\app_icon.png #generated)
    ]

    önceki sorunumu hallettim teşekkürler ama budefa da built ederken bu sorunla karşılaşıyorum ne yaptıysam çözemedim önceki yorumlara baktım ama bişe yapamadım yardımcı olursanız sevinirim

    • yasirkula dedi ki:

      Derste verdiğim çözüm yolları dışında bir çözüm yolu bilmiyorum. Bu hatanın ilk birkaç kelimesini aratıp başka çözüm yolları bulmanız lazım.

      • bayram dedi ki:

        plugini silip tekrar import ettim yeni güncellemede olmaya google play services lib dosyasını da eski projelerimden bulup android plugins e atınca sorunum düzeldi reklamlar da sorunsuz çalışıyor teşekkürler

  214. Mehmet Eray dedi ki:

    Merhabalar,
    Öncelikle bu değerli site ve bilgiler için sonsuz teşekkürler. Bir sorum olacak. Google developers hesabı alırken ödeyecegimiz 25doların döviz hesabından mı ödenmesi gerekiyor yoksa tl hesabı da oluyor mu?

  215. ibrahim dedi ki:

    IEnumerator ReklamiGoster()
    {
    while( !reklamObjesi.IsLoaded() )
    yield return null;

    reklamObjesi.Show();
    }
    }
    IEnumerator yrine public void kullanılsa ne farkeder sorun olurmu niye IEnumerator kullanılıyor.

    • yasirkula dedi ki:

      yield kullanılan fonksiyon bir coroutine oluyor ve Unity C#’ta coroutine’lerin return type’ı IEnumerator olmak zorunda. Sistem onun üzerine kurulmuş ama tam detaylarını ben de bilmiyorum.

      • Barış dedi ki:

        Amazon app store da oyunumu yayınlamak istiyorum fakat reklam konusu aklıma takıldı. Admob un amazon app store seçeneği yok ben google play seçeneğinden reklam kodumu eklesem hesabım banlanırmı acaba. Veya hiç reklam eklemeden oyunu göndereceğim.

      • yasirkula dedi ki:

        Kimileri Admob’un Amazon üzerinde de çalıştığını söylüyor ama isterseniz Chartboost’a bir şans verebilirsiniz (ben Heyzap mediation ile Chartboost kullanıyorum). Ban yeyip yememe konusunda kesin bilgim yok.

  216. Ekrem May dedi ki:

    yasir abi bu ilki olmadı bende not2 yi okuyun demissin onu yapmayı denedim ama anlamadım onu not2 nasıl olacak

    • yasirkula dedi ki:

      Build Settings’te Android platformu seçili olmalı. Eğer reklamlar çıkmıyorsa (gerçek bir cihaz üzerinde test edin, Unity editöründe reklamlar asla gözükmez) Resolve Client Jars’lı kısmı yapıp tekrar build alın. Bende böyle yapınca reklamlar gözükmeye başladı.

  217. Yunus dedi ki:

    Yasir Bey Ben de de bu hata var ” Failed to re-package resources. See the Console for details ”

    Hatanın çözümü için google-play-services_lib’i Plugins/Android e atın diyor fakat bende google-play-services_lib yok
    . siz eğer google-play-services_lib yoksa not 2 ye bakın demişsiniz fakat not 2 yi ben yapamadım.

    ” Assets/PlayServicesResolver klasörüne sağ tıklayıp “Google Play Services-Resolve Client Jars” yolunu izleyin”. Buraya kadar yaptım fakat
    “Assets-Plugins-Android yolunu izleyin ve oradaki “firebase-common-9.0.0.aar” dosyasını seçin (bu dosya yoksa “firebase-common-9.0.2” klasörünü seçin) ve Inspector’dan Android’in başındaki işareti kaldırın. ” Bu kısmı yapamadım Assets de Plugins diye bi seçenek yok Project de var Fakat orda da “firebase-common-9.0.0.aar” diye bi şey yok

    Yardımcı olabilirseniz sevinirim

    • Yunus dedi ki:

      Project-Plugins-Android-GoogleMobileAdsPlugin deki İnspectordan Platform olarak androidi kaldırdığımda sorun çözüldü ama reklam görünmüyor neden olabilir

      • Yunus dedi ki:

        Yok çözememişim galiba 😀 Androidd seçeneğini kaldırınca reklam görünmüyor seçince de build olmuyor Yardım edin lütfen hala aynı hata

    • Yunus dedi ki:

      Benim android klosörün içinde firebase diye bi şey yok ne yapabilirim

      • yasirkula dedi ki:

        Pluginin son sürümünü indirdiğinizden emin olup tekrar import edin ve de Build Settings’te Android’in seçili olduğundan emin olun.

    • yasirkula dedi ki:

      Evet artık öyle bir dosya görmüyorum ben de. Ben şu kaynakta yazanı oraya iliştirdim sadece, yoksa bende sadece Resolve Client Jars demek reklamlar için yeterli oluyor: https://groups.google.com/forum/#!topic/google-admob-ads-sdk/djySAXCZ7HE

      Ama nedense ilk reklamlar bende bayağı yavaş gelmişti, beklemiştim bir süre.

      • Yunus dedi ki:

        Dediklerinizi yaptım fakat hala aynı hatayı veriyor sizce android sdk nın önceki versiyonunu yüklesem ve google-play-services_lib dosyası da gelse sorun çözülür mü ve android sdk nın eski versiyonunu yükleyebilir miyim

      • yasirkula dedi ki:

        Konsoldaki hatanın birkaç kelimesini Google’da aratmaktan başka yol düşünemiyorum; kendi bildiğim tüm çözüm yollarını derste listeledim. Belki internette başka bir çözüm yolu vardır.

  218. Mehmet Eray dedi ki:

    Hocam merhabalar, reklama tıklandığında bikaç işlem yaptırmak istiyorum. Reklama tıklandığında çalışan bi fonksiyon veya kod satırı var mı acaba?

    • yasirkula dedi ki:

      İnternette biraz bakındım ama açıkçası reklama tıklanınca çalışan bir event bulamadım. Reklam açılınca (OnAdOpened) ve kapanınca (OnAdClosed) çalışan event’ler var ama tıklanınca yok gibi.

      • Mehmet Eray dedi ki:

        Reklama tıklandığında can doldurmak istemiştim ama benzer bir örnek bulamadım malesef. Teşekkür ederim ilgilendiğiniz için.

  219. cenker07 dedi ki:

    Ses compress load ve rate kalitesini neye göre seçiyoruz halen anlamış değilim https://docs.unity3d.com/Manual/class-AudioClip.html burda çok açık şekilde anlatmış fakat ben yinede emin olamadım 1.5 dk uzunluğundaki müziklerime ve 1 -2 saniyelik ses effektlerine neyi seçmem gerek yardımcı olur musun

    • yasirkula dedi ki:

      Anladığım kadarıyla şöyle:

      Kısa ses efektleri: Decompress On Load – PCM
      Müzikler: Compressed In Memory – Vorbis/MP3

      Diğer ayarları bilmiyorum.

  220. Burak dedi ki:

    Maalesef, ……@gmail.com hesabı şu anda AdMob’a kaydolamaz.
    AdMob için, geçerli birer AdSense ve AdWords hesabı gereklidir. Ancak, hesaplarınızdan en az biriyle ilgili bir sorun var.

    AdSense hesabı da oluşturdum ama sorun çözülmedi, ne yapmam gerek?

    • xboxlive99 dedi ki:

      Adwords hesabıda mı oluşturmam gerekli? Oluştururken belli bir bütçe vs. istiyor ama ben reklam vermek istemiyorum, kayıt olduktan sonra reklam vermek zorunda mıyım?

    • yasirkula dedi ki:

      Açıkçası ben böyle bir sıkıntı yaşamadım. Daha önce bir hesabınız Google tarafından uyarı/ban aldıysa belki ondandır, aklıma başka bir şey gelmiyor.

      Bu arada, Admob kullanmak için reklam vermek zorunda değilsiniz. Kayıt sürecini hatırlamıyorum o yüzden bütçe vb. yerleri ne yaptım ya da öyle bir kısım ile hiç karşılaştım mı emin değilim.

  221. xboxlive99 dedi ki:

    Ben unitypackage’i import ettikten sonra bir hata almaya başladım. Console ekranında değil de direkt bir pencere çıkararak söylüyor. “Unable to find jar in the system path. This tool is required to process Play Services dependencies. Either set JAVA_HOME or add jar to the PATH variable to resolve this error.” Asset’ten google play services – resolve client jar yapınca da bu pencere çıkıyor

  222. xboxlive99 dedi ki:

    Tekrar merhaba abi :), bu tam ekran reklamları izleyince mi ücret veriyor yoksa tıklayınca mı? (Yani kullanıcı 5 saniye bekleyip reklamı kapattığı zaman bize ücret veriyorlar mı?

  223. xboxlive99 dedi ki:

    Selamun Aleyküm. Yine ben abi, kusura bakma çok rahatsız ediyorum seni. Admob hesabında biriken parayı kredi kartına nasıl aktarabiliriz? (Kayıt sözleşmesinde 100 doların üzerinde ise ücret hesabınıza aktarılır yazıyor) 100 doların üzerinde ise bu parayı bir yere aktarmak için ne yapmamız gerek? Kredi kartını nerden giricez yani?

    • yasirkula dedi ki:

      Detayları hatırlamıyorum ama bende önce adres bilgilerimi teyit ettirmem gerekti (web sitesi üzerinde bir uyarı olarak gözüküyordu yanlışım yoksa). Ardından IBAN numaramı girince reklam geliri banka kartıma aktarılmaya başladı.

  224. Muhammet dedi ki:

    şöyle bi hata alıyorum nasıl çözebilirim anlatabilirmisiniz

    Google.JarResolver.ResolutionException: Cannot resolve com.android.support:appcompat-v7:23.1.0+()
    at Google.JarResolver.PlayServicesSupport.ResolveDependencies (Boolean useLatest) [0x00000] in :0
    at GooglePlayServices.ResolverVer1_1.DoResolutionNoAndroidPackageChecks (Google.JarResolver.PlayServicesSupport svcSupport, System.String destinationDirectory, Google.JarResolver.OverwriteConfirmation handleOverwriteConfirmation) [0x00000] in C:\Users\w-8\Desktop\New Unity Project 4\Assets\PlayServicesResolver\Editor\ResolverVer1_1.cs:551
    UnityEngine.Debug:LogError(Object)
    GooglePlayServices.ResolverVer1_1:DoResolutionNoAndroidPackageChecks(PlayServicesSupport, String, OverwriteConfirmation) (at Assets/PlayServicesResolver/Editor/ResolverVer1_1.cs:561)
    GooglePlayServices.c__AnonStorey5:m__8() (at Assets/PlayServicesResolver/Editor/ResolverVer1_1.cs:328)
    GooglePlayServices.ResolverVer1_1:DoResolution(PlayServicesSupport, String, OverwriteConfirmation, Action) (at Assets/PlayServicesResolver/Editor/ResolverVer1_1.cs:377)
    GooglePlayServices.PlayServicesResolver:Resolve(Action) (at Assets/PlayServicesResolver/Editor/PlayServicesResolver.cs:221)
    GooglePlayServices.PlayServicesResolver:AutoResolve() (at Assets/PlayServicesResolver/Editor/PlayServicesResolver.cs:158)
    UnityEditor.EditorApplication:Internal_CallUpdateFunctions()

  225. Mehmet Eray dedi ki:

    Hocam Heyzap dersi yapmayı düşünüyor musun?

  226. Zekeriya dedi ki:

    birde Reklamscriptte olan OnAdClosed tanınmıyor. yerine ne konuluyor biliyor musunuz?

  227. Sukru dedi ki:

    AndroidManifest.xml:17: error: Error: No resource found that matches the given name (at ‘theme’ with value ‘@style/Theme.IAPTheme’).

    AndroidManifest.xml:19: error: Error: No resource found that matches the given name (at ‘value’ with value ‘@integer/google_play_services_version’).

    Böyle bir hata alıyorum hocam bilginiz varmı sadece admob kullanıyorum başka sdk yok

    • Zekeriya dedi ki:

      sil aga onları. bende fayda etmişti

      • Sukru dedi ki:

        hocam öyle bir dosya yokki android manifesttemi sileyim diyorsun

      • Sukru dedi ki:

        .defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:274)
        at SDKMain.main(SDKMain.java:128)

        Android manifestten sildim 2 tane kodu bu seferde böyle hata verdi

    • yasirkula dedi ki:

      Admob ile ilgili hatalara çok fazla şey sebep olabiliyor. Bana böyle bir hata geldiğinde bir kaç kelimesini google’da aratıp önerilen çözüm yollarını deniyorum, başka yolu yok.

  228. Yunus_Emre dedi ki:

    **Bende de alttaki hata var.Bütün yorumlara baktım 8 tanesi bunla ilgili ama hepsi google play lib klasörünü atmış bende bu dosya yok. -.- İnternettede araştırdım bulamadım çözebilen arkadaşlar nasıl çözdüğünü anlatırsa hem ben hemde benim gibi mağdur insanlar kurtulmuş olur..

    CommandInvokationFailure: Failed to re-package resources. See the Console for details.
    C:\Users\Winn8\AppData\Local\Android\sdk1\build-tools\25.0.0\aapt.exe package –auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S “res” -I “C:/Users/Winn8/AppData/Local/Android/sdk1\platforms\android-23\android.jar” -F bin/resources.ap_ –extra-packages com.google.unity

    stderr[
    AndroidManifest.xml:16: error: Error: No resource found that matches the given name (at ‘theme’ with value ‘@style/Theme.IAPTheme’).

    AndroidManifest.xml:18: error: Error: No resource found that matches the given name (at ‘value’ with value ‘@integer/google_play_services_version’).

    ]
    stdout[
    Configurations:
    (default)
    v14
    v21
    ldpi-v4
    hdpi-v4
    xhdpi-v4
    xxhdpi-v4
    xxxhdpi-v4

    Files:
    drawable\app_icon.png
    Src: () res\drawable\app_icon.png
    Src: (ldpi-v4) res\drawable-ldpi\app_icon.png
    Src: (hdpi-v4) res\drawable-hdpi\app_icon.png
    Src: (xhdpi-v4) res\drawable-xhdpi\app_icon.png
    Src: (xxhdpi-v4) res\drawable-xxhdpi\app_icon.png
    Src: (xxxhdpi-v4) res\drawable-xxxhdpi\app_icon.png
    values\strings.xml
    Src: () res\values\strings.xml
    values\styles.xml
    Src: () res\values\styles.xml
    Src: (v14) res\values-v14\styles.xml
    Src: (v21) res\values-v21\styles.xml
    AndroidManifest.xml
    Src: () AndroidManifest.xml

    Resource Dirs:
    Type drawable
    drawable\app_icon.png
    Src: () res\drawable\app_icon.png
    Src: (ldpi-v4) res\drawable-ldpi\app_icon.png
    Src: (hdpi-v4) res\drawable-hdpi\app_icon.png
    Src: (xhdpi-v4) res\drawable-xhdpi\app_icon.png
    Src: (xxhdpi-v4) res\drawable-xxhdpi\app_icon.png
    Src: (xxxhdpi-v4) res\drawable-xxxhdpi\app_icon.png
    Type values
    values\strings.xml
    Src: () res\values\strings.xml
    values\styles.xml
    Src: () res\values\styles.xml
    Src: (v14) res\values-v14\styles.xml
    Src: (v21) res\values-v21\styles.xml
    Including resources from package: C:\Users\Winn8\AppData\Local\Android\sdk1\platforms\android-23\android.jar
    applyFileOverlay for drawable
    applyFileOverlay for layout
    applyFileOverlay for anim
    applyFileOverlay for animator
    applyFileOverlay for interpolator
    applyFileOverlay for transition
    applyFileOverlay for xml
    applyFileOverlay for raw
    applyFileOverlay for color
    applyFileOverlay for menu
    applyFileOverlay for mipmap
    Processing image: res\drawable\app_icon.png
    Processing image: res\drawable-ldpi\app_icon.png
    Processing image: res\drawable-hdpi\app_icon.png
    (processed image res\drawable-ldpi\app_icon.png: 98% size of source)
    Processing image: res\drawable-xhdpi\app_icon.png
    (processed image res\drawable\app_icon.png: 98% size of source)
    Processing image: res\drawable-xxhdpi\app_icon.png
    (processed image res\drawable-hdpi\app_icon.png: 97% size of source)
    Processing image: res\drawable-xxxhdpi\app_icon.png
    (processed image res\drawable-xhdpi\app_icon.png: 97% size of source)
    (processed image res\drawable-xxhdpi\app_icon.png: 97% size of source)
    (processed image res\drawable-xxxhdpi\app_icon.png: 97% size of source)
    (new resource id app_icon from drawable\app_icon.png #generated)
    (new resource id app_icon from ldpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from hdpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from xhdpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from xxhdpi-v4\drawable\app_icon.png #generated)
    (new resource id app_icon from xxxhdpi-v4\drawable\app_icon.png #generated)
    ]
    UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
    UnityEditor.Android.PostProcessAndroidPlayer.Exec (System.String command, System.String args, System.String workingdir, System.String[] progress_strings, Single progress_value, System.String errorMsg)
    UnityEditor.Android.PostProcessAndroidPlayer.CompileResources (System.String stagingArea, System.String packageName, UnityEditor.Android.AndroidLibraries androidLibraries)
    UnityEditor.Android.PostProcessAndroidPlayer.PostProcessInternal (System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)
    UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)
    UnityEditor.HostView:OnGUI()

  229. Furkan dedi ki:

    tamam sorunu çözdüm benim hatammış 🙂 teşekkürler paylaşım için

  230. xboxlive99 dedi ki:

    Abi in app purchase hakkında da bir yazın olur mu? Türkçe kaynak yok iap ile ilgili. Eğer bilginiz varsa reklamları kaldırma ile ilgili bir buton eklemek istiyorum, bunu yapmam için ilk önce satıcı hesabı oluşturmam gerek ancak web sitesi istiyor, web sitesi açmak zorunlu mu?

  231. Hasan Taner dedi ki:

    İyi günler, unity admob sdk sını güncelleyip projeme import ettiğimde şu 2 hatayı aldım:

    Assets/PlayServicesResolver/Editor/IResolver.cs(74,27): error CS0433: The imported type `Google.JarResolver.PlayServicesSupport’ is defined multiple times

    Assets/PlayServicesResolver/Editor/PlayServicesResolver.cs(146,56): error CS0433: The imported type `Google.JarResolver.Dependency’ is defined multiple times

    • yasirkula dedi ki:

      PlayServicesResolver.cs diye 2 tane dosya varsa birini silin. Pluginin önceki sürümü duruyorduysa bence önce plugini komple silip öyle yeniden import edin.

      • Hasan TANER dedi ki:

        Plugin’i yeniden import ettim silip şimdide aşşağıdaki yorumda yazdığm hatayı alıyorum.

  232. Hasan TANER dedi ki:

    Merhaba, şu hatayı aldım araştırdım ama çözemedim yardımcı olurmusunuz ?

    • Hasan TANER dedi ki:

      Hata şu:

      WARNING: No compatible versions of com.android.support:support-v4 required by (com.android.support:appcompat-v7:23.1.0+, com.google.android.gms:play-services-basement:10.0.1), will try using the latest version 24.0.0
      UnityEngine.Debug:Log(Object)
      Google.JarResolver.PlayServicesSupport:Log(String, Boolean)
      Google.JarResolver.PlayServicesSupport:ResolveDependencies(Boolean)
      GooglePlayServices.ResolverVer1_1:DoResolutionNoAndroidPackageChecks(PlayServicesSupport, String, OverwriteConfirmation)
      GooglePlayServices.c__AnonStorey5:m__8()
      GooglePlayServices.ResolverVer1_1:DoResolution(PlayServicesSupport, String, OverwriteConfirmation, Action)
      GooglePlayServices.PlayServicesResolver:Resolve(Action)
      GooglePlayServices.PlayServicesResolver:AutoResolve()
      UnityEditor.EditorApplication:Internal_CallUpdateFunctions()

      bide bu hatayı alıyorum:

      WARNING: No compatible versions of com.android.support:support-annotations required by (com.android.support:support-v4:23.1.1, com.android.support:support-v4:24.0.0), will try using the latest version 24.0.0
      UnityEngine.Debug:Log(Object)
      Google.JarResolver.PlayServicesSupport:Log(String, Boolean)
      Google.JarResolver.PlayServicesSupport:ResolveDependencies(Boolean)
      GooglePlayServices.ResolverVer1_1:DoResolutionNoAndroidPackageChecks(PlayServicesSupport, String, OverwriteConfirmation)
      GooglePlayServices.c__AnonStorey5:m__8()
      GooglePlayServices.ResolverVer1_1:DoResolution(PlayServicesSupport, String, OverwriteConfirmation, Action)
      GooglePlayServices.PlayServicesResolver:Resolve(Action)
      GooglePlayServices.PlayServicesResolver:AutoResolve()
      UnityEditor.EditorApplication:Internal_CallUpdateFunctions()

      • yasirkula dedi ki:

        İnternette araştırınca çok bir şey bulamadım. Kimisi zararsız diyor kimisi Android SDK’da her şey güncel olmalı ya da eksik kurulmuş şeyler olabilir diyor. Bilemiyorum.

      • Hasan TANER dedi ki:

        Tamam hocam sağolun bende birşey bulamamıştım da pek, bi sorayım dedim. Kolay gelsin

  233. Ömer Sina Ceylan dedi ki:

    Abi Merhaba böyle bir hata alıyorum yardım eder misin ?

    • Ömer Sina Ceylan dedi ki:

      Unable to find the Android SDK manager tool. Required Android packages (extra-google-m2repository, extra-android-m2repository) can not be installed. Android SDK path not set. Set the Android SDK property using the Unity “Edit > Preferences > External Tools” menu option on Windows or the “Unity > Preferences > External Tools” menu option on OSX. Alternatively, set the ANDROID_HOME environment variable
      UnityEngine.Debug:LogError(Object)
      GooglePlayServices.ResolverVer1_1:DoResolution(PlayServicesSupport, String, OverwriteConfirmation, Action)
      GooglePlayServices.PlayServicesResolver:Resolve(Action)
      GooglePlayServices.PlayServicesResolver:MenuResolve()

      • hasan taner dedi ki:

        Kardesim yukarda not 2 ye bak aynisini yap zaten anlatilmis orda iyi bak.

  234. M hsu dedi ki:

    Merhaba. Unity de tam ekran reklam koyuyorum ölünce. Bunu her 3 ölmede bir falan koymayı nasıl yapabilirim?

    • yasirkula dedi ki:

      Şuna benzer bir kod yazabilirsiniz:

      private int olmeSayisi = 0;

      void KarakterOlum()
      {
      olmeSayisi++;
      if( olmeSayisi % 3 == 0 )
      ReklamGoster();
      }

  235. Furkan dedi ki:

    banner kodlamasını yaptım geçiş reklamları çalışıyor fakat attığım bannerları ekranda göremiyorum sistem filan mı değişti baya bi uraştım ama bi türlü olmadı

    using UnityEngine;
    using GoogleMobileAds.Api;

    public class Reklam : MonoBehaviour
    {
    void Start()
    {
    BannerView reklamObjesi = new BannerView(
    “Burayıda doğru yaptım reklam ID sini yapıştırdım”, AdSize.SmartBanner, AdPosition.Bottom );
    AdRequest reklamiAl = new AdRequest.Builder().Build();
    reklamObjesi.LoadAd( reklamiAl );
    }
    }

  236. Mucahit dedi ki:

    Abi reklam oldu oyunun bi basinda birde sonunda cikiyo reklam ama oyunu kapatana kadar hep ayni reklamlar geliyo reklama tiklasam bile reklam hic degismiyo bi sorun mu bu yoksa bisey olmaz mi bundan bi soriyim dedim

  237. Mucahit dedi ki:

    Valla abi senin yapin dediklerinden baska bisey yapmadim 😀

  238. Ogün BEKCİ dedi ki:

    Üye olunmak gerekseydi üye olabilirdim okadar diyorum 🙂 Teşekkürler Yasir

    Bu arada bizim Türk’ler paylaşımcı değildi bu kadar cidden şaka yapmıyorum duygulandım tüm samimiyetimle söylüyorum harikasın dostum 🙂

    • Ogün BEKCİ dedi ki:

      “Üye Olunmak” Demişim Pardon Olmak Neye Üye Olmak Derseniz Açıklayayım ;

      Yorum Yazmak İçin Çoğu Blog Vb. Site Üyelik İster Burda Ziyaretçiler Yazabiliyor Bundan Bahsetmek İstedim 🙂

      Uzatmıyorum İyi Çalışmalar 🙂

  239. ogmobileumut dedi ki:

    EventArgs olayını çözemedim koddan önce birşey mi yapmam lazım çünkü EventArgs tanımlanamıyor !

  240. Volkan dedi ki:

    VR Uygulamalarda nasıl yapacaz bunu peki?

  241. Mustafa dedi ki:

    Üstad admod da videolu reklam varmı varsa örnek verebileceğin bir kaynak mevcutmu ??? Şimdiden Tüşekkür ederim…

  242. muhay games dedi ki:

    hocam Interstitial reklam scriptini drek butona atıyorum ama extra görüntü çıkarıyor onu yapmaması için ne yapmam gerekir

  243. caner dedi ki:

    merhabalar;
    “google-play-services_lib” konusunda verdiğiniz not2 de sanırım güncelleme ile artık olmuyor. ben de “GoogleMobileAds.unitypackage” ı import ettim ve main camera bölümüne verdiğiniz banner kodu ekledim. apk çıktı almak istediğimde:

    CommandInvokationFailure: Unable to merge android manifests. See the Console for more details.
    C:/Program Files/Java/jdk1.8.0_102\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir=”C:/Users/CANER/AppData/Local/Android/android-sdk\tools” -Dfile.encoding=UTF8 -jar “C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar” –

    stderr[
    Error: [Temp\StagingArea\AndroidManifest-main.xml:12, C:\Users\CANER\Desktop\Unity\New Unity Project 5\Temp\StagingArea\android-libraries\GoogleMobileAdsPlugin\AndroidManifest.xml:2] Main manifest has but library uses minSdkVersion=’14’
    Error: [Temp\StagingArea\AndroidManifest-main.xml:12, C:\Users\CANER\Desktop\Unity\New Unity Project 5\Temp\StagingArea\android-libraries\play-services-ads-10.2.0\AndroidManifest.xml:2] Main manifest has but library uses minSdkVersion=’14’
    Error: [Temp\StagingArea\AndroidManifest-main.xml:12, C:\Users\CANER\Desktop\Unity\New Unity Project 5\Temp\StagingArea\android-libraries\play-services-ads-lite-10.2.0\AndroidManifest.xml:7] Main manifest has but library uses minSdkVersion=’14’
    Error: [Temp\StagingArea\AndroidManifest-main.xml:12, C:\Users\CANER\Desktop\Unity\New Unity Project 5\Temp\StagingArea\android-libraries\play-services-base-10.2.0\AndroidManifest.xml:2] Main manifest has but library uses minSdkVersion=’14’
    Error: [Temp\StagingArea\AndroidManifest-main.xml:12, C:\Users\CANER\Desktop\Unity\New Unity Project 5\Temp\StagingArea\android-libraries\play-services-basement-10.2.0\AndroidManifest.xml:2] Main manifest has but library uses minSdkVersion=’14’
    Error: [Temp\StagingArea\AndroidManifest-main.xml:12, C:\Users\CANER\Desktop\Unity\New Unity Project 5\Temp\StagingArea\android-libraries\play-services-clearcut-10.2.0\AndroidManifest.xml:2] Main manifest has but library uses minSdkVersion=’14’
    Error: [Temp\StagingArea\AndroidManifest-main.xml:12, C:\Users\CANER\Desktop\Unity\New Unity Project 5\Temp\StagingArea\android-libraries\play-services-gass-10.2.0\AndroidManifest.xml:2] Main manifest has but library uses minSdkVersion=’14’
    Error: [Temp\StagingArea\AndroidManifest-main.xml:12, C:\Users\CANER\Desktop\Unity\New Unity Project 5\Temp\StagingArea\android-libraries\play-services-tasks-10.2.0\AndroidManifest.xml:2] Main manifest has but library uses minSdkVersion=’14’
    ]
    stdout[

    ]
    exit code: 1
    UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
    UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
    UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
    UnityEditor.HostView:OnGUI()

    hatası geliyor. yardımcı olabilirseniz çok sevinirim. teşekkürler şimdiden

  244. Anıl dedi ki:

    Hepinize kolay gelsin Unity Ads’yi projeme ekledim fakat buton’a tanımlamayı yaptım kodları yazdım uyarlamaları herşeyi yaptım ama buton’a basınca videoyu açmıyo mesela fonksiyon içinde debug.log var ama console’da da bişey yazdırmıyor ekranda tıklama oluyo.

  245. mdynksgl dedi ki:

    Hocam iyi günler, yazılarınızı takip ediyorum çok faydali bilgiler paylaşıyorsunuz öncelikle bunun için teşekkür ederim,
    ben yaptığım oyuna reklam koydum burdaki scriptten faydalanarak ilk başlarda çalışıyordu denemek içinde bir kere tıkladım reklama bir sıkıntı yok ama şimdi benim telefonumda reklamlar çıkmıyor birkaç telefonda denedim acıldı ama kendi telefonumda reklamları göremiyorum bunun nedeni ne olabilir?

    • yasirkula dedi ki:

      Bu hafta içerisinde scripti kontrol edeceğim. İlginiz için teşekkürler.

    • yasirkula dedi ki:

      Player Settings’te Minimum API Level’ı Android 4.0 yapıp projedeki PlayServicesResolver klasörüne sağ tıkladım ve “Play Services Resolver-Android Resolver-Resolve Client Jars” yolunu izledim. Ardından reklamları Galaxy S3’ümde test ettim ve reklamlar düzgün bir şekilde gözüktü. Singleton scripte ilaveten diğer banner ve interstitial scriptlerini de denedim; onlarda da düzgün çalıştı.

      EDIT: yalnız banner reklamın ilk gözükmesi 10-15 saniye kadar aldı, onu da söyleyeyim.

  246. serhan dedi ki:

    Yasir İntersitial Reklamları Çalışmıyor Son Admob Packagesi ile bi bakabilir misin . Normalde Çalışıyodu Şuan İntersitial Reklam Kodların Çalışmıyor

  247. Abdullah dedi ki:

    selam. Singleton reklam scriptinizi kullanıyorum. Eğer uygulama çalışırken internet varsa herşey güzel çalışıyor. Ama uygulamayı açtığımda internet yoksa ve oyun esnasında internet açılırsa banner reklam geliyor. İnterstitial yüklenmiyor. Yukarıdaki koda göre ikisi de aynı mantıkla açılması lazım. Bi kontrol edermisiniz?

  248. emir dedi ki:

    o dediğiniz assest neerede bulamadım ben

  249. Fatih Gündüz dedi ki:

    Project GPM data does not exist. Creating new object.
    UnityEngine.Debug:Log(Object)
    Google.PackageManager.LoggingController:Log(String)
    Google.PackageManager.ProjectManagerController:InflateProjectRecord(String)
    Google.PackageManager.ProjectManagerController:.cctor()
    UnityEditor.EditorAssemblies:ProcessInitializeOnLoadAttributes()

    Hocam Android SDK kurulumdan sonra oyunu build edebiliyorum ama GoogleMobileAds.unitypackage import ettikten sonra bu uyarı / hata düşüyor konsola. İnternetten arattım 3 gün önce biri aynı hatayı almış çözümü söyleyen yok. Tüm günümü buna harcadım. Bilginiz var mı acaba?Saygılar.

  250. KeremD dedi ki:

    Hocam ben ekledim reklamı cok güzel çalışıyor ellerine sağlık fakat interstitial ad ekledim sizin dediginiz son kodu yazmış olmama rağmen yüklenmesi yine uzun neden olabilir yaptigim tek değişiklik gui buton u silip reklam gostermeyi start fonksiyonuna almak bu yuzden mi veya test deviceda oldugumdan mi öyle veya o koddaki object sender a bişey vermem gerekir mi?

    • KeremD dedi ki:

      Yuklenme süresi dedigim o reklam eklediğim sahnenin acilmasindan sonra 4-5 sn falan ama insanlar o shneyi gecerlerse süre bitmeden reklam goruntulenmemis oluyor bense anında gostermesini istiyorum yardım edebilirmisiniz

      • KeremD dedi ki:

        using UnityEngine;
        using System.Collections;
        using System;
        using GoogleMobileAds.Api;

        public class ReklamInterstitial : MonoBehaviour
        {
        private InterstitialAd reklamObjesi;

        void Start()
        {
        YeniReklamAl(null, null);
        StartCoroutine(ReklamiGoster());
        }

        IEnumerator ReklamiGoster()
        {
        while (!reklamObjesi.IsLoaded())
        yield return null;

        reklamObjesi.Show();
        }

        public void YeniReklamAl(object sender, EventArgs args)
        {
        if (reklamObjesi != null)
        reklamObjesi.Destroy();

        reklamObjesi = new InterstitialAd(“…”);
        reklamObjesi.OnAdClosed += YeniReklamAl;

        AdRequest reklamiAl = new AdRequest.Builder()
        .AddTestDevice(AdRequest.TestDeviceSimulator)
        .AddTestDevice(“…”)
        .Build();
        reklamObjesi.LoadAd(reklamiAl);
        }
        }
        Kodum da böyle

      • KeremD dedi ki:

        Ayrıca çok fazla yorum yazmış oluyorum kusura bakmayın ama yeniyim ve merak ediyorum bir de demin yanlışlıkla Android Test device id mi admob reklam id mi vermişim bunları ele geçiren biri bişey yapabilir mi?

      • yasirkula dedi ki:

        İkisini de sildim. Reklam id’niz kötü niyetli birinin eline geçerse bu reklam id’yi kullanarak sürekli reklam çağırıp bu reklamlara tıklayabilir ve hesabınızı banlatabilir. Test device id’nizle bir şey yapılabilir mi onu bilmiyorum.

    • yasirkula dedi ki:

      Reklamın internetten indirilmesi dediğiniz gibi 4-5 saniye sürebilir. En sonda paylaştığım singleton kodu kullanırsanız reklam oyun başlayınca yüklenmeye başlar ve siz kendi kodlarınızda ReklamScript.InterstitialGoster() dediğinizde reklam büyük olasılıkla çoktan yüklenmiş ve göstermeye hazır vaziyette olur.

      Yapmanız gereken şey singleton scripti oyunun ilk sahnesindeki boş bir objeye vermek ve reklam göstermek istediğiniz sahnedeki bir scriptin Start’ında ReklamScript.InterstitialGoster() fonksiyonunu çağırmak.

      • KeremD dedi ki:

        Hocam vallaha ne diyeyim çok sağolun bu reklam sistemini sonra ses sistemini falan hep sayenizde yaptım çok teşekkürler. Fakat bir şey soracağım konuyla alakasız biraz ama yardımcı olursanız sevinirim ben oyunun her ekran çözünürlüğüne uymasını istiyorum Bununla alakalı internette pek fazla içerik bulamadım yani içerikler objelerle alakalı mesela bir butonu anchorlarını ayarlayarak her ekran çözünürlüğüne ayarlamaya dair şeyler var fakat benim ihtiyacım olan 1 şey daha var textin font boyutlarını da her ekran boyutuna göre ayarlamak bunun için şöyle bir yöntem izledim ben unity de 480×800 ekran boyutu kullanıyorum referans olarak yazı boyutu da mesela 36 ise font boyutu (Screen.width / 480)*36 dedim ama maalesef olmadı bununla alakalı araştırma yaptım neden olmadı anlayamadım sizin sitenizde de yoktu galiba Bu konuda açmış olduğunuz bir konu varmı veya yeni bir konu açacakmısınız açmayacaksanız yardımcı olabilirmisiniz? Şimdiden Teşekkürler

      • yasirkula dedi ki:

        Text component’inin “Best Fit” özelliğini açarsanız yazının font boyutu, RectTransform’a sığacak şekilde otomatik olarak ayarlanır. Veya canvas’taki Canvas Scaler’ın “Ui Scale Mode”unu “Scale With Screen Size” yapıp referans çözünürlüğü 480×800 yaparsanız yazı diğer ekran çözünürlüklerinde de aynı şekilde görünür.

  251. Fatih Gündüz dedi ki:

    Hocam bilgin varsa ve yardımcı olabilirsen çook makbule geçecek. Firebase ile push notification yapıyorum sorun yok. Ama biliyorsunuz bildirimlerde sadece mesaj gidiyor ve resim görünmüyor. Benim istediğim bildirimle birlikte resim ve url göndermek. Bildirimde resim görünecek ve bildirime tıkladığı zaman linkin gönderdiği adrese gidecek(GooglePlay, browser vs.). Nasıl bir kod yazmalıyım veye Unity’de Firebase ile gönderilen bildirimle gelen değerleri nasıl alabilirim?

    • yasirkula dedi ki:

      Bu konuda hiç tecrübem yok ama notification yollamak konusu çok ilgi çekici bir şey; belki bu konuyu biraz araştırıp sonrasında ders yazabilirim.

  252. ahmet dedi ki:

    Hocam Merhaba
    Hocam unity de düşman karakterlerin nerde olduklarını gösteren panel nasıl yapılıyor.Kırmızı olarak üst köşelerde yapılıyor ya nerde oldukları nereye doğru hareket ettiklerini gösteriyorlar.yada konu ne olarak geçiyor bilgilendirme imkanınız varmı teşekkürler.

  253. serhan dedi ki:

    Yasir Admob Reward Video İle İlgili Çalışma Yaparmısın

  254. Sinan Saglam dedi ki:

    Selamun Aleykum kardeşim, Unity 3d ile yeni tanıştım ve 0 dan başlıyorum.Google da unity 3d admob ile ilgili döküman olarak en iyi burası var ve diğer forum vb. sitelerdede kullanıcılar buraya yönlendiriyorlar.Fakat yazı baya eski.Yeni bir döküman hazırlayabilir misin ? Benim gibi 0dan başlayanlar için daha açıklayıcı.Admobda 3 çeşit reklam türü var 3ünü de barındıran bir geniş kapsamlı bir döküman ? Eminim ki bu sadece benim değil çok çok fazla kişinin talebi 🙂

    • yasirkula dedi ki:

      Öneriniz için teşekkür ederim. Zaman zaman kodların çalışmadığı ile ilgili yorumlar geliyor ve bu durumda yazıda anlattıklarımı boş bir projede deneyerek eksik veya değişmesi gereken kısımları güncelliyorum. Yazının çoğu dediğiniz gibi eski ama hâlâ düzgün çalışıyor olması lazım, en azından ben birkaç hafta önce test ettiğimde öyleydi. Ancak anlaşılması çok zor kısımlar varsa oraları daha anlaşılır yapmaya çalışırım elbette.

  255. esbi1415 dedi ki:

    yasir ustam ödüllü geciş reklamı ekleme hakkında yardımcı olablirmisin

  256. ferhan dedi ki:

    Merhaba Yasin bey, bir sorum var yardımcı olabilirseniz sevinirim, aşağıdaki hatayı her build aldığımda görüyorum, nasıl düzeltirim? şimdiden teşekkürler, verdiğiniz bilgiler için ayrıca teşekkürler.

    NullReferenceException: Object reference not set to an instance of an object
    Google.JarResolver.Dependency..ctor (Google.JarResolver.Dependency dependency)

    Google.JarResolver.PlayServicesSupport.ResolveDependencies (Boolean useLatest, System.Collections.Generic.Dictionary`2 dependencyMap, System.String destDirectory, Google.JarResolver.ExplodeAar explodeAar)
    Google.JarResolver.PlayServicesSupport.ResolveDependencies (Boolean useLatest, System.String destDirectory, Google.JarResolver.ExplodeAar explodeAar)
    GooglePlayServices.ResolverVer1_1.DoResolutionNoAndroidPackageChecks (Google.JarResolver.PlayServicesSupport svcSupport, System.String destinationDirectory, Google.JarResolver.OverwriteConfirmation handleOverwriteConfirmation)
    GooglePlayServices.ResolverVer1_1+c__AnonStorey8.m__10 ()
    GooglePlayServices.ResolverVer1_1+c__AnonStorey8+c__AnonStorey9.m__16 (GooglePlayServices.Result updateResult)
    GooglePlayServices.CommandLineDialog+ProgressReporter.Update (GooglePlayServices.CommandLineDialog window)
    GooglePlayServices.CommandLineDialog.Update ()
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:249)
    UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:242)
    UnityEditor.HostView.SendUpdate () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:307)
    UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at C:/buildslave/unity/build/artifacts/generated/common/editor/EditorApplicationBindings.gen.cs:197)

    • yasirkula dedi ki:

      Plugini projeden silip pluginin son sürümünü tekrar import edin. Platformun olarak Android’in seçili olduğundan emin olun. Eğer olmazsa SDK Manager’dan güncel bir Android sürümünün SDK’sını kurmayı deneyin. En kötü ihtimalle projedeki diğer Android plugin’lerini (varsa) tek tek silip bir plugin ile çakışma olup olmadığına bakın.

  257. Mucahit1 dedi ki:

    Selamun aleykum abi ben gecis reklamlarini sadece oyunun sonunda cikmasi icin ayarladim ama son zamanlarda oyunun ortasindada cikmaya baslamis az once admobdan mail aldim oyunun ortasinda cikmaya devam ederse hesabimin kapatilicagini soylediler boyle bi kod yazmadigim halde boyle bi olayin olmasi nasil olur veya bunun nasil onune gecebilirim yardimci olabilir misin

  258. Mucahit dedi ki:

    using UnityEngine;
    using System.Collections;
    using System;
    using GoogleMobileAds.Api;

    public class ReklamScript : MonoBehaviour
    {
    private static ReklamScript instance = null;

    public string bannerID;
    public string interstitialID;

    public bool testMod = false;
    public string testDeviceID;

    private BannerView bannerReklam;
    private InterstitialAd interstitialReklam;

    void Awake()
    {
    if( instance == null )
    {
    instance = this;
    DontDestroyOnLoad( this );
    }
    else if( this != instance )
    {
    Destroy( gameObject );
    return;
    }
    }

    void Start()
    {
    if( this != instance )
    return;

    BannerReklamAl();
    InterstitialReklamAl();
    }

    void BannerReklamAl()
    {
    bannerReklam = new BannerView( bannerID, AdSize.SmartBanner, AdPosition.Bottom );

    AdRequest reklamiAl;
    if( testMod )
    reklamiAl = new AdRequest.Builder().AddTestDevice( AdRequest.TestDeviceSimulator )
    .AddTestDevice( testDeviceID ).Build();
    else
    reklamiAl = new AdRequest.Builder().Build();

    bannerReklam.LoadAd( reklamiAl );
    bannerReklam.Hide();
    }

    void InterstitialReklamAl()
    {
    if( interstitialReklam != null )
    interstitialReklam.Destroy();

    interstitialReklam = new InterstitialAd( interstitialID );
    interstitialReklam.OnAdClosed -= InterstitialDelegate;
    interstitialReklam.OnAdClosed += InterstitialDelegate;

    AdRequest reklamiAl;
    if( testMod )
    reklamiAl = new AdRequest.Builder().AddTestDevice( AdRequest.TestDeviceSimulator )
    .AddTestDevice( testDeviceID ).Build();
    else
    reklamiAl = new AdRequest.Builder().Build();

    interstitialReklam.LoadAd( reklamiAl );
    }

    public void InterstitialDelegate( object sender, EventArgs args )
    {
    InterstitialReklamAl();
    }

    /*void OnGUI()
    {
    if( GUI.Button( new Rect( Screen.width / 2 – 150, 0, 300, 150 ), “Banner Goster” ) )
    ReklamScript.BannerGoster();

    if( GUI.Button( new Rect( Screen.width / 2 – 150, 150, 300, 150 ), “Banner Gizle” ) )
    ReklamScript.BannerGizle();

    if( GUI.Button( new Rect( Screen.width / 2 – 150, 300, 300, 150 ), “Interstitial Goster” ) )
    ReklamScript.InsterstitialGoster();
    }*/

    public static void BannerGoster()
    {
    if( instance == null )
    return;

    if( instance.bannerReklam == null )
    instance.BannerReklamAl();

    instance.bannerReklam.Show();
    }

    public static void BannerGizle()
    {
    if( instance == null )
    return;

    if( instance.bannerReklam == null )
    return;

    instance.bannerReklam.Hide();
    }

    public static void InsterstitialGoster()
    {
    if( instance == null )
    return;

    if( instance.interstitialReklam == null )
    instance.InterstitialReklamAl();

    instance.StopCoroutine( instance.InsterstitialCoroutine() );
    instance.StartCoroutine( instance.InsterstitialCoroutine() );
    }

    IEnumerator InsterstitialCoroutine()
    {
    while( !interstitialReklam.IsLoaded() )
    yield return null;

    interstitialReklam.Show();
    }
    }

    yazdıgım kod bu abi oyunun sonunda
    ReklamScript.InsterstitialGoster();
    geçiş reklamını gösteriyorum ama oyunun ortasında da çıkmaya başladı geçiş reklamları bunu nasıl önleyebilirim

    • yasirkula dedi ki:

      instance.StartCoroutine( instance.InsterstitialCoroutine() ); satırından önce şu satırı eklerseniz artık ReklamScript.InterstitialGoster(); dediğiniz anda reklam çoktan hazırsa ancak o zaman gösterilir, yoksa gösterilmez:

      if( interstitialReklam.IsLoaded() )

      Şu anda, reklam gösterme isteğiniz boşa gitmesin diye InterstitialCoroutine içerisinde reklam yüklenene kadar bekleniyor ve reklam yüklenince otomatik olarak gösteriliyor. Reklamı yüklemek çok uzun sürerse tabi reklam oyunun ortasında gösteriliyor. Üstte dediğim şekilde bu sıkıntıyı çözebilirsiniz ama ben de bir ara kodu bu gibi durumlara karşı daha da iyileştirmeye çalışacağım.

  259. Mucahit1 dedi ki:

    Senin verdigin kodun satirinda hata veriyor abi

  260. berke dedi ki:

    Interstitial reklamlarınızın kodlarını harfiyen yaptım ancak oyunumun tam ortasında butona benzer içinde reklamı göster yazan bir kare çıkıyor onun üzerine basınca reklam çıkıyor basmayınca çıkmıyor ve ekranda sabit duruyor basılsada basılmasada ve oyunun ekranında bunun bulunmasını istemiyorum otomatik olarak reklamın belli süre zarfında ekrana gelmesini istiyorum bunun için bir çözümünüz varmıdır,şimdiden teşekkürler.

    • yasirkula dedi ki:

      Ekranda çıkan buton(lar)ı yok etmek için OnGUI fonksiyonunu silebilirsiniz. Belirli aralıklarla otomatik olarak interstitial göstermek için de InvokeRepeating( “CagrilacakFonksiyonAdi”, 5, 5 ) fonksiyonundan faydalanabilirsiniz; verdiğim örnekte CagrilacakFonksiyonAdi() isimli fonksiyon her 5 saniyede bir çağrılmakta. Yalnız oyunun ortasında interstitial reklamlar çıkarırsanız oyuncu kitleniz bundan rahatsızlık duyacaktır. Onun yerine ana menüye dönünce vs. daha kabul edilebilir yerlerde reklam çıkarın derim.

      • berke dedi ki:

        dediğinizi çok kez denedim ama sanırım anlamadım son güncellemenizdeki kodlar çok güzel çalışıyor ancak oyuna girince 2 tane reklam ard arda çıkıyor her öldüğümde 1 saniye geçmeden 2 tane daha çıkıyor dediklerinizi uygulamaya çalıştım ancak yapamadım genel anlamda siz bu örnekleri vermeseniz zaten reklam kodlarını hala anlayabilmiş değilim rica etsem son güncellemedeki singleton reklam scriptinde Interstitial reklamları için InvokeRepeating( “CagrilacakFonksiyonAdi”, 5, 5 ) için küçük bir örnek verebilirmisiniz.Şimdiden teşekkürler.

      • yasirkula dedi ki:

        InvokeRepeating şu tarz kullanılıyor:

        void Start()
        {
        InvokeRepeating(“CagrilacakFonksiyonAdi”,5,5);
        }

        void CagrilacakFonksiyonAdi()
        {
        // bu fonksiyon 5 saniyede bir çağrılmakta
        }

        Peki şu anda reklam çağırmak için nasıl bir kod kullanıyorsunuz?

  261. Seçgin Yavuz dedi ki:

    Merhaba kolay gelsin, not2 bu sorun için çözüm olmuyor malesef, bu hatayı admob paketini projeye ekleyince alıyorum direk, oyunu test ettiğimde reklamın görünüp görünmediğine bakmadım ama bu hatayı düzeltmek istiyorum, düzeltene kadar eski plugini kullanıcam fakat bu hata hakkında bana yardımcı olursanız çok teşekkür ederim, saygılarımla…

    ResolutionException: Cannot find candidate artifact for com.google.android.gms:play-services-ads-lite:[10.2.4]
    Google.JarResolver.PlayServicesSupport.GetDependencies (Google.JarResolver.Dependency dep, System.Collections.Generic.List`1 repoPaths)
    Google.JarResolver.PlayServicesSupport.GetTransitiveDependencies (System.Collections.Generic.Dictionary`2 dependencies, System.Collections.Generic.List`1 repoPaths)
    Google.JarResolver.PlayServicesSupport.FindMissingDependencyPaths (System.String destinationDirectory, System.Collections.Generic.Dictionary`2& dependencyPaths, Google.JarResolver.ExplodeAar explodeAar)
    GooglePlayServices.ResolverVer1_1.DoResolution (Google.JarResolver.PlayServicesSupport svcSupport, System.String destinationDirectory, Google.JarResolver.OverwriteConfirmation handleOverwriteConfirmation, System.Action resolutionComplete)
    GooglePlayServices.PlayServicesResolver.Resolve (System.Action resolutionComplete)
    GooglePlayServices.PlayServicesResolver.AutoResolve ()
    UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at C:/BuildAgent/work/d63dfc6385190b60/artifacts/EditorGenerated/EditorApplication.cs:231)

  262. PoeWang dedi ki:

    Bu singleton scriptini kullandığımızda,Rewarded ödül için hangi fonksiyonu butona atıyacağız.Butonu seçip fonksiyon atama listesine baktığımda RewardedReklamGoster fonksiyonu çıkmıyorda 😦

    public void odulluReklam()
    {
    RewardedReklamGoster(odulDelegate);
    }
    Scripte bunu ekledim ve çalıştı ama odul vermedi 😦 Link bağlantısıda kurmak gerekiyor sanırım 😀 yoksa benmi yanlış yaptım ?

    • yasirkula dedi ki:

      Şöyle bir şey deneyebilirsiniz:

      public void odulluReklam()
      {
      	RewardedReklamGoster( ( sender, odul ) =>
          {
      		// sender: object, odul: Reward
              Debug.Log( "Ödül türü: " + odul.Type );
       
              altin += (int) odul.Amount;
          } );
      }
      
      • PoeWang dedi ki:

        Yazdığınız scrip komple hata verdi 😦 Yazdığınız rewardedReklamGoster fonksiyonu için yaptığınız parametre şeklinide ilk defa görüyorum 😀 Açıklayabilir misiniz birde oyununuzda siz butona nasıl bir fonksiyon atıyorsunuz ?