iOS 301Başlangıç seviyesi derslerde iOS uygulama geliştirme ortamını detaylı olarak inceliyoruz.

Tüm Eğitimleri Aldın mı? Kendini sınamanın tam zamanı

Haydi Sınava Gir

AdMob İle Uygulamaya Reklam Eklenmesi

Kategori : Mobil | Lisans : Creative Commons (by-nc-sa) | En son 12.05.2016 tarihinde güncellendi
Eğitmen : Geleceği Yazanlar Ekibi
Etiketler : obj-c admob obj-c banner obj-c reklam xcode admob

AppStore’daki uygulamaların büyük bir çoğunluğu – özellikle ücretsiz sunulan uygulamalar – gelir modeli olarak reklam alma stratejisini uygulamaktadır. Reklamın uygulamada görüntülenmesine ya da kullanıcıların reklamda sunulan linki takip etmesine göre, reklam veren tarafından uygulama sahibine belirli bir ücret ödenir. Bu ücretlerin ödenmesi ve reklamların dağıtımı görevini belirli reklam servisleri üstlenir. İşte bu servislerin mobil uygulama dünyasında en çok tercih edileni AdMob adlı servistir.

Geçtiğimiz yıllarda Google tarafından satın alınarak reklam konusunda kendini güçlendiren AdMob’un ücret paylaşım planı şu şekildedir: Uygulama üzerinden elde edilen reklam gelirinin %60’ı uygulama sahibine, %40’ı ise AdMob'a aktarılır. Ülkemizde de reklam verenler tarafından yaygın olarak tercih edilen AdMob servisi, ödemeleri PayPal sistemi üzerinden gerçekleştirmektedir. AdMob, iPhone dışında Android ve Windows Phone platformlarını da desteklemektedir.

AdMob Reklam Sistemine Üye Olmak

AdMob servisine üye olmak için ana sayfanın sağ üst köşesinde yer alan Register (Kayıt ol) linkine tıklamanız gerekmektedir. Sistem Google hesabı desteklediğinden, eğer bir Google hesabınız varsa Login (Giriş Yap) linkiyle sisteme giriş yapabilirsiniz.

AdMob anasayfası                                                        

hesabınızı oluşturduktan sonra Log In seçeneğini tıklayarak sisteme giriş yapın. Google hesabınızla giriş yaptıktan sonra karşınıza aşağıdaki yönetim paneli gelecektir:

 

AdMob yönetim paneli

 Buradaki menülere kısaca göz atarsak;

  • Campaigns (Kampanyalar): Sistem üzerinden uygulamanıza reklam alabileceğiniz gibi reklam da verebilirsiniz. Eğer kendi reklamınızı oluşturmak ve başka uygulamalarda görüntülemek istiyorsanız belirlediğiniz bütçe çerçevesinde reklam oluşturma işlemlerini bu menü altından gerçekleştirebilirsiniz.
  • Sites & Apps (Siteler ve Uygulamalar) : Mobil uyumlu web sitenizi ya da mobil uygulamalarınızı kazançlarıyla birlikte bu menü altından takip edebilirsiniz. Bu ekranda bütün uygulamalarınız listelenecek ve seçilen tarih aralığına göre getirdikleri gelir size bildirilecektir.
  • Reporting (Raporlar): Verdiğiniz reklamların dağılımını ya da uygulamalarınızın reklamlardan elde ettikleri gelir durumlarını bu menü altından takip edebilirsiniz.
  • Accounts (Hesap İşlemleri): Hesabınızla ilgili değişiklikleri buradan gerçekleştirebilir, ödeme bilgilerinizi ve ödeme geçmişinizi buradan kontrol edebilirsiniz.

HouseAds seçeneği ile kendiniz reklam oluşturabilirsiniz. Bu reklamlar AdMob tarafından ücretli reklam gelmediği durumlarda uygulamada gösterilecektir. Eğer birden fazla uygulamanız varsa ve yeni çıkan uygulamalarınızın bilinirliğini arttırmak istiyorsanız bir HouseAd oluşturmanızı öneriririz.

Şimdi Sites & Apps altında Add Site & App (Site ve Uygulama ekle) seçeneğiyle yeni bir reklam oluşturalım:

Yeni uygulama için platform seçim ekranı                                         

Uygulamanın platformunu seçtikten sonra ekranın aşağısında bir ayrıntı sayfası açılacaktır. Biz iPhone uygulamasını seçelim ve devam edelim:

Platform detay sayfası

Burada uygulamayla ilgili oluşturmanız gereken değerler bulunmaktadır. Şimdi bu değerlere göz atalım;

  • App Name : Uygulamanızın adını buraya yazmanız gerekir.
  • App Store Url : Uygulamanızın AppStore linkini buraya girebilirsiniz. Zorunlu bir alan değildir ve sonradan değiştirilebilir.
  • Category : Uygulamanızın kategorisini buradan seçebilirsiniz. Zorunlu bir alandır ve uygulamanıza verilecek reklamları etkileyeceğinden dikkatli seçmenizi öneririz.
  • App description : Uygulamanın açıklaması burada yer alır. Zorunlu bir alandır.
  • Google Ads : Az önce bahsettiğimiz gibi uygulamanıza mobil reklam bulunamadığı takdirde, Google’ın diğer reklam kanallarından reklam eklemesini buradan onaylayabilirsiniz.
  • Theme : Uygulamanızın tasarım rengine uygun reklamlar eklenmesini istiyorsanız buradan kendi renklerinizi seçebilirsiniz.
  • My app uses location information : Eğer uygulamanızda kullanıcı konumunu alıyorsanız, bu seçeneği işaretleyerek konum bilgisi gönderen reklamlardan faydalanabilirsiniz.

Unutmayın! Kullanıcı hakkında ne kadar çok bilginiz varsa o kadar isabetli bilgi alırsınız. Ancak eğer konum gibi bilgiler uygulamanın doğal akışında bulunmuyor ve sadece reklam için kullanılıyorsa, Apple bu tarz davranışları red sebebi olarak göstererek uygulamanızı AppStore’a kabul etmeyebilir.

Yukarıdaki seçenekleri doldurduktan sonra AdMob SDK dosyalarını yükleyip projenize ekleyebilirsiniz.

AdMob SDK dosyalarını projenize ekledikten sonra ortaya çeşitli derleme problemleri çıkabilir. Bunun sebebi AdMob’un bir takım iOS kütüphanelerine ihtiyaç duymasıdır. İlgili kütüphaneleri eklemek için sol menüden projenin ana dosyasına tıklayıp Linked Frameworks and Libraries seçeneğine gelin ve + düğmesine basarak kütüphaneleri ekleyin.

AdMob için aşağıdaki kütüphanelere ihtiyaç duyacaksınız;

  • AudioToolbox
  • CFNetwork
  • MessageUI
  • MobileCoreServices
  • Security
  • SystemConfiguration

Kütüphane seçim ekranı

Dosyaları ve gerekli kütüphaneleri projeye ekledikten sonra MasterViewController’a gelip .h dosyasında aşağıdaki eklentileri yapalım:

 

#import <UIKit/UIKit.h>
#import "FlurryAnalytics.h"
#import "GADBannerView.h"
@class MODetailViewController;
@interface MOMasterViewController : UITableViewController<GADBannerViewDelegate>
{
}
@property (strong, nonatomic) MODetailViewController *detailViewController;
- (IBAction) createNewNote:(id)sender;
@end

 

Sonrasında .m dosyasında viewDidLoad fonksiyonunda aşağıdaki değişiklikleri gerçekleştirelim. Interface Builder dosyasından ekran tasarımı yüklendikten sonra AdMob reklamımız yüklenecek ve ekranda görüntülenecektir;

 

- (void) viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    GADRequest *request = [GADRequest request];
    request.testDevices = [NSArray arrayWithObjects:
                           GAD_SIMULATOR_ID,
                           nil];
    GADBannerView *bannerView_ = [[GADBannerView alloc]
        initWithFrame:CGRectMake(0.0,
                                370,
                                GAD_SIZE_320x50.width,
                                GAD_SIZE_320x50.height)];
    bannerView_.adUnitID = @"a14f79bfd419f32";
    bannerView_.delegate = self;
    bannerView_.rootViewController = self;
    [self.view addSubview:bannerView_];
    [bannerView_ loadRequest:request];
}

 

Yukarıdaki kod içinde yapılanları basitçe anlatırsak:

1) GADRequest nesnesi AdMob sunucusuna yapılacak yeni bir isteği tanımlar. testDevices seçeneği ise test cihazlarına ait UDID değerlerini bulundurur. Tanımladığınız test cihazları mutlaka reklam alır, ancak bu reklamlar için gelir elde edemezsiniz. Buraya UDID değerini bildiğiniz cihazları NSString tipinde ekleyebilirsiniz.

2) GADBannerView ile bir reklam ekranı oluşturulur. Biz ekranın alt kısmında yer alacak 320 x 50 ebatlarında bir reklam alanı oluşturduk. Siz de ihtiyacınıza göre ekran yerini değiştirebilirsiniz.

3) adUnitId Admob tarafında uygulamanıza özel verilmiş bir değerdir. Bu değer sayesinde gelen reklamlardan gelir elde edersiniz. Eğer bu değeri bilmiyorsanız AdMob yönetim panelinde uygulama özellikleri içinde bulabilirsiniz.

4) Delegate atamasından sonra addSubview ile reklam alanı mevcut ekran içine eklenmiş olur.

5) loadRequest metodu AdMob sunucularına bir reklam isteği gerçekleştirir. Bu istek sonrasında sunucu bize bir reklam görüntüleyecektir.

Şimdi delegate metodlarını inceleyelim;

 

 - (void) adViewDidReceiveAd:(GADBannerView *)view
{
    NSLog(@"adViewDidReceiveAd");
}
- (void) adView:(GADBannerView *)view didFailToReceiveAdWithError:(GADRequestError *)error
{
    NSLog(@"%@",[error description]);
}

 

Yapılan istekten sonra başarılı bir şekilde reklam döndürülürse adViewDidReceiveAd metodu tetiklenecektir. Reklam ulaşmadığı zaman ise didFailToReceiveAdWithError metodu devreye girer. Reklamın yüklenemediği durumlarda reklam alanını ekrandan removeFromSuperview metoduyla kaldırmak isteyebilirsiniz. Yukarıdaki örnekte reklam durumu konsola yazılmaktadır. Eğer reklamların başarısını arttırmak istiyorsanız GADRequest nesnesine kullanıcıyla ya da uygulamayla ilgili daha çok bilgi vermeniz gerekir. Burada kullanabileceğiniz yöntemlere göz atarsak;

 

[request setGender:kGADGenderMale];
[request setBirthday:[NSDate date]];
[request setKeywords:[NSArray arrayWithObjects:@"öğrenci", nil]];
[request setLocationWithLatitude:41 longitude:29 accuracy:1];

 

- setGender: kullanıcının cinsiyetini belirtebilirsiniz.

- setBirthday: doğum günü tarihini ekleyebilirsiniz.

- setKeywords: kullanıcının ilgi alanına uygun reklam getirmek için anahtar kelimeler ekleyebilirsiniz. (Örneğin oyun)

- setLocation: kullanıcının pozisyonunu enlem ve boylam olarak gönderebilirsiniz.

Eğer AdMob’la ilgili daha fazla bilgi almak ve SDK’nın diğer özelliklerini öğrenmek istiyorsanız  web sitesine göz atmanızı öneririz