Doğal reklamlar, platforma özgü kullanıcı arayüzü bileşenleri aracılığıyla kullanıcılara sunulan reklam öğeleridir. Bunlar, halihazırda storyboard'larınızda kullandığınız sınıflar kullanılarak gösterilir ve uygulamanızın görsel tasarımına uyacak şekilde biçimlendirilebilir.
Bir doğal reklam yüklendiğinde uygulamanız, öğelerini içeren bir reklam nesnesi alır. Bu öğelerin gösterilmesinden Google Mobile Ads SDK'sı değil, uygulama sorumludur.
Genel olarak, yerel reklamları başarılı bir şekilde uygulamak için iki bölüm vardır: SDK'yı kullanarak 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
- Başlangıç kılavuzunu tamamlayın.
Her zaman test reklamlarıyla test yapın
Uygulamalarınızı oluşturup test ederken canlı yayınlanan üretim reklamları yerine test reklamlarını kullandığınızdan emin olun.
Test reklamlarını yüklemenin en kolay yolu, iOS'teki yerel reklamlar için özel test reklam birimi kimliğimizi kullanmaktır:
ca-app-pub-3940256099942544/3986624511
Bu kimlik, 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 bu kimliği 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 nasıl çalıştığı hakkında daha fazla bilgi için Test reklamları başlıklı makaleyi inceleyin.
Reklam yükleme
Yerel reklamlar, GADAdLoader
sınıfıyla yüklenir. Bu sınıf, GADAdLoaderDelegate
protokolüne göre temsilcilerine mesaj gönderir.
Reklam yükleyiciyi başlatma
Reklam yükleyebilmek için reklam yükleyiciyi başlatmanız gerekir.
Aşağıdaki kodda, GADAdLoader
nasıl başlatılacağı gösterilmektedir:
Swift
adLoader = AdLoader(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 istemek istediğinizi belirtmek için adTypes
dizisine iletilecek sabitlere ve options
parametresinde ayarlamak istediğiniz tüm seçeneklere ihtiyacınız vardır. options
parametresi için olası değerlerin listesini Yerel Reklam Seçeneklerini Ayarlama sayfasında bulabilirsiniz.
adTypes
dizisi şu sabiti içermelidir :
Reklam yükleyici temsilcisini uygulama
Reklam yükleyici temsilcisinin, reklam türünüze özel protokolleri uygulaması gerekir.
Yerel reklamlar için GADNativeAdLoaderDelegate
protokolü, bir yerel reklam yüklendiğinde temsilciye gönderilen bir mesaj içerir.
Swift
public func adLoader(_ adLoader: AdLoader,
didReceive nativeAd: NativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
Reklam isteğinde bulun
GADAdLoader
başlatıldıktan sonra reklam isteğinde bulunmak için loadRequest:
yöntemini çağırın:
Swift
adLoader.load(Request())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
loadRequest:
içindeki
GADAdLoader
yöntemi, banner'lar ve geçiş reklamlarıyla aynı
GADRequest
nesnelerini kabul eder. Diğer reklam türlerinde olduğu gibi, hedefleme bilgileri eklemek için istek nesnelerini kullanabilirsiniz.
Birden çok reklam yükleme (isteğe bağlı)
Tek bir istekte birden fazla reklam yüklemek için GADAdLoader
başlatılırken GADMultipleAdsAdLoaderOptions
nesnesini ayarlayın.
Swift
let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = AdLoader(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ıdı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ü şu anda birden fazla yerel reklam isteği, uyumlulaştırma için yapılandırılmış reklam birimi kimliklerinde çalışmamaktadır.
Yüklemenin ne zaman tamamlandığını belirleme
Bir uygulama loadRequest:
işlevini çağırdıktan sonra aşağıdaki işlevleri çağırarak isteğin sonuçlarını alabilir:
adLoader:didFailToReceiveAdWithError:
GADAdLoaderDelegate
adLoader:didReceiveNativeAd:
GADNativeAdLoaderDelegate
Tek bir reklam isteği, bu yöntemlerden birine yapılan tek bir çağrıyla sonuçlanır.
Birden fazla reklam isteği, yukarıdaki yöntemlere en az bir geri çağırma ile sonuçlanır ancak istenen reklamların maksimum sayısından fazla geri çağırma olmaz.
Ayrıca GADAdLoaderDelegate
, adLoaderDidFinishLoading
geri aramayı sunar. Bu temsilci yöntemi, bir reklam yükleyicinin reklam yüklemeyi tamamladığını 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 yöntemi nasıl kullanacağınıza dair bir örnek verilmiştir:
Swift
class ViewController: UIViewController, NativeAdLoaderDelegate {
var adLoader: GADAdLoader!
override func viewDidLoad() {
super.viewDidLoad()
let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = AdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ multipleAdOptions ])
adLoader.delegate = self
adLoader.load(Request())
}
func adLoader(_ adLoader: AdLoader,
didReceive nativeAd: NativeAd) {
// A native ad has loaded, and can be displayed.
}
func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
// 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üklenemediğinde gönderilen bir mesajı tanımlayan GADAdLoaderDelegate
protokolünü genişletir.
Swift
public func adLoader(_ adLoader: AdLoader,
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 temsilci özelliğini ayarlayın:
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
Ardından, aşağıdaki temsilci çağrılarını almak için
GADNativeAdDelegate
uygulayın:
Swift
func nativeAdDidRecordImpression(_ nativeAd: NativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: NativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: NativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: NativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
// 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
Reklam yüklerken aşağıdaki kurallara uyun.
Bir listede doğal reklamlar 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.
adLoaderDidFinishLoading:
ile belirtildiği gibi, önceki istek yüklenene kadarGADAdLoader
üzerindeloadRequest:
'ı tekrar çağırmayın.Yerel reklam önbelleğe almayı yalnızca gerekli olanlarla sınırlayın. Örneğin, önceden önbelleğe alma 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ılmadığında doğal reklamları yok edin.
Reklamınızı görüntüleme
Bir reklamı yükledikten sonra yapmanız gereken tek şey, bu reklamı kullanıcılarınıza göstermektir. Nasıl yapılacağını öğrenmek için Native Advanced kılavuzumuza göz atın.