Reklam önceden yükleme, SDK tarafından yönetilen bir yükleme ve önbelleğe alma işlemidir. Bu işlem, reklamların manuel olarak yüklenmesi ve önbelleğe alınması ihtiyacını ortadan kaldırır. Bu işlem, reklamları manuel olarak yüklemeniz veya reklam yükleme geri çağırmalarını işlemeniz gerekmeden gerektiğinde reklam göstermenize olanak tanır.
Bu kılavuzda, önceden yüklenen reklamların nasıl yapılandırılacağı, önceden yüklenen reklamların kullanılabilirliğinin nasıl kontrol edileceği ve önceden yüklenen reklamın nasıl alınacağı ve gösterileceği açıklanmaktadır.
Ön koşullar
Eğiticiye devam etmeden önce aşağıdaki öğeleri tamamlamanız gerekir:
- Google Mobile Ads SDK'sının (beta) 0.14.0-alpha01 veya daha yeni bir sürümünü yükleyin.
- Başlangıç kılavuzunu tamamlayın.
- İsteğe bağlı: Örnek uygulamayı indirip çalıştırın.
Reklamları önceden yüklemeye başlama
Önceden yüklemeyi başlatmak için startPreload() numaralı telefonu arayın. Google Mobile Ads SDK'sı, önceden yüklenmiş yapılandırmalar için başarısız olan reklam isteklerini otomatik olarak yeniden dener.
Aşağıdaki örnekte reklamlar önceden yüklenmeye başlar:
Kotlin
private fun startPreloading(adUnitID: String) {
val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
val preloadConfig = PreloadConfiguration(adRequest)
InterstitialAdPreloader.start(adUnitID, preloadConfig)
}
Java
private void startPreloading(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
InterstitialAdPreloader.start(adUnitId, preloadConfig);
}
İsteğe bağlı: Önceden yüklenen reklamları değiştirme
Önceden yüklenen reklamları değiştirmek için destroy() işlevini çağırın ve ardından değiştirilmiş yapılandırmayla startPreload() işlevini tekrar çağırın.
İsteğe bağlı: Reklamların önceden yüklenmesini durdurma
Reklamların önceden yüklenmesini durdurmak için destroy() işlevini önceden yükleme kimliğiyle çağırın.
İsteğe bağlı: Arabellek boyutunu ayarlama
Arabellek boyutu, bellekte tutulan önceden yüklenmiş reklamların sayısını kontrol eder. Uygulamanız yeni reklamlar yüklenebileceğinden daha hızlı bir şekilde reklam gösteriyorsa arabellek boyutunu daha büyük bir değere ayarlayın. Bellek kullanımıyla ilgili endişeleriniz varsa arabellek boyutunu 2 gibi düşük bir değere ayarlayın.
Kotlin
private fun setBufferSize(adUnitID: String) {
val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
val preloadConfig = PreloadConfiguration(adRequest, bufferSize = 3)
InterstitialAdPreloader.start(adUnitID, preloadConfig)
}
Java
private void setBufferSize(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest, 3);
InterstitialAdPreloader.start(adUnitId, preloadConfig);
}
İsteğe bağlı: Ön yükleme bildirimleri alma
Reklam önceden yükleme etkinlikleriyle ilgili bildirim almak için PreloadCallback uygulayın. Bu etkinlikler, hata ayıklama ve günlük kaydı için bir yanıt bilgisi nesnesi sağlar.
Kotlin
private fun startPreloadingWithCallback(adUnitID: String) {
val preloadCallback =
// [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback.
object : PreloadCallback {
override fun onAdFailedToPreload(preloadId: String, adError: LoadAdError) {
Log.i(
TAG,
("Interstitial preload ad $preloadId failed to load with error: ${adError.message}"),
)
// [Optional] Get the error response info for additional details.
// val responseInfo = adError.responseInfo
}
override fun onAdsExhausted(preloadId: String) {
Log.i(TAG, "Interstitial preload ad $preloadId is not available")
}
override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo) {
Log.i(TAG, "Interstitial preload ad $preloadId is available")
}
}
val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
val preloadConfig = PreloadConfiguration(adRequest)
InterstitialAdPreloader.start(adUnitID, preloadConfig, preloadCallback)
}
Java
private void startPreloadingWithCallback(String adUnitId) {
PreloadCallback preloadCallback =
// [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback.
new PreloadCallback() {
@Override
public void onAdFailedToPreload(String preloadId, LoadAdError adError) {
Log.e(
TAG,
String.format(
"Interstitial preload ad %s failed to load with error: %s",
preloadId, adError.getMessage()));
// [Optional] Get the error response info for additional details.
// ResponseInfo responseInfo = adError.getResponseInfo();
}
@Override
public void onAdsExhausted(String preloadId) {
Log.i(TAG, "Interstitial preload ad " + preloadId + " is not available");
}
@Override
public void onAdPreloaded(String preloadId, ResponseInfo responseInfo) {
Log.i(TAG, "Interstitial preload ad " + preloadId + " is available");
}
};
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
InterstitialAdPreloader.start(adUnitId, preloadConfig, preloadCallback);
}
Önceden yüklenmiş reklamı alma ve gösterme
onAdsAvailable() çağrıldıktan sonra reklamlar gösterilebilir. Reklamlar gösterilip tükendikçe sürekli olarak kullanıma sunulur. Reklam aldıktan sonra reklam yaşam döngüsü etkinliklerini dinleyin ve reklamı gösterin.
Aşağıdaki örnekte önceden yüklenmiş bir reklam gösterilmektedir:
Kotlin
private fun pollAndShowAd(activity: Activity, adUnitID: String) {
// Polling returns the next available ad and loads another ad in the background.
val ad = InterstitialAdPreloader.pollAd(adUnitID)
// Interact with the ad object as needed.
ad?.apply {
Log.d(TAG, "Interstitial ad response info: ${this.getResponseInfo()}")
this.adEventCallback =
object : InterstitialAdEventCallback {
override fun onAdImpression() {
Log.d(TAG, "Interstitial ad recorded an impression.")
}
override fun onAdPaid(value: AdValue) {
Log.d(TAG, "Interstitial ad onPaidEvent: ${value.valueMicros} ${value.currencyCode}")
}
}
// Show the ad.
ad.show(activity)
}
}
Java
private void pollAndShowAd(Activity activity, String adUnitId) {
// Polling returns the next available ad and loads another ad in the background.
final InterstitialAd ad = InterstitialAdPreloader.pollAd(adUnitId);
// Interact with the ad object as needed.
if (ad != null) {
Log.d(TAG, "Interstitial ad response info: " + ad.getResponseInfo());
ad.setAdEventCallback(
new InterstitialAdEventCallback() {
@Override
public void onAdImpression() {
Log.d(TAG, "Interstitial ad recorded an impression.");
}
@Override
public void onAdPaid(AdValue value) {
Log.d(
TAG,
"Interstitial ad onPaidEvent: "
+ value.getValueMicros()
+ " "
+ value.getCurrencyCode());
}
});
// Show the ad.
ad.show(activity);
}
}
İsteğe bağlı: Önceden yüklenmiş reklamların kullanılabilirliğini kontrol edin
Reklamların kullanılabilir olup olmadığını öğrenmek için isAdAvailable numaralı telefonu arayın:
Kotlin
private fun isAdAvailable(adUnitID: String): Boolean {
return InterstitialAdPreloader.isAdAvailable(adUnitID)
}
Java
private boolean isAdAvailable(String adUnitId) {
return InterstitialAdPreloader.isAdAvailable(adUnitId);
}