Banner Reklamlar

Banner reklamlar, uygulama düzeninin bir kısmını kaplayan dikdörtgen reklamlardır. Bunlar, kullanıcılar uygulama ile etkileşimde bulunurken ekranın üst veya alt kısmına sabitlenmiş olarak ya da kullanıcı sayfayı kaydırırken içerikle satır içi şekilde kalır. Banner reklamlar, belirli bir süre sonra otomatik olarak yenilenebilir. Daha fazla bilgi için Banner reklamlara genel bakış konusunu inceleyin.

Bu kılavuzda, belirlediğiniz reklam genişliğini kullanarak reklam boyutunu her cihaz için optimize ederek performansı en üst düzeye çıkaran sabit uyarlanabilir banner reklamlarıkullanmaya nasıl başlayacağınız gösterilmektedir.

Sabit uyarlanabilir banner

Sabit uyarlanabilir banner reklamlar, normal sabit boyutlu reklamlar yerine sabit en boy oranlı reklamlardır. En boy oranı, 320*50 endüstri standardına benzer. Kullanılabilir tam genişliği belirttiğinizde, bu genişlik için optimum yüksekliğe sahip bir reklam döndürülür. Optimum yükseklik aynı cihazdan yapılan istekler arasında değişmez ve reklam yenilendiğinde etrafındaki görünümlerin hareket etmesi gerekmez.

Ön koşullar

Her zaman test reklamlarıyla test etme

Uygulamalarınızı oluştururken ve test ederken canlı, üretim reklamları yerine test reklamlarını kullandığınızdan emin olun. Aksi takdirde hesabınız askıya alınabilir.

Test reklamlarını yüklemenin en kolay yolu, iOS banner'lara özel test reklam birimi kimliğimizi kullanmaktır: ca-app-pub-3940256099942544/2435281174

Bu kod, her istek için test reklamı döndürecek şekilde özel olarak yapılandırılmıştır. Kodlama, test etme ve hata ayıklama sırasında bu reklam öğesini kendi uygulamalarınızda kullanabilirsiniz. Uygulamanızı yayınlamadan önce bu kimliği kendi reklam birimi kimliğinizle değiştirdiğinizden emin olmanız yeterlidir.

Mobile Ads SDK'sının test reklamlarının nasıl çalıştığı hakkında daha fazla bilgi için Reklamları Test Etme bölümüne bakın.

GADBannerViewoluşturun

Banner reklamlar, GADBannerView nesnelerinde gösterilir. Bu nedenle, banner reklamları entegre etmenin ilk adımı, görünüm hiyerarşinize bir GADBannerView eklemektir. Bu işlem genellikle programatik olarak veya Arayüz Oluşturucu üzerinden yapılır.

Programlı olarak

Bir GADBannerView doğrudan örneklenebilir. Ekrandaki güvenli alanın alt orta kısmına hizalı bir GADBannerView öğesinin nasıl oluşturulacağına ilişkin bir örneği aşağıda bulabilirsiniz:

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  var bannerView: GADBannerView!

  override func viewDidLoad() {
    super.viewDidLoad()
    
    let viewWidth = view.frame.inset(by: view.safeAreaInsets).width

    // Here the current interface orientation is used. Use
    // GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth or
    // GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth if you prefer to load an ad of a
    // particular orientation,
    let adaptiveSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth)
    bannerView = GADBannerView(adSize: adaptiveSize)

    addBannerViewToView(bannerView)
  }

  func addBannerViewToView(_ bannerView: GADBannerView) {
    bannerView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(bannerView)
    view.addConstraints(
      [NSLayoutConstraint(item: bannerView,
                          attribute: .bottom,
                          relatedBy: .equal,
                          toItem: view.safeAreaLayoutGuide,
                          attribute: .bottom,
                          multiplier: 1,
                          constant: 0),
       NSLayoutConstraint(item: bannerView,
                          attribute: .centerX,
                          relatedBy: .equal,
                          toItem: view,
                          attribute: .centerX,
                          multiplier: 1,
                          constant: 0)
      ])
   }
   
}

Objective-C

@import GoogleMobileAds;

@interface ViewController ()

@property(nonatomic, strong) GADBannerView *bannerView;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  
  // Here safe area is taken into account, hence the view frame is used after the
  // view has been laid out.
  CGRect frame = UIEdgeInsetsInsetRect(self.view.frame, self.view.safeAreaInsets);
  CGFloat viewWidth = frame.size.width;

  // Here the current interface orientation is used. If the ad is being preloaded
  // for a future orientation change or different orientation, the function for the
  // relevant orientation should be used.
  GADAdSize adaptiveSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth);
  // In this case, we instantiate the banner with desired ad size.
  self.bannerView = [[GADBannerView alloc] initWithAdSize:adaptiveSize];

  [self addBannerViewToView:self.bannerView];
}

- (void)addBannerViewToView:(UIView *)bannerView {
  bannerView.translatesAutoresizingMaskIntoConstraints = NO;
  [self.view addSubview:bannerView];
  [self.view addConstraints:@[
    [NSLayoutConstraint constraintWithItem:bannerView
                               attribute:NSLayoutAttributeBottom
                               relatedBy:NSLayoutRelationEqual
                                  toItem:self.view.safeAreaLayoutGuide
                               attribute:NSLayoutAttributeBottom
                              multiplier:1
                                constant:0],
    [NSLayoutConstraint constraintWithItem:bannerView
                               attribute:NSLayoutAttributeCenterX
                               relatedBy:NSLayoutRelationEqual
                                  toItem:self.view
                               attribute:NSLayoutAttributeCenterX
                              multiplier:1
                                constant:0]
                                ]];
}
  
@end

Bu durumda, sağlanan reklam boyutu banner'a, görünümü boyutlandırmak için içsel bir içerik boyutu vereceğinden, genişlik veya yükseklik sınırlamaları vermediğimizi unutmayın.

Arayüz Oluşturucu

GADBannerView, resimli taslak veya xib dosyasına eklenebilir. Bu yöntemi kullanırken, yalnızca banner'a konum sınırlamaları eklediğinizden emin olun. Örneğin, ekranın alt kısmında uyarlanabilir bir banner görüntülerken banner görünümünün alt kısmını Alt Düzen Kılavuzu'nun üst kısmıyla ve orta X eksenini üst görünümün orta X'ine eşit olacak şekilde ayarlayın.

Banner'ın reklam boyutu yine de programatik olarak ayarlanır:

Swift

  bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth)

Objective-C

  self.bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth);

Reklam yükle

GADBannerView yerleştirildikten ve özellikleri yapılandırıldıktan sonra sıra reklam yüklemeye gelir. Bu, bir GADRequest nesnesinde loadRequest: çağrısıyla gerçekleştirilir:

Swift

override func viewDidLoad() {
  super.viewDidLoad()
  ...
  
  //  Set the ad unit ID and view controller that contains the GADBannerView.
  bannerView.adUnitID = "ca-app-pub-3940256099942544/2435281174"
  bannerView.rootViewController = self

  bannerView.load(GADRequest())
}

Objective-C

-   (void)viewDidLoad {
  [super viewDidLoad];
  ...
  
  //  Set the ad unit ID and view controller that contains the GADBannerView.
  self.bannerView.adUnitID = @"ca-app-pub-3940256099942544/2435281174";
  self.bannerView.rootViewController = self;

  [self.bannerView loadRequest:[GADRequest request]];
}

GADRequest nesneler, tek bir reklam isteğini temsil eder ve hedefleme bilgileri gibi şeylerle ilgili özellikler içerir.

Reklamınız yüklenemiyorsa reklam biriminizi yenilenecek şekilde yapılandırdığınız sürece açıkça başka bir reklam istemenize gerek yoktur. Google Mobile Ads SDK'sı, kullanıcı arayüzünde belirttiğiniz yenileme hızına AdMobuyar. Yenilemeyi etkinleştirmediyseniz yeni bir istek göndermeniz gerekir.

Reklam etkinlikleri

Bir reklamın kapatılması veya kullanıcının uygulamadan ayrılması gibi yaşam döngüsü olaylarını GADBannerViewDelegate kullanarak dinleyebilirsiniz.

Banner etkinliklerine kaydolma

Banner reklam etkinliklerine kaydolmak için GADBannerView öğesindeki delegate özelliğini, GADBannerViewDelegate protokolünü uygulayan bir nesneye ayarlayın. Genellikle banner reklamları uygulayan sınıf, yetki verilmiş sınıf görevi de görür. Bu durumda, delegate özelliği self olarak ayarlanabilir.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController, GADBannerViewDelegate {

  var bannerView: GADBannerView!

  override func viewDidLoad() {
    super.viewDidLoad()
    ...
    bannerView.delegate = self
  }
}

Objective-C

@import GoogleMobileAds;

@interface ViewController () <GADBannerViewDelegate>

@property(nonatomic, strong) GADBannerView *bannerView;

@end

@implementation ViewController

-   (void)viewDidLoad {
  [super viewDidLoad];
  ...
  self.bannerView.delegate = self;
}

Banner etkinliklerini uygulama

GADBannerViewDelegate kapsamındaki yöntemlerin her biri isteğe bağlı olarak işaretlendiğinden yalnızca istediğiniz yöntemleri uygulamanız gerekir. Bu örnek, her yöntemi uygular ve konsola bir mesaj kaydeder:

Swift

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  print("bannerViewDidReceiveAd")
}

func bannerView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: Error) {
  print("bannerView:didFailToReceiveAdWithError: \(error.localizedDescription)")
}

func bannerViewDidRecordImpression(_ bannerView: GADBannerView) {
  print("bannerViewDidRecordImpression")
}

func bannerViewWillPresentScreen(_ bannerView: GADBannerView) {
  print("bannerViewWillPresentScreen")
}

func bannerViewWillDismissScreen(_ bannerView: GADBannerView) {
  print("bannerViewWillDIsmissScreen")
}

func bannerViewDidDismissScreen(_ bannerView: GADBannerView) {
  print("bannerViewDidDismissScreen")
}

Objective-C

-   (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidReceiveAd");
}

-   (void)bannerView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(NSError *)error {
  NSLog(@"bannerView:didFailToReceiveAdWithError: %@", [error localizedDescription]);
}

-   (void)bannerViewDidRecordImpression:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidRecordImpression");
}

-   (void)bannerViewWillPresentScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewWillPresentScreen");
}

-   (void)bannerViewWillDismissScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewWillDismissScreen");
}

-   (void)bannerViewDidDismissScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidDismissScreen");
}

iOS API Demo uygulamasında banner yetkilendirme yöntemlerinin uygulanması için Reklam Yetkisi örneğine bakın.

Swift Objective-C

Kullanım alanları

Aşağıda, bu reklam etkinliği yöntemlerinin bazı örnek kullanım alanları verilmiştir.

Reklam alındığında görünüm hiyerarşisine banner ekleme

Bir GADBannerView öğesini görünüm hiyerarşisine eklemeyi bir reklam alınana kadar ertelemek isteyebilirsiniz. Bunu bannerViewDidReceiveAd: etkinliğini dinleyerek yapabilirsiniz:

Swift

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  // Add banner to view and add constraints as above.
  addBannerViewToView(bannerView)
}

Objective-C

-   (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  // Add bannerView to view and add constraints as above.
  [self addBannerViewToView:self.bannerView];
}

Banner reklama animasyon ekleme

Döndürülen bir banner reklamın animasyonu için aşağıdaki örnekte gösterildiği gibi bannerViewDidReceiveAd: etkinliğini de kullanabilirsiniz:

Swift

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  bannerView.alpha = 0
  UIView.animate(withDuration: 1, animations: {
    bannerView.alpha = 1
  })
}

Objective-C

-   (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  bannerView.alpha = 0;
  [UIView animateWithDuration:1.0 animations:^{
    bannerView.alpha = 1;
  }];
}

Uygulamayı duraklatma ve devam ettirme

GADBannerViewDelegate protokolü, bir tıklamanın yer paylaşımının sunulmasına veya reddedilmesine neden olması gibi etkinlikleri size bildiren yöntemlere sahiptir. Bu etkinliklerin reklamlardan kaynaklanıp kaynaklanmadığını izlemek istiyorsanız bu GADBannerViewDelegate yöntemleri için kaydolun.

Uygulamanızın, yalnızca reklam tıklamalarından gelenleri değil, tüm yer paylaşımlı sunuları veya harici tarayıcı çağrılarını yakalamak için UIViewController veya UIApplication üzerindeki eşdeğer yöntemleri dinlemesi daha iyi olur. GADBannerViewDelegate yöntemleriyle aynı anda çağrılan eşdeğer iOS yöntemlerini gösteren bir tablo aşağıda verilmiştir:

GADBannerViewDelegate yöntemi iOS yöntemi
bannerViewWillPresentScreen: UIViewController'ın viewWillDisappear: özelliği
bannerViewWillDismissScreen: UIViewController'ın viewWillAppear: özelliği
bannerViewDidDismissScreen: UIViewController'ın viewDidAppear: özelliği

Ek kaynaklar

GitHub'daki örnekler

Sonraki adımlar

Daraltılabilir banner'lar

Daraltılabilir banner reklamlar, başlangıçta daha büyük bir yer paylaşımı olarak sunulan ve reklamı daha küçük bir boyuta daraltmayı sağlayan bir düğmeyle sunulan banner reklamlardır. Performansınızı daha da optimize etmek için bu özelliği kullanabilirsiniz. Daha fazla ayrıntı için daraltılabilir banner reklamlar konusuna bakın.

Satır içi uyarlanabilir banner'lar

Satır içi uyarlanabilir banner'lar, sabit uyarlanabilir banner'lara kıyasla daha büyük ve daha uzundur. Ekranların yüksekliği değişkendir ve cihaz ekranı kadar yüksek olabilir. Kaydırılabilir içeriğe banner reklam yerleştiren uygulamalarda, sabit uyarlanabilir banner reklamlara kıyasla satır içi uyarlanabilir banner'ların kullanılması önerilir. Daha fazla ayrıntı için satır içi uyarlanabilir banner'lar bölümüne bakın.

Diğer konuları keşfedin