Reklam önceden yükleme, Google Mobile Ads SDK içinde Google tarafından yönetilen bir reklam yükleme özelliğidir. Bu özellik, reklam yükleme ve önbelleğe alma işlemlerini sizin adınıza yönetir. Reklam önceden yükleme, reklam yüklemeyi yönetme şeklinizde bir değişiklik yapılmasını gerektirir. Reklam önceden yükleme özelliğini kullanarak performansı optimize etmek için özel önbelleğe almayı devre dışı bırakın ve bu sorumluluğu Google Mobile Ads SDK'ya devredin.
Reklam önceden yükleme, manuel reklam yüklemeye kıyasla aşağıdaki avantajları sunar:
- Referans yönetimi: Yüklenen reklamları tutar. Böylece, göstermeye hazır olana kadar referansları korumanız gerekmez.
- Otomatik yeniden yükleme: Önbellekten bir reklam çektiğinizde otomatik olarak yeni bir reklam yükler.
- Yönetilen yeniden denemeler: Başarısız olan istekler, eksponansiyel geri yükleme kullanılarak otomatik olarak yeniden denenir.
- Geçerlilik süresi yönetimi: Reklamları geçerlilik süreleri dolmadan (genellikle bir saat sonra) otomatik olarak yeniler.
- Önbellek optimizasyonu: Birden büyük bir önbellek boyutu kullanıyorsanız Google Mobile Ads SDK, en iyi reklamı sunmak için önbellek sırasını optimize eder.
Bu kılavuzda, önceden yüklenen reklamları yapılandırma, önceden yüklenen reklamların kullanılabilirliğini kontrol etme ve önceden yüklenen reklamları gösterme konuları ele alınmaktadır.
Ön koşullar
Eğiticiye devam etmeden önce aşağıdaki öğeleri tamamlamanız gerekir:
- Google Mobile Ads SDK 13.3.0 veya sonraki bir sürümünü yükleyin. Önceki sürümlerle ilgili geliştirici kaynaklarına 11.12.0 - 12.2.0 adresinden ulaşabilirsiniz. Ancak 13.3.0 veya sonraki sürümleri kullanmanızı ve bu kılavuzdaki talimatları uygulamanızı öneririz.
- Google Mobile Ads SDK kurulumunu yapın.
- İsteğe bağlı: Reklam önceden yükleme örnek uygulamasını indirip çalıştırın.
Beta üstbilgilerini içe aktarma
Reklam önceden yükleme özelliğini kullanmak için beta başlıklarını içe aktarın:
Swift
import GoogleMobileAds_Private
Objective-C
#import <GoogleMobileAds/GoogleMobileAds_Beta.h>
Reklamları önceden yüklemeye başlama
Reklamları önceden yüklemeye başlamak için preload() işlevini çağırın. Bu yöntemi yalnızca önceden yükleme kimliği başına bir kez çağırın. Uygulama oturumu başladığında yöntemi çağırmanızı öneririz. preload() işlevini çağırdıktan sonra Google Mobile Ads SDK, reklamları otomatik olarak önceden yükler ve bu önceden yükleme kimlikleri için başarısız olan istekleri yeniden dener.
Aşağıdaki örnekte reklamlar önceden yüklenmeye başlar:
Swift
private func startPreloading(adUnitID: String) {
// Start the preloading initialization process.
let request = Request()
let interstitialConfig = PreloadConfigurationV2(adUnitID: adUnitID, request: request)
InterstitialAdPreloader.shared.preload(
for: adUnitID, configuration: interstitialConfig, delegate: self)
}
Objective-C
- (void)startPreloadingWithAdUnitID:(NSString *)adUnitID {
// Start the preloading initialization process.
GADRequest *request = [GADRequest request];
GADPreloadConfigurationV2 *interstitialConfig = [[GADPreloadConfigurationV2 alloc] initWithAdUnitID:adUnitID request:request];
[GADInterstitialAdPreloader.sharedInstance preloadForPreloadID:adUnitID
configuration:interstitialConfig
delegate:self];
}
Önceden yüklenmiş reklamı alma ve gösterme
Reklam önceden yükleme kullanılırken Google Mobile Ads SDK, önbelleğe alınmış reklamları tutar.
Reklam göstermek istediğinizde adWithPreloadID() işlevini çağırın.
Google Mobile Ads SDK, kullanılabilir reklamı alır ve arka planda bir sonraki reklamı otomatik olarak önceden yükler.
Aşağıdaki örnekte, önceden yüklenmiş bir reklam alınır ve gösterilir:
Swift
private func showInterstitialAd(adUnitID: String) {
// Verify that the preloaded ad is available before polling.
guard isInterstitialAvailable(adUnitID: adUnitID) else {
print("Preloaded interstitial ad is not available.")
return
}
// Polling returns the next available ad and load another ad in the background.
let ad = InterstitialAdPreloader.shared.ad(with: adUnitID)
// Interact with the ad object as needed.
print("Interstitial ad response info: \(String(describing: ad?.responseInfo))")
ad?.paidEventHandler = { (value: AdValue) in
print("Interstitial ad paid event: \(value.value), \(value.currencyCode)")
}
ad?.fullScreenContentDelegate = self
ad?.present(from: self)
}
Objective-C
- (void)showInterstitialAdWithAdUnitID:(NSString *)adUnitID {
// Verify that the preloaded ad is available before polling.
if (![self isInterstitialAvailableWithAdUnitID:adUnitID]) {
NSLog(@"Preloaded interstitial ad is not available.");
return;
}
// Getting the preloaded ad loads another ad in the background.
GADInterstitialAd *ad = [GADInterstitialAdPreloader.sharedInstance adWithPreloadID:adUnitID];
// Interact with the ad object as needed.
NSLog(@"Interstitial ad response info: %@", ad.responseInfo);
ad.paidEventHandler = ^(GADAdValue *_Nonnull value) {
NSLog(@"Interstitial ad paid event: %@ %@ ", value.value, value.currencyCode);
};
ad.fullScreenContentDelegate = self;
[ad presentFromRootViewController:self];
}
Önceden yüklenmiş reklam meta verilerini alma
Önceden yüklenmiş reklam meta verilerini almak için reklamın yanıt bilgisi nesnesini arayabilirsiniz. Bu işlem, reklamın meta verilerini önbellekten kaldırmadan incelemenize olanak tanır.
Aşağıdaki örnekte, önceden yüklenmiş bir reklamın meta verileri, yanıt bilgisi nesnesinden aranır:
Swift
private func getInterstitialAdResponseInfo(preloadID: String) {
// Get the response info for the preloaded ad.
if let responseInfo = InterstitialAdPreloader.shared.adResponseInfo(withPreloadID: preloadID) {
print("Ad response ID: \(responseInfo.responseID)")
}
}
Objective-C
- (void)getInterstitialAdResponseInfoWithPreloadID:(NSString *)preloadID {
// Get the response info for the preloaded ad.
GADResponseInfo *responseInfo =
[GADInterstitialAdPreloader.sharedInstance
adResponseInfoWithPreloadID:preloadID];
if (responseInfo) {
NSLog(@"Ad response ID: %@", responseInfo.responseID);
}
}
Önceden yüklenen reklamların kullanılabilirliğini kontrol etme
Reklam kullanılabilirliğini kontrol etmek için aşağıdakilerden birini seçin:
- Önceden yüklenen reklamların kullanılabilirliğini öğrenme
- Ön yükleme reklamı kullanılabilirliğini dinleme
Önceden yüklenmiş reklamların kullanılabilirliğini alma
Aşağıdaki örnekte reklamın kullanılabilirliği kontrol edilir:
Swift
private func isInterstitialAvailable(adUnitID: String) -> Bool {
// Verify that an ad is available before polling.
return InterstitialAdPreloader.shared.isAdAvailable(with: adUnitID)
}
Objective-C
- (BOOL)isInterstitialAvailableWithAdUnitID:(NSString *)adUnitID {
// Verify that an ad is available before polling.
return [GADInterstitialAdPreloader.sharedInstance isAdAvailableWithPreloadID:adUnitID];
}
Önceden yüklenmiş reklamların kullanılabilirliğini dinleme
Reklamlar başarıyla önceden yüklendiğinde, önceden yüklenemediğinde veya reklam önbelleği tükendiğinde bildirim almak için önceden yükleme etkinliklerine kaydolun.
Önceden yükleme etkinlikleri analiz amacıyla kullanılır. Önceden yükleme etkinliği geri çağırmaları içinde:
preload()numarasını aramayın.- Reklam hemen gösterilmeyecekse
adWithPreloadID()işlevini çağırmaktan kaçının.
Aşağıdaki örnekte reklam etkinliklerine kaydolunur:
Swift
func adAvailable(forPreloadID preloadID: String, responseInfo: ResponseInfo) {
// This callback indicates that an ad is available for the specified configuration.
// No action is required here, but updating the UI can be useful in some cases.
print("Ad preloaded successfully for ad preload ID: \(preloadID)")
}
func adsExhausted(forPreloadID preloadID: String) {
// This callback indicates that all the ads for the specified configuration have been
// consumed and no ads are available to show. No action is required here, but updating
// the UI can be useful in some cases.
// [Important] Don't call AdPreloader.shared.preload or AdPreloader.shared.ad
// from adsExhausted.
print("Ad exhausted for ad preload ID: \(preloadID)")
}
func adFailedToPreload(forPreloadID preloadID: String, error: Error) {
print(
"Ad failed to load with ad preload ID: \(preloadID), Error: \(error.localizedDescription)"
)
}
Objective-C
- (void)adAvailableForPreloadID:(nonnull NSString *)preloadID responseInfo:(nonnull GADResponseInfo *)responseInfo {
// This callback indicates that an ad is available for the specified configuration.
// No action is required here, but updating the UI can be useful in some cases.
NSLog(@"Ad preloaded successfully for ad unit ID: %@", preloadID);
}
- (void)adsExhaustedForPreloadID:(nonnull NSString *)preloadID {
// This callback indicates that all the ads for the specified configuration have been
// consumed and no ads are available to show. No action is required here, but updating
// the UI can be useful in some cases.
// [Important] Don't call [GAD<Format>AdPreloader preloadForPreloadID:] or
// [GAD<Format>AdPreloader adWithPreloadID:] from adsExhaustedForPreloadID.
NSLog(@"Ad exhausted for ad preload ID: %@", preloadID);
}
- (void)adFailedToPreloadForPreloadID:(nonnull NSString *)preloadID error:(nonnull NSError *)error {
NSLog(@"Ad failed to load with ad preload ID: %@, Error: %@", preloadID, error.localizedDescription);
}
Reklamların önceden yüklenmesini durdurma
Oturumda bir önceden yükleme kimliği için tekrar reklam göstermeniz gerekmiyorsa reklamların önceden yüklenmesini durdurabilirsiniz. Belirli bir önceden yükleme kimliği için reklamların önceden yüklenmesini durdurmak üzere stopPreloadingAndRemoveAdsForPreloadID() işlevini önceden yükleme kimliğiyle birlikte çağırın. Tüm önceden yükleyiciler için önceden yüklemeyi durdurmak üzere stopPreloadingAndRemoveAllAds() işlevini çağırın.
Arabellek boyutunu ayarlama
Arabellek boyutu, bellekte tutulan önceden yüklenmiş reklamların sayısını kontrol eder. Google, varsayılan olarak bellek tüketimi ile reklam yayınlama gecikmesi arasında denge kurmak için arabellek boyutunu optimize eder. Uygulamanız, bir sonraki reklam yüklenmeden önce reklam gösteriyorsa bellekte tutulan reklam sayısını artırmak için özel bir arabellek boyutu ayarlayabilirsiniz. İki veya üç arabellek boyutu öneririz.
Önceden yüklenen önbellek sınırları
Google Mobile Ads SDK, tüm reklam birimleri ve önceden yükleme kimlikleri genelinde önceden yüklenen reklamların toplam sayısıyla ilgili uygulama genelinde bir sınır uygular:
- Varsayılan sınır: Google Mobile Ads SDK bellekte en fazla altı önceden yüklenmiş reklam tutar. Bu sınır, tüm biçimler ve önceden yükleme kimlikleri arasında paylaşılır.
- Önceden yükleme kimliği başına iki veya üç arabellek boyutu tutmanızı öneririz.
Swift
let preloadConfig = PreloadConfigurationV2(adUnitID: "/21775744923/example/rewarded")
preloadConfig.bufferSize = 3
Objective-C
GADPreloadConfigurationV2 *preloadConfig =
[[GADPreloadConfigurationV2 alloc] initWithAdUnitID:@"/21775744923/example/rewarded"];
preloadConfig.bufferSize = 3;