Ödül olarak verildi

Ödüllü reklamlar, kullanıcıların uygulama içi ödüller karşılığında etkileşim kurma seçeneğine sahip olduğu reklamlardır. Bu kılavuzda, Ad Manager'daki ö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şturup test ederken canlı üretim reklamları yerine test reklamlarını kullandığınızdan emin olun. Aksi takdirde 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:

  • /6499/example/rewarded

Test reklam birimleri her istek için test reklamı 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 bunları kendi reklam birimi kimliklerinizle değiştirdiğinizden emin olmanız yeterlidir.

Reklam yükle

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

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

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/6499/example/rewarded';

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedAd.loadWithAdManagerAdRequest(
        adUnitId: adUnitId,
        adManagerAdRequest: const AdManagerAdRequest(),
        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 özelliğini kullanarak, reklamın gösterilmesi veya kapatılması gibi yaşam döngüsü olaylarını dinleyebilirsiniz. Bu etkinliklerle ilgili bildirim almak için reklamı göstermeden önce RewardedAd.fullScreenContentCallback değerini ayarlayı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 = '/6499/example/rewarded';

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedAd.loadWithAdManagerAdRequest(
        adUnitId: adUnitId,
        adManagerAdRequest: const AdManagerAdRequest(),
        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 bir Yer Paylaşımı olarak gösterilir ve statik olarak yerleştirildiğinden, Flutter widget ağacına eklenemez. show() numaralı telefonu arayarak reklamın ne zaman gösterileceğini seçebilirsiniz. RewardedAd.show(), kullanıcı bir ödül kazandığında çağrılan bir OnUserEarnedRewardCallback alır. Bunu uygulayın ve kullanıcıyı reklam izlediğinden emin olun.

_rewardedAd.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 Ad programatik olarak kaldırılamaz ve kullanıcı girişi gerektirir. RewardedAd yalnızca bir kez gösterilebilir. Gösterilecek sonraki çağrılar onAdFailedToShowFullScreenContent işlemini tetikler.

Reklamlara artık erişilmesine gerek kalmadığında reklamın imha edilmesi gerekir. dispose() çağrısının ne zaman yapılacağına ilişkin en iyi uygulama, FullScreenContentCallback.onAdDismissedFullScreenContent ve FullScreenContentCallback.onAdFailedToShowFullScreenContent geri çağırmalarıdır.

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