Ödüllü geçiş reklamı, doğal uygulama geçişleri sırasında otomatik olarak görünen reklamlar için ödüller sunmanıza olanak tanıyan teşvik edici bir reklam biçimidir. Ödüllü reklamların aksine kullanıcıların ödüllü geçiş reklamı görüntülemeyi etkinleştirmesi gerekmez. Bu kılavuzda, AdMob'dan alınan ödüllü geçiş reklamlarının Flutter uygulamasına nasıl entegre edileceği gösterilmektedir.
Ön koşullar
- Flutter eklentisi 1.1.0 veya sonraki sürümler.
- Başlayın bölümünü tamamlayın. Flutter uygulamanızda Google Mobile Ads Flutter eklentisi zaten içe aktarılmış olmalıdır.
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. Bu işlemi yapmazsanız hesabınız askıya alınabilir.
Test reklamlarını yüklemenin en kolay yolu, ödüllü geçiş reklamları için özel test reklam birimi kimliğimizi kullanmaktır:
Android
ca-app-pub-3940256099942544/5354046379
iOS
ca-app-pub-3940256099942544/6978759866
Test reklam birimleri, her istek için test reklamları döndürecek şekilde yapılandırılır ve kodlama, test etme ve hata ayıklama sırasında bunları kendi uygulamalarınızda kullanabilirsiniz. Uygulamanızı yayınlamadan önce bunları kendi reklam birimi kimliklerinizle değiştirdiğinizden emin olun.
Reklam yükleme
Aşağıdaki örnekte ödüllü geçiş reklamı yükleniyor:
class RewardedInterstitialExampleState extends State<RewardedInterstitialExample> { RewardedInterstitialAd? _rewardeInterstitialdAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/5354046379' : 'ca-app-pub-3940256099942544/6978759866'; /// Loads a rewarded ad. void loadAd() { RewardedInterstitialAd.load( adUnitId: adUnitId, adRequest: const AdRequest(), adLoadCallback: RewardedInterstitialAdLoadCallback( // Called when an ad is successfully received. onAdLoaded: (ad) { debugPrint('$ad loaded.'); // Keep a reference to the ad so you can show it later. _rewardedInterstitialAd = ad; }, // Called when an ad request failed. onAdFailedToLoad: (LoadAdError error) { debugPrint('RewardedInterstitialAd failed to load: $error'); }, )); } }
Ödüllü geçiş reklamı etkinlikleri
FullScreenContentCallback
kullanarak reklamın gösterilmesi veya kapatılması gibi yaşam döngüsü etkinliklerini dinleyebilirsiniz. Bu etkinliklerle ilgili bildirim almak için reklamı göstermeden önce RewardedInterstitialAd.fullScreenContentCallback
ayarlayın. Bu örnekte her yöntem uygulanır ve konsola bir ileti kaydedilir:
class RewardedInterstitialExampleState extends State<RewardedInterstitialExample> { RewardedInterstitialAd? _rewardedInterstitialAd; // TODO: replace this test ad unit with your own ad unit. final adUnitId = Platform.isAndroid ? 'ca-app-pub-3940256099942544/5354046379' : 'ca-app-pub-3940256099942544/6978759866'; /// Loads a rewarded ad. void loadAd() { RewardedInterstitialAd.load( adUnitId: adUnitId, adRequest: const AdRequest(), adLoadCallback: RewardedInterstitialAdLoadCallback( // Called when an ad is successfully received. onAdLoaded: (ad) { ad.fullScreenContentCallback = FullScreenContentCallback( // Called when the ad showed the full screen content. onAdShowedFullScreenContent: (ad) {}, // Called when an impression occurs on the ad. onAdImpression: (ad) {}, // Called when the ad failed to show full screen content. onAdFailedToShowFullScreenContent: (ad, err) { // Dispose the ad here to free resources. ad.dispose(); }, // Called when the ad dismissed full screen content. onAdDismissedFullScreenContent: (ad) { // Dispose the ad here to free resources. ad.dispose(); }, // Called when a click is recorded for an ad. onAdClicked: (ad) {}); debugPrint('$ad loaded.'); // Keep a reference to the ad so you can show it later. _rewardedInterstitialAd = ad; }, // Called when an ad request failed. onAdFailedToLoad: (LoadAdError error) { debugprint('RewardedInterstitialAd failed to load: $error'); }, )); } }
Görüntülü reklam
RewardedInterstitialAd
, tüm uygulama içeriğinin üzerinde statik olarak yerleştirilmiş bir yer paylaşımı olarak gösterilir. Bu nedenle, Flutter widget ağacına eklenemez.
show()
işlevini çağırarak reklamın ne zaman gösterileceğini seçebilirsiniz.
RewardedInterstitialAd.show()
, kullanıcı ödül kazandığında çağrılan OnUserEarnedRewardCallback
öğesini alır. Bu özelliği uyguladığınızdan ve kullanıcıyı reklam izlediği için ödüllendirdiğinizden emin olun.
_rewardedInterstitialAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) { // Reward the user for watching an ad. });
show()
çağrıldıktan sonra bu şekilde gösterilen bir Ad
programatik olarak kaldırılamaz ve kullanıcı girişi gerektirir. RewardedInterstitialAd
yalnızca bir kez gösterilebilir. Gösterilecek sonraki aramalar onAdFailedToShowFullScreenContent
tetiklenir.
Bir reklama erişim artık gerekli olmadığında reklamın kaldırılması gerekir. dispose()
ile FullScreenContentCallback.onAdDismissedFullScreenContent
ve FullScreenContentCallback.onAdFailedToShowFullScreenContent
geri aramaları için en iyi uygulama, arama zamanını belirlemektir.
İşte bu kadar. Uygulamanız artık ödüllü geçiş reklamları göstermeye hazır.