Ödüllü geçiş reklamı (beta)

Ödüllü geçiş reklamı, doğal uygulama geçişleri sırasında otomatik olarak görünen reklamlar için ödül sunmanızı sağlayan 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'daki ö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 üzeri.
  • Başlayın bölümünü tamamlayın. Flutter uygulamanızda Google Mobil Reklamlar 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ı üretim reklamları yerine test reklamları kullandığınızdan emin olun. Bunu yapmazsanız hesabınız askıya alınabilir.

Test reklamları yüklemenin en kolay yolu, ödüllü geçiş reklamları için özel test reklam birimi kimliğimizi kullanmaktır:

Yapay Zeka

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ılmıştır. Kodlama, test etme ve hata ayıklama sırasında bunları kendi uygulamalarınızda kullanabilirsiniz. Uygulamanızı yayınlamadan önce bu kimlikleri kendi reklam birimi kimliklerinizle değiştirdiğinizden emin olun.

Reklam yükleme

Aşağıdaki örnekte ödüllü bir geçiş reklamı yüklenir:

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 ayarını yapın. Bu örnekte her yöntem uygulanmakta ve konsola bir mesaj kaydedilmektedir:

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 üstünde yer alan bir yer paylaşımı olarak statik olarak yerleştirilir. Bu nedenle Flutter widget ağacına eklenemez. show() numarasını arayarak reklamın ne zaman gösterileceğini seçebilirsiniz. RewardedInterstitialAd.show(), kullanıcı ödül kazandığında çağrılan bir OnUserEarnedRewardCallback alır. Bunu 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örüntülenen bir Ad programlı olarak kaldırılamaz ve kullanıcı girişi gerektirir. RewardedInterstitialAd yalnızca bir kez gösterilebilir. Gösterilecek sonraki çağrılar onAdFailedToShowFullScreenContent'ü tetikler.

Bir reklama erişime artık ihtiyaç duyulmadığında reklamın kaldırılması gerekir. dispose()'ü ne zaman arayacağınızla ilgili en iyi uygulama, FullScreenContentCallback.onAdDismissedFullScreenContent ve FullScreenContentCallback.onAdFailedToShowFullScreenContent geri aramalarındadır.

İşte bu kadar. Uygulamanız artık ödüllü geçiş reklamları göstermeye hazır.

GitHub'daki eksiksiz örnek

Ödüllü Geçiş Reklamı