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
- Başlangıç kılavuzunu tamamlayın.
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.
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
- Sabit uyarlanabilir banner reklam örneği: Swift | Objective-C
- İleri seviye özellikler demosu: Swift | Objective-C
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.