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ış bölümüne bakın.

Bu kılavuzda, belirttiğiniz reklam genişliğini kullanarak her cihaz için reklam boyutunu 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ılabilecek tam genişliği belirtmenizin ardından, size bu genişliğe uygun optimum yüksekliğe sahip bir reklam döndürür. Optimum yükseklik, aynı cihazdan yapılan istekler arasında değişmez ve reklam yenilendiğinde etrafındaki görünümlerin taşınması gerekmez.

Ön koşullar

Her zaman test reklamlarıyla test etme

Uygulamalarınızı oluşturup 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'lar için özel test reklam birimi kimliğimizi kullanmaktır: ca-app-pub-3940256099942544/2435281174

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 özelliği kendi uygulamalarınızda kullanabilirsiniz. Bunun için uygulamanızı yayınlamadan önce bunu kendi reklam birimi kimliğinizle değiştirmeniz yeterlidir.

Mobile Ads SDK'sının test reklamlarının işleyiş şekli hakkında daha fazla bilgi için Test Reklamları konusuna bakın.

Bir GADBannerViewoluşturun

Banner reklamlar GADBannerView nesneleri halinde görüntülendiğinden, 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 aracılığıyla yapılır.

Programatik olarak

GADBannerView dosyası doğrudan da örneklenebilir. Ekranın güvenli alanının alt orta kısmına hizalanmış bir GADBannerView özelliğinin nasıl oluşturulacağına ilişkin örneği burada 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ün boyutlandırılması için banner'a doğal bir içerik boyutu vereceğinden genişlik veya yükseklik kısıtlaması yapmayız.

Arayüz Oluşturucu

GADBannerView, resimli taslak veya xib dosyasına eklenebilir. Bu yöntemi kullanırken banner'a yalnızca konum kısıtlamaları 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ına, ortadaki X değerini ise üst görüntülemenin ortadaki X değerine ayarlayın.

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

Swift

  bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth)

Objective-C

  self.bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth);

Reklam yükle

GADBannerView uygulandıktan ve özellikleri yapılandırıldıktan sonra sıra reklam yüklenir. Bu işlem, GADRequest nesnesinde loadRequest: çağrısı yapılarak 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 şeylere ilişkin özellikler içerir.

Reklamınız yüklenemezse reklam biriminizi yenilenecek şekilde yapılandırdığınız sürece açıkça başka bir reklam isteğinde bulunmanız gerekmez. Google Mobile Ads SDK'sı, AdMobkullanıcı arayüzünde belirttiğiniz yenileme hızına uyar. Yenilemeyi etkinleştirmediyseniz yeni bir istek göndermeniz gerekir.

Reklam etkinlikleri

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

Banner etkinliklerine kaydolma

Banner reklam etkinliklerine kaydolmak için GADBannerView sitesindeki delegate özelliğini, GADBannerViewDelegate protokolünü uygulayan bir nesne olarak ayarlayın. Genel olarak, banner reklamları uygulayan sınıf aynı zamanda yetki verilen sınıf olarak da işlev 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 etkinlikleri uygulama

GADBannerViewDelegate içindeki yöntemlerin her biri isteğe bağlı olarak işaretlenmiştir. Bu nedenle, yalnızca istediğiniz yöntemleri uygulamanız gerekir. Bu örnekte her yöntem uygulanır ve konsola bir mesaj kaydedilir:

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 Temsilcisi örneğini inceleyin.

Swift Hedef-C

Kullanım alanları

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

Reklam alındıktan sonra görünüm hiyerarşisine banner ekleme

Görünüm hiyerarşisine GADBannerView 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 reklam animasyonu

Aşağıdaki örnekte gösterildiği gibi, döndürülen banner reklama animasyon eklemek için 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 kapatılmasına neden olması gibi etkinlikler hakkında sizi bilgilendirecek yöntemlere sahiptir. Bu etkinliklerin reklamlardan kaynaklanıp kaynaklanmadığını takip etmek istiyorsanız bu GADBannerViewDelegate yöntemleri için kaydolun.

Yalnızca reklam tıklamalarından gelenleri değil, tüm yer paylaşımlı sunumları veya harici tarayıcı çağrılarını yakalamak için uygulamanızın UIViewController veya UIApplication üzerindeki eşdeğer yöntemleri dinlemesi daha iyidir. 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: öğesi
bannerViewWillDismissScreen: UIViewController'ın viewWillAppear: öğesi
bannerViewDidDismissScreen: UIViewController'ın viewDidAppear: öğesi

Ek kaynaklar

GitHub'daki örnekler

Sonraki adımlar

Daraltılabilir banner'lar

Daraltılabilir banner reklamlar, başlangıçta reklamı daha küçük bir boyuta daraltmak için bir düğmenin yer aldığı daha büyük bir yer paylaşımı olarak sunulan banner reklamlardır. Performansınızı daha da optimize etmek için bu rapordan yararlanabilirsiniz. Daha fazla bilgi 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. Değişken yükseklikte ve cihaz ekranı kadar uzun olabilir. Satır içi uyarlanabilir banner'lar, kaydırılabilir içeriğe banner reklam yerleştiren uygulamalar için sabit uyarlanabilir banner reklamların yerine ö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