Ödül olarak verildi

Ödüllü reklamlar, kullanıcıların uygulama içi ödüller karşılığında etkileşim seçeneğine sahip olduğu reklamlardır. Bu kılavuzda, AdMob ödüllü reklamların bir Flutter uygulamasına nasıl entegre edileceği gösterilmektedir.

Her zaman test reklamlarıyla test etme

Uygulamalarınızı oluştururken ve test ederken canlı, üretim reklamları yerine test reklamlarını kullandığınızdan emin olun. Bunu yapmazsanız hesabınız askıya alınabilir.

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

Android

ca-app-pub-3940256099942544/5224354917

iOS

ca-app-pub-3940256099942544/1712485313

Test reklam birimleri her istek için test reklamları döndürecek şekilde yapılandırılır. Bu reklam birimlerini kodlama, test ve hata ayıklama sırasında kendi uygulamalarınızda da kullanabilirsiniz. Yalnızca uygulamanızı yayınlamadan önce bunları kendi reklam birimi kimliklerinizle değiştirdiğinizden emin olun.

Reklam yükle

Aşağıdaki örnekte ödüllü reklam yüklenmiştir:

class RewardedExampleState extends State<RewardedExample> {
  RewardedAd? _rewardedAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = Platform.isAndroid
    ? 'ca-app-pub-3940256099942544/5224354917'
    : 'ca-app-pub-3940256099942544/1712485313';

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedAd.load(
        adUnitId: adUnitId,
        request: const AdRequest(),
        adLoadCallback: RewardedAdLoadCallback(
          // Called when an ad is successfully received.
          onAdLoaded: (ad) {
            debugPrint('$ad loaded.');
            // Keep a reference to the ad so you can show it later.
            _rewardedAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugPrint('RewardedAd failed to load: $error');
          },
        ));
  }
}

Ödüllü reklam etkinlikleri

FullScreenContentCallback kullanarak reklamın gösterilmesi veya reddedilmesi gibi yaşam döngüsü olaylarını dinleyebilirsiniz. Bu etkinliklerle ilgili bildirim almak için reklamı göstermeden önce RewardedAd.fullScreenContentCallback ayarını yapın. Bu örnekte her bir yöntem uygulanır ve konsola bir mesaj kaydedilir:

class RewardedExampleState extends State<RewardedExample> {
  RewardedAd? _rewardedAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = Platform.isAndroid
    ? 'ca-app-pub-3940256099942544/5224354917'
    : 'ca-app-pub-3940256099942544/1712485313';

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedAd.load(
        adUnitId: adUnitId,
        request: const AdRequest(),
        adLoadCallback: RewardedAdLoadCallback(
          // 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.
            _rewardedAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugPrint('RewardedAd failed to load: $error');
          },
        ));
  }
}

Görüntülü reklam

RewardedAd, tüm uygulama içeriğinin üzerinde Yer Paylaşımı olarak görüntülenir ve statik olarak yerleştirilir. Bu nedenle Flutter widget ağacına eklenemez. show() çağırarak reklamın ne zaman gösterileceğini seçebilirsiniz. RewardedAd.show(), kullanıcı ödül kazandığında çağrılan bir OnUserEarnedRewardCallback alır. Bunu uyguladığınızdan emin olun ve kullanıcıyı reklam izlediği için ödüllendirin.

_rewardedAd.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 programlı olarak kaldırılamaz ve kullanıcı girişi gerektirir. RewardedAd yalnızca bir kez gösterilebilir. Sonraki gösterilecek aramalar onAdFailedToShowFullScreenContent özelliğini tetikleyecek.

Artık erişim gerektirmeyen reklamlar imha edilmelidir. dispose() çağrısının ne zaman yapılacağına ilişkin en iyi uygulama, FullScreenContentCallback.onAdDismissedFullScreenContent ve FullScreenContentCallback.onAdFailedToShowFullScreenContent geri çağırma yöntemidir.

İşte bu kadar. Uygulamanız artık ödüllü reklam göstermeye hazır.

GitHub'daki örneği tamamlayın

Ödüllü