Banner reklamları oluşturma

Banner reklamlar uygulama düzeninin bir kısmını kaplayan dikdörtgen reklamlardır. Sabit uyarlanabilir banner'lar her zaman ekrandadır. Ekran boyutunun% 20'si kadar maksimum yükseklikle (maksimum yükseklik 150 piksel) ekranın en üstüne veya en altına sabitlenir. Reklam boyutunu her cihaz için optimize etmek istiyorsanız uyarlanabilir banner'ları kullanın.

Bu kılavuzda, sabit uyarlanabilir banner reklamın iOS uygulamasına yüklenmesi ele alınmaktadır.

Ön koşullar

Devam etmeden önce Google Mobile Ads SDK ayarlarını yapın.

Her zaman test reklamlarıyla test yapın

Uygulamalarınızı oluştururken ve test ederken yayındaki üretim reklamları yerine test reklamlarını kullandığınızdan emin olun. Bu koşula uymamanız halinde 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 reklamları döndürecek şekilde özel olarak yapılandırılmıştır ve kodlama, test etme ve hata ayıklama sırasında kendi uygulamalarınızda ücretsiz olarak kullanabilirsiniz. Uygulamanızı yayınlamadan önce bu kimliği kendi reklam birimi kimliğinizle değiştirdiğinizden emin olun.

Google Mobile Ads SDK test reklamlarının işleyiş şekli hakkında daha fazla bilgi için Test Reklamları başlıklı makaleyi inceleyin.

GADBannerView oluşturma

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 Interface Builder aracılığıyla yapılır.

Programatik olarak

Bir GADBannerView doğrudan da örneklenebilir. Aşağıdaki örnekte bir GADBannerView oluşturulmaktadır:

Swift

// Initialize the banner view.
bannerView = BannerView()
bannerView.delegate = self

bannerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bannerView)

// This example doesn't give width or height constraints, as the ad size gives the banner an
// intrinsic content size to size the view.
NSLayoutConstraint.activate([
  // Align the banner's bottom edge with the safe area's bottom edge
  bannerView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
  // Center the banner horizontally in the view
  bannerView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
])

SwiftUI

BannerView kullanmak için UIViewRepresentable oluşturun:

private struct BannerViewContainer: UIViewRepresentable {
  typealias UIViewType = BannerView
  let adSize: AdSize

  init(_ adSize: AdSize) {
    self.adSize = adSize
  }

  func makeUIView(context: Context) -> BannerView {
    let banner = BannerView(adSize: adSize)
    banner.adUnitID = "ca-app-pub-3940256099942544/2435281174"
    banner.load(Request())
    banner.delegate = context.coordinator
    return banner
  }

  func updateUIView(_ uiView: BannerView, context: Context) {}

  func makeCoordinator() -> BannerCoordinator {
    return BannerCoordinator(self)
  }

height ve width değerlerini belirterek UIViewRepresentable öğenizi görünüm hiyerarşisine ekleyin:

var body: some View {
  Spacer()
  // Request an anchored adaptive banner with a width of 375.
  let adSize = largeAnchoredAdaptiveBanner(width: 375)
  BannerViewContainer(adSize)
    .frame(width: adSize.size.width, height: adSize.size.height)
}

Objective-C

// Initialize the banner view.
GADBannerView *bannerView = [[GADBannerView alloc] init];
bannerView.delegate = self;
UIView *view = self.view;

bannerView.translatesAutoresizingMaskIntoConstraints = NO;
[view addSubview:bannerView];

// This example doesn't give width or height constraints, as the ad size gives the banner an
// intrinsic content size to size the view.
[NSLayoutConstraint activateConstraints:@[
  // Align the banner's bottom edge with the safe area's bottom edge
  [bannerView.bottomAnchor
      constraintEqualToAnchor:view.safeAreaLayoutGuide.bottomAnchor],
  // Center the banner horizontally in the view
  [bannerView.centerXAnchor constraintEqualToAnchor:view.centerXAnchor],
]];

self.bannerView = bannerView;

Interface Builder

Bir storyboard veya xib dosyasına GADBannerView ekleyebilirsiniz. Bu yöntemi kullanırken yalnızca banner'a konum kısıtlamaları eklediğinizden emin olun. Örneğin, ekranın alt kısmında uyarlanabilir banner gösterirken banner görünümünün alt kısmını Alt Düzen Kılavuzu'nun üst kısmına eşit olacak şekilde ayarlayın ve centerX kısıtlamasını üst görünümün centerX değerine eşit olacak şekilde ayarlayın.

Reklam boyutunu ayarlama

Büyük uyarlanabilir banner'lar, kaydırılmayan düzenler için tasarlanmış daha büyük bir biçim sunar. Bu banner'lar, standart sabit uyarlanabilir banner'lara kıyasla daha yüksek bir maksimum yüksekliğe (ekran yüksekliğinin% 20'sine kadar, 50 ile 150 nokta arasında) izin verir. Bu artırılmış alan, video içerikleri için optimize edilmiştir.

Aşağıdaki örnekte büyük bir sabit uyarlanabilir banner boyutu alınmaktadır:

Swift

// Request a large anchored adaptive banner with a width of 375.
bannerView.adSize = largeAnchoredAdaptiveBanner(width: 375)

Objective-C

// Request a large anchored adaptive banner with a width of 375.
self.bannerView.adSize = GADLargeAnchoredAdaptiveBannerAdSizeWithWidth(375);

Cihaz ekran boyutundan küçük veya ona eşit bir reklam boyutu ayarlayın. iOS 26 ve sonraki sürümlerde maksimum ekran boyutunu belirlemek için UIWindowScene.effectiveGeometry.coordinateSpace özelliğini kullanın. iOS 18 ve önceki sürümlerde UIWindowScene.coordinateSpace özelliğini kullanın. Boyut kısıtlamaları hakkında ayrıntılı bilgi için Reklam isteği boyutu koşulları başlıklı makaleyi inceleyin.

Reklam yükleme

GADBannerView yerleştirildikten ve adUnitID gibi özellikleri yapılandırıldıktan sonra reklam yükleme zamanı gelmiştir. Bu işlem, GADRequest nesnesinde loadRequest: çağrılarak yapılır:

Swift

func loadBannerAd(bannerView: BannerView) {
  // Request a large anchored adaptive banner with a width of 375.
  bannerView.adSize = largeAnchoredAdaptiveBanner(width: 375)
  bannerView.load(Request())
}

SwiftUI

banner.adUnitID = "ca-app-pub-3940256099942544/2435281174"
banner.load(Request())

Objective-C

// Request a large anchored adaptive banner with a width of 375.
self.bannerView.adSize = GADLargeAnchoredAdaptiveBannerAdSizeWithWidth(375);

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

GADRequest nesneleri tek bir reklam isteğini temsil eder ve hedefleme bilgileri gibi öğeler için özellikler içerir.

Reklamı yenileme

Reklam biriminizi yenilenecek şekilde yapılandırdıysanız reklam yüklenemediğinde başka bir reklam istemeniz gerekmez. Google Mobile Ads SDK, AdMob kullanıcı arayüzünde belirttiğiniz yenileme hızına uyar. Yenilemeyi etkinleştirmediyseniz yeni bir istek gönderin. Yenileme hızı ayarlama gibi reklam birimi yenileme hakkında daha fazla bilgi için Banner reklamlar için otomatik yenilemeyi kullanma başlıklı makaleyi inceleyin.

Yön değişikliklerini işleme

Uygulamanızın ekran yönü değiştiğinde (ör. portrait modundan yatay moda geçildiğinde) banner'ın kullanılabilir genişliği de genellikle değişir. Yeni düzende uygun boyutta bir reklam görüntülediğinizden emin olmak için yeni bir banner isteyin. Banner genişliğiniz statikse veya düzen kısıtlamalarınız yeniden boyutlandırmayı destekliyorsa bu adımı atlayın.

Swift

override func viewWillTransition(
  to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator
) {
  coordinator.animate(alongsideTransition: { _ in
    // Load a new ad for the new orientation.
  })
}

Objective-C

- (void)viewWillTransitionToSize:(CGSize)size
       withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
  [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {
    // Load a new ad for the new orientation.
  } completion:nil];
}

Reklam etkinlikleri

GADBannerViewDelegate kullanarak 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 delegate özelliğini GADBannerView üzerinde GADBannerViewDelegate protokolünü uygulayan bir nesneye ayarlayın. Genellikle banner reklamları uygulayan sınıf aynı zamanda temsilci sınıfı olarak da işlev görür. Bu durumda delegate özelliği self olarak ayarlanabilir.

Swift

bannerView.delegate = self

SwiftUI

banner.delegate = context.coordinator

Objective-C

bannerView.delegate = self;

Banner etkinliklerini uygulama

GADBannerViewDelegate bölümündeki 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: BannerView) {
  print("Banner ad loaded.")
}

func bannerView(_ bannerView: BannerView, didFailToReceiveAdWithError error: Error) {
  print("Banner ad failed to load: \(error.localizedDescription)")
}

func bannerViewDidRecordImpression(_ bannerView: BannerView) {
  print("Banner ad recorded an impression.")
}

func bannerViewDidRecordClick(_ bannerView: BannerView) {
  print("Banner ad recorded a click.")
}

func bannerViewWillPresentScreen(_ bannerView: BannerView) {
  print("Banner ad will present screen.")
}

func bannerViewWillDismissScreen(_ bannerView: BannerView) {
  print("Banner ad will dismiss screen.")
}

func bannerViewDidDismissScreen(_ bannerView: BannerView) {
  print("Banner ad did dismiss screen.")
}

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 temsilci yöntemlerinin uygulanması için Reklam Temsilcisi örneğine bakın.

Swift Objective-C

Kullanım alanları

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

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

Görünüm hiyerarşisine GADBannerView eklemeyi reklam alınana kadar erteleyebilirsiniz. Bunu, bannerViewDidReceiveAd: etkinliğini dinleyerek yapabilirsiniz:

Swift

func bannerViewDidReceiveAd(_ bannerView: BannerView) {
  // Add banner to view and add constraints.
  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

Ayrıca, aşağıdaki örnekte gösterildiği gibi, döndürüldükten sonra bir banner reklamı bir kez canlandırmak için bannerViewDidReceiveAd: etkinliğini de kullanabilirsiniz:

Swift

func bannerViewDidReceiveAd(_ bannerView: BannerView) {
  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ü, tıklama sonucunda bir yer paylaşımının gösterilmesi veya kapatılması gibi etkinlikler hakkında sizi bilgilendirme yöntemlerine sahiptir. Bu etkinliklerin reklamlardan kaynaklanıp kaynaklanmadığını izlemek istiyorsanız aşağıdaki GADBannerViewDelegate yöntemlere kaydolun.

Yalnızca reklam tıklamalarından gelenler değil, tüm yer paylaşımı sunumlarını 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 iyi olur. Aşağıdaki tabloda, GADBannerViewDelegate yöntemleriyle aynı anda çağrılan eşdeğer iOS yöntemleri gösterilmektedir:

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

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 daraltma düğmesi içeren banner reklamlardır. Performansınızı daha da optimize etmek için bu stratejiyi kullanabilirsiniz. Daha fazla bilgi için daraltılabilir banner reklamlar bölümüne 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 yüksek banner'lardır. Yükseklikleri değişkendir ve cihaz ekranı kadar uzun olabilirler. Banner reklamları kaydırılabilir içeriğe yerleştiren uygulamalar için sabit uyarlanabilir banner reklamlar yerine satır içi uyarlanabilir banner'lar önerilir. Daha fazla bilgi için satır içi uyarlanabilir banner'lar bölümüne bakın.

Diğer konuları keşfedin