Unity 3D-Reklam Entegrasyonları
Bu blog yazımızda Unity için çeşitli reklam entegrasyonlarının hem IOS hem de Android platformları için entegrasyonunu anlatmaya çalışacağım. Anlatacağım bu toolları şu anda aktif olarak yaptığım proje içerisinde de kullanıyorum.
Öncelikle reklam entegrasyonlarına değineceğim. Bu aşamada sizlere 2 seçenek sunacağım. Bu seçenekler; Google Admob ve Unity Ads. Google Admob ile başlayalım:
- Unity İçin Google Admob Entegrasyonu
Yazıyı yazarken faydalandığım kaynakları 1 ve 2 diye ekliyorum.
İlk yapmanız gereken, şu adresten GoogleMobileAds.unitypackage’ı indirmek:
Ardından AdMob web sitesinden yeni bir hesap oluşturun (Sign up)(Gmail hesabı gerekli) veya mevcut hesabınızla sisteme giriş yapın (Sign in).
Hesabınızı oluşturduktan ve sisteme giriş yaptıktan sonra, solda yer alan menüden Apps — Add App yolunu izleyip hesabınıza yeni bir uygulama ekleyin. Yeni oluşturduğunuz uygulamaya reklam eklemek için sol menüden Apps-Uygulama_İsmi seçin ve yine sol menüde yer alan Ad Units’e tıklayın. Son olarak gelen ekrandan Add Ad Unit butonuna tıklayın.
1.1 Banner Reklamlar:
Reklam türü olarak Banner seçin ve bir reklam birimi adı girin. Reklam Birimi Oluştur butonuna tıklayarak işlemi sonlandırın.
1.2 Interstitial Reklamlar:
Tam ekran geçiş reklamları olarak bilinir. Banner Reklamlar başlığındaki talimatları izleyerek oluşturabilirsiniz.
1.3 Rewarded Reklamlar:
Bu video reklam türünde, 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 Ödül ayarlarından Ödül Miktarı olarak 100, Ödül Öğesi olarak da altın 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 -Unity kodunuzda bir değişiklik yapmadan- değiştirebilirsiniz. Tabii ki dilerseniz bu değerleri yok sayabilir ve reklam izlenince kaç altın kazanılacağını direkt Unity kodunuzda belirleyebilirsiniz.
Reklam birim(ler)inizi oluşturduktan sonra Tamamlandı butonuna tıklayarak işlemi sonlandırın. Reklam birimleri menüsünden yeni oluşturduğunuz reklama tıklayın ve gelen ekranda sağ üstten Uygulama Talimatları’na tıklayın. Burada görünen uygulama kimliğinizi ve reklam birimi kimliğinizi bir yere not edin (ca-app-pub- kısmını da ilave etmeyi unutmayın!):
Öncelikle projenizi Unity’de açın. Ardından yukarıdaki panelden Assets>Import Package>Custom Package yolunu izleyin. Dosyaları projenize Import ettikten sonra, Project kanalında herhangi bir yere sağ tıklayıp Play Services Resolver-Android Resolver-Resolve işlemini yapın ve bitene kadar bekleyin. Assets-Google Mobile Ads-Settings… yolunu izleyin. Inspector panelinde birtakım ayarlar görünecek. Bu ayarlardan Google AdMob’un altındaki Enabled’ı işaretleyin ve Android’in yanındaki boşluğa uygulama kimliğinizi girin (kimliğin başında veya sonunda boşluk karakteri olmasın! Kodlarınızda reklam kimliklerinizi kullanırken de başta veya sonda boşluk olmadığından emin olun):
Bu işlemlerden sonra gelelim kod tarafına:
1.4 Reklam Entegrasyonları
1.4.1 Banner Reklam Kod Entegrasyonu
Diyelim ki oyunun ilk sahnesinde, ekranın tepesinde bir banner reklam göstermek istiyorsunuz. O zaman Reklam adında yeni bir C# scripti oluşturun ve bu scripti sürükleyerek sahnenizdeki bir objeye component olarak verin:
1.4.2 Interstitial Reklam Kod Entegrasyonu
ReklamInterstitial adında yeni bir C# scripti oluşturun ve bunu sahnenizdeki bir objeye component olarak verin. 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:
1.4.3 Rewarded Reklam Kod Entegrasyonu
ReklamRewardedVideo adında yeni bir C# scripti oluşturun ve bunu sahnenizdeki bir objeye component olarak verin. Bu script ile ekranda bir buton oluşturacak ve bu butona tıklayınca Rewarded video reklam oynatacak:
2. Unity İçin Unity Ads Entegrasyonu
Yazıyı yazarken faydalandığım kaynak için buraya tıklayın.
Unity Ads de tıpkı Google Admob gibi 3 çeşit reklamı destekler. Bunlar Google Admob’da da gördüğümüz üzere Banner, Interstitial, Rewarded reklamlardır.
- Banner: Oyun boyunca ekranın üst veya alt kenarında görünen ufak reklamlardır.
- Interstitial: Tam ekran olan ve bir resimden veya videodan oluşan reklamlardır. Eğer reklam videodan oluşuyorsa videoyu birkaç saniye izledikten sonra reklamı geçmek mümkündür.
- Rewarded: Bunlar da video reklamlardır. Interstitial’in aksine, Rewarded reklamlar geçilemez, sonuna kadar izlenir. Ama bunun karşılığında da oyuncuya bir oyun içi ödül (reward) verilir; mesela 50 altın. Rewarded reklam gösterip oyuncuya ödül vermemek, Rewarded reklam politikasına aykırıdır ve oyununuzdaki reklamların durmasına sebep olabilir. Benzer şekilde, oyuncuya Rewarded reklamın 50 altın vereceğini söyleyip sadece 10 altın ödül vermek de reklamın yanıltıcı olması demektir ve bu da reklamların durmasına sebep olabilir. O yüzden Rewarded reklamlarda oyuncuya karşı dürüst olmalı, reklamı izlemenin karşılığında oyuncunun ne kazanacağını ona açık bir şekilde söylemeli ve oyuncu reklamı izleyince o ödülü oyuncuya vermelisiniz.
2.1 Reklam Oluşturma
Yeni bir reklam oluşturmak için, öncelikle yeni bir proje oluşturmalıyız.
Bunun için şu adrese gidin, soldan Projects sekmesine geçiş yapın ve New Project butonuna tıklayın. Project Name’e projenizin ismini girin. App Store ID’leri şimdilik boş bırakabilirsiniz. İşlemi tamamlamak için Add Project butonuna tıklayın.
Reklam oluşturmak için, projenizin ana sayfasında sol tarafta yer alan menüden Monetization-Placements sekmesine tıklayın ve Add Placement butonuna tıklayın. Placement ID’e reklam için bir isim girin ve eğer banner reklam oluşturuyorsanız Banner, Interstitial reklam oluşturuyorsanız Interstitial video, Rewarded reklam oluşturuyorsanız Rewarded video seçeneğini seçip Create Placement butonuna tıklayarak işlemi sonlandırın.
Yeni oluşturduğunuz projelerde Unity Ads otomatik olarak bir Interstitial bir de Rewarded reklam oluşturur ve bunlara video ile RewardedVideo isimlerini verir:
Dilerseniz yeni bir Interstitial veya Rewarded reklam oluşturmak yerine, direkt bunları kullanabilirsiniz. Burada benim önerim, Interstitial (video) reklama tıklayıp Ad Types içinde yer alan her şeyi işaretlemeniz ve Save butonu ile değişikliği kaydetmeniz:
Buradaki değerler şunlardır:
- Video: Birkaç saniye sonra geçilebilir video reklam
- Display: Statik bir resimden oluşan reklam
- Playable: Oyuncunun reklamla etkileşime geçebildiği, reklamdaki oyunu direkt reklam üzerinden oynayabildiği reklamlar
Son olarak da aynı sayfadan Allow Skip’in değerini değiştirerek oyuncunun kaç saniye sonra Interstitial reklamı geçebileceğini belirleyebilirsiniz:
2.2 Reklam Filtreleme
Reklamlarınızın hedef kitlenize daha çok hitap etmesi için reklam filtrelerini kullanabilirsiniz. Filtrelere erişmek için soldaki menüden Monetization-Ad Filters yolunu izleyin. Gelen pencerede göreceğiniz üzere, Android (Google Play Store) ve IOS (Apple App Store) için farklı filtreler oluşturabilirsiniz. Reklamlarınıza 2 çeşit filtre uygulayabilirsiniz:
- Category Filtering: Belli kategorilerdeki reklamların oyununuzda gözükmemesini sağlar.
2.3 Reklam Entegrasyon Bilgileri
- Reklam(lar)ınızın Placement ID’leri: Monetization-Placements ekranından reklama tıklayarak gelen sayfadan öğrenebilirsiniz
- Game ID: Sol taraftan Settings-Project Settings sekmesine geçiş yapınca Google Play Store (Android) ve Apple App Store (IOS) satırlarında yer alır, yani oyununuzun Android ve IOS sürümlerinin GAME ID’leri farklıdır.
2.4 Unity Ads’i Unity Projesine Entegre Etmek
Package Manager kullanarak Unity Ads’i projenize ekleyebilirsiniz.
2.5 Reklamları Göstermek
2.5.1 Banner Reklamlar
Bir C# script oluşturun ve bu scripti sahnenizdeki aktif bir Game Object’e component olarak verin:
2.5.2 Interstitial Reklamlar
Bir C# script oluşturun ve bu scripti sahnenizdeki aktif bir Game Object’e component olarak verin:
2.5.3 Rewarded Reklamlar
Bir C# script oluşturun ve bu scripti sahnenizdeki aktif bir Game Object’e component olarak verin:
Umarım yardımcı olmuştur. İyi çalışmalar.