20

Ara

2016

Android Geliştiriciler için Admob— Banner Reklam

Önceki yazımda Android Geliştiriciler için mobil reklamcılıktan ve platformlardan bahsetmiştim. Bu yazı ile birlikte Admob platformunu kullanarak Banner türündeki reklamlara bakacağız.

Admob Entegrasyonu

Admob’u kullanabilmek için root level build.gradle ve app-level build.gradle dosyalarımıza gerekli bağımlılıkları ekleyeceğiz.

root level build.gradle

app level build.gradle

Ayrıca app level build.gradle dosyamıza google-services pluginini de koymamız gerekiyor.

Eğer Admob üyeliğiniz Firebase projeniz ile linklenmiş durumda değil ise sadece firebase-ads’i kullanarak entegrasyonu yapabilirsiniz. Admob üyeliğiniz Firebase projeniz ile linklenmiş durumda ise projenize ait Firebase tarafından size verilen google-services.json dosyasına ihtiyacınız olacak.

AdView

Admob banner reklamlarımızı AdView ile göstereceğiz.

AdView öğesini Activity veya Fragment’ımıza ait layout xml dosyasına ekledikten sonra parent layout öğesine eklememiz gereken namespace bulunuyor.

Adview öğesine baktığımız zaman adUnitId ve AdSize tanımlamalarını göreceğiz. Biraz bunlardan bahsetmek istiyorum.

AdUnitId

Ad unit id, oluşturduğunuz reklamlar için size verilen ve reklamları göstermenizi sağlayan değerlerdir. Ad Unit Id’ler aynı zamanda içinde Publisher Id değerlerini de tutarlar.

Publisher id, Admob tarafından hesabınızı oluşturduğunuzda, hesabınıza tanımlanan değerdir.

Google tarafından verilen örnek ad unit id

strings.xml dosyamız içinde reklam id mizi tanımlıyoruz.

AdSize

Banner için birçok reklam boyutu desteklenmekte. Bunlar ile ilgili bilgimiz olması bizim için faydalı olacaktır. Desteklenen reklam boyutları :

Banner reklamlara bakarken Smart Banner diye bir kavram ile karşılaşacağız. Smart Banner türündeki reklamlar, normal banner türündeki reklamlardan ekran büyüklüğüne göre kendilerini otomatik olarak boyutlandırmaları ile ayrılılar. Smart Banner reklam içerisine tanımlanan görsel yeterli büyüklükte değil ise, görsel view içinde ortalanır ve kenarlardan eşit oranda boşluk bırakılır.

AdView ve banner ile ilgili gerekli bilgileri öğrendiğimize göre işin java kısmına geçebiliriz.

MobileAds.initialize, Google Mobile SDK’nin uygulama başladığında başlamasını ve gerekli yapılandırmaları fark ederek, reklamların gösterilmesi sürecini başlatması görevini alır. Admob hesabını oluşturduğunuzda size verilen Publisher Id ile hesabınızı tanır ve reklamlarınızı gösterir.

AdView reklamlarımızı gösteren arayüz öğesidir. Xml tarafında adUnitId ve adSize gibi değerleri tutar.

AdView’imizi oluşturup tanımladıktan sonra AdRequest objesine ihtiyaç duyuyoruz. AdRequest bizim için reklam isteğini oluşturuyor.

loadAd metotu ile oluşturduğumuz istekten dönen reklamı gösterme sürecini başlatırız.

Toplı halde bakacak olursak şu şekilde görünecek:

Bazen yukardaki kullanım dışında Java tarafında adUnitId veya adSize tanımlamamız gereken durumlar oluşuyor. Bu durumda bu değerleri xml tarafından çıkarıp Java tarafında kullanmamız gerekiyor.

AdView’ı tutacak üst bir View oluşturup içine adView’ı koyuyoruz. Bu bize AdView’ımıza Java tarafında AdSize ve AdUnit tanımlama gibi faydalar sağlıyor.

Reklamımıza bakalım, üstteki reklam LinearLayout aracılığıyla oluşturduğumuz reklam alanı olurken, alttaki reklam AdView xml i üzerinden belirlediğimiz adSize ve adunitId lerine sahip olacak.

screenshot_2016-12-20-22-18-36 Canlıya çıkmadan önce test sürecinde reklamlarımız ile ilgili bir sorun yaşamamak adına kullanabileceğimiz bir özellik bulunuyor. AdRequest imize test cihazı olduğu değerini ekleyebiliyoruz. İlk reklam isteğini yaptıktan sonra konsol da size ait test device id verisini görebilirsiniz.

AdListener

Reklamımız ile ilgili yüklendi mi, açıldı mı, kapandı mı veya bir hatadan dolayı yüklenemedi mi gibi durumlar için AdListener sınıfı bulunuyor.

mAdView.setAdListener(new AdListener){…} şeklinde tanımlayıp bu durumlara erişebiliyoruz.

AdmobBanner reklamlar ile ilgili bahsedebileceklerim bunlar. Sonraki yazı da Interstitial türündeki reklamlara bakacağız.

Örnek kodları oluşturduğum github reposunda bulabilirsiniz. Unuttuğum yerler varsa yorum olarak iletirseniz sevinirim, bu şekilde yazımı daha faydalı hale getirebilirim.

Github reposu

Yararlandığım Kaynaklar

About Author

Yusuf Çakmak

Teknoloji ile ilgilenmeyi seven, herhangi bir teknolojiye kendini ait hissetmeyen, zaman buldukça farklı dilleri, kütüphaneleri, cihazları denemeye çalışan kendi halinde biriyim.

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir