Doğal reklamlar

Doğal reklamlar, platforma özgü kullanıcı arayüzü bileşenleri aracılığıyla kullanıcılara sunulan reklam öğeleridir. Bunlar, taslak panolarınızda kullandığınız sınıflarla gösterilir ve uygulamanızın görsel tasarımıyla eşleşecek şekilde biçimlendirilebilir.

Bir doğal reklam yüklendiğinde uygulamanız, öğelerini içeren bir reklam nesnesi alır ve bu öğeleri göstermekten Google Mobile Ads SDK'sı yerine uygulama sorumlu olur.

Genel olarak, doğal reklamları başarılı bir şekilde uygulamanın iki bölümü vardır: SDK'yı kullanarak bir reklam yükleme ve ardından reklam içeriğini uygulamanızda görüntüleme.

Bu sayfada, yerel reklamları yüklemek için SDK'nın nasıl kullanılacağı gösterilmektedir.

Ön koşullar

Her zaman test reklamlarıyla test yapın

Uygulamalarınızı oluşturup test ederken canlı üretim reklamları yerine test reklamları kullandığınızdan emin olun.

Test reklamları yüklemenin en kolay yolu, iOS'teki doğal reklamlar için özel test reklam birimi kimliğimizi kullanmaktır:

ca-app-pub-3940256099942544/3986624511

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

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

Reklam yükleme

Yerel reklamlar, GADAdLoaderDelegate protokolüne göre temsilcilerine mesaj gönderen GADAdLoader sınıfıyla yüklenir.

Reklam yükleyiciyi başlatma

Reklam yükleyebilmek için reklam yükleyiciyi başlatmanız gerekir. Aşağıdaki kodda, bir GADAdLoader öğesinin nasıl başlatılacağı gösterilmektedir:

Swift

adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    // The UIViewController parameter is optional.
    rootViewController: rootViewController,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    // The UIViewController parameter is nullable.
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

Bir reklam birimi kimliğine (test kimliğini kullanabilirsiniz), hangi doğal biçimleri istediğinizi belirtmek için adTypes dizisine iletilecek sabitlere ve options parametresinde ayarlamak istediğiniz seçeneklere ihtiyacınız vardır. options parametresi için olası değerlerin listesini Doğal Reklam Seçenekleri sayfasında bulabilirsiniz.

adTypes dizisi şu sabit değeri içermelidir :

Reklam yükleyici temsilcisini uygulama

Reklam yükleyici temsilcisinin, reklam türünüze özgü protokolleri uygulaması gerekir. Yerel reklamlar için GADNativeAdLoaderDelegate protokolü, yerel reklam yüklendiğinde temsilciye gönderilen bir mesaj içerir.

Swift

public func adLoader(_ adLoader: GADAdLoader,
            didReceive nativeAd: GADNativeAd)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd;

Reklam isteğinde bulun

GADAdLoader başlatıldıktan sonra reklam istemek için loadRequest: yöntemini çağırın:

Swift

adLoader.load(GADRequest())

Objective-C

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

GADAdLoader bölümündeki loadRequest: yöntemi, banner'lar ve geçiş reklamlarıyla aynı GADRequest nesneleri kabul eder. Diğer reklam türlerinde yaptığınız gibi hedefleme bilgileri eklemek için istek nesnelerini kullanabilirsiniz.

Birden çok reklam yükleme (isteğe bağlı)

Tek bir isteğe birden fazla reklam yüklemek için GADAdLoader başlatırken GADMultipleAdsAdLoaderOptions nesnesini ayarlayın.

Swift

let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    // The UIViewController parameter is optional.
    rootViewController: self,
    adTypes: [ .native ],
    options: [ multipleAdOptions ])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
    [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    // The UIViewController parameter is nullable.
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ multipleAdsOptions ]];

İstek başına reklam sayısı beş ile sınırlıdır ve SDK'nın istenen reklam sayısını tam olarak döndüreceği garanti edilmez.

Döndürülen Google reklamlarının tümü birbirinden farklı olacaktır ancak ayrılmış envanterden veya üçüncü taraf alıcılardan gelen reklamların benzersiz olması garanti edilmez.

Uyumlulaştırma kullanıyorsanız GADMultipleAdsAdLoaderOptions sınıfını kullanmayın. Çünkü birden fazla yerel reklam isteği, uyumlulaştırma için yapılandırılmış reklam birimi kimliklerinde şu anda kullanılamaz.

Yüklemenin ne zaman bittiğini belirleme

Bir uygulama loadRequest:'ü çağırdıktan sonra aşağıdaki çağrıları kullanarak isteğin sonuçlarını alabilir:

Tek bir reklam isteği, bu yöntemlerden birine tek bir çağrıyla sonuçlanır.

Birden fazla reklam isteği, yukarıdaki yöntemlere en az bir geri çağırmayla sonuçlanır ancak istenen maksimum reklam sayısından fazla olmaz.

Ayrıca GADAdLoaderDelegate, adLoaderDidFinishLoading geri çağırma işlevini sunar. Bu temsilci yöntemi, bir reklam yükleyicinin reklamları yüklemeyi bitirdiğini ve istek için başka reklam veya hata bildirilmeyeceğini gösterir. Aşağıda, aynı anda birden fazla doğal reklam yüklerken bu özelliğin nasıl kullanılacağına dair bir örnek verilmiştir:

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdOptions.numberOfAds = 5;
    adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
        // The UIViewController parameter is optional.
        rootViewController: rootViewController,
        adTypes: [ .native ],
        options: [ multipleAdOptions ])

    adLoader.delegate = self
    adLoader.load(GADRequest())
  }

  func adLoader(_ adLoader: GADAdLoader,
       didReceive nativeAd: GADNativeAd) {
    // A native ad has loaded, and can be displayed.
  }

  func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
    // The adLoader has finished loading ads, and a new request can be sent.
  }

}

Objective-C

@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
      [[GADMultipleAdsAdLoaderOptions alloc] init];
  multipleAdsOptions.numberOfAds = 5;
  self.adLoader = [[GADAdLoader alloc]
        initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
      // The UIViewController parameter is nullable.
      rootViewController:rootViewController
                 adTypes:@[ GADAdLoaderAdTypeNative ]
                 options:@[ multipleAdsOptions ]];

  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GADRequest request]];
}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // A native ad has loaded, and can be displayed.
}

- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
  // The adLoader has finished loading ads, and a new request can be sent.
}

@end

Başarısız istekleri işleme

Yukarıdaki protokoller, reklamlar yüklenemezse gönderilen bir mesajı tanımlayan GADAdLoaderDelegate protokolünü genişletir.

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didFailToReceiveAdWithError error: NSError)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

Yerel reklam etkinlikleri hakkında bildirim alma

Yerel reklam etkileşimleriyle ilgili etkinliklerden haberdar olmak için yerel reklamın delegate mülkünü ayarlayın:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Ardından, aşağıdaki temsilci aramalarını almak için GADNativeAdDelegate uygulayın:

Swift

func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

Objective-C

- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
  // The native ad was shown.
}

- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  // The native ad was clicked on.
}

- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
  // The native ad will present a full screen view.
}

- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad will dismiss a full screen view.
}

- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad did dismiss a full screen view.
}

- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

En iyi uygulamalar

Reklamları yüklerken bu kurallara uyun.

  • Bir listede doğal reklam kullanan uygulamalar, reklam listesini önceden önbelleğe almalıdır.

  • Reklamları önceden önbelleğe alırken önbelleğinizi temizleyin ve bir saat sonra yeniden yükleyin.

  • Önceki istek yüklenmeyi tamamlayana kadar GADAdLoader üzerinde loadRequest:'ü tekrar çağırmayın (adLoaderDidFinishLoading: ile gösterilir).

  • Yerel reklam önbelleğe alma işlemini yalnızca gerekli olanla sınırlayın. Örneğin, önbelleğe alma işlemi sırasında yalnızca ekranda hemen görünen reklamları önbelleğe alın. Yerel reklamlar büyük bir bellek alanı kaplar ve yerel reklamları yok etmeden önbelleğe almak aşırı bellek kullanımına neden olur.

  • Artık kullanılmayan doğal reklamları yok edin.

Reklamınızı gösterme

Bir reklamı yükledikten sonra tek yapmanız gereken, reklamı kullanıcılarınıza göstermektir. Nasıl yapılacağını öğrenmek için yerel reklamlar ile ilgili ileri seviye kılavuzumuzu inceleyin.