Ödüllü reklamlar

Ö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 Flutter uygulamasına nasıl entegre edileceği gösterilmektedir.

Her zaman test reklamlarıyla test edin

Uygulamalarınızı oluştururken ve test ederken yayındaki üretim reklamları yerine test reklamlarını kullandığınızdan emin olun. Bu koşula uymamanız halinde 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:

  • /21775744923/example/rewarded

Test reklam birimleri, her istek için test reklamları döndürecek şekilde yapılandırılmıştır. Kodlama, test 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ü reklam yüklenmektedir:

RewardedAd.load(
  adUnitId: "_adUnitId",
  request: const AdManagerAdRequest(),
  rewardedAdLoadCallback: RewardedAdLoadCallback(
    onAdLoaded: (RewardedAd ad) {
      // Called when an ad is successfully received.
      debugPrint('Ad was loaded.');
      // Keep a reference to the ad so you can show it later.
      _rewardedAd = ad;
    },
    onAdFailedToLoad: (LoadAdError error) {
      // Called when an ad request failed.
      debugPrint('Ad failed to load with error: $error');
    },
  ),
);

_adUnitId yerine kendi reklam birimi kimliğinizi yazın.

Ödüllü 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 RewardedAd.fullScreenContentCallback değerini ayarlayın. Bu örnekte her yöntem uygulanır ve konsola bir mesaj kaydedilir:

ad.fullScreenContentCallback = FullScreenContentCallback(
  onAdShowedFullScreenContent: (ad) {
    // Called when the ad showed the full screen content.
    debugPrint('Ad showed full screen content.');
  },
  onAdFailedToShowFullScreenContent: (ad, err) {
    // Called when the ad failed to show full screen content.
    debugPrint('Ad failed to show full screen content with error: $err');
    // Dispose the ad here to free resources.
    ad.dispose();
  },
  onAdDismissedFullScreenContent: (ad) {
    // Called when the ad dismissed full screen content.
    debugPrint('Ad was dismissed.');
    // Dispose the ad here to free resources.
    ad.dispose();
  },
  onAdImpression: (ad) {
    // Called when an impression occurs on the ad.
    debugPrint('Ad recorded an impression.');
  },
  onAdClicked: (ad) {
    // Called when a click is recorded for an ad.
    debugPrint('Ad was clicked.');
  },
);

Görüntülü reklam

RewardedAd, tüm uygulama içeriğinin üzerinde yer paylaşımı olarak gösterilir ve statik olarak yerleştirilir. Bu nedenle Flutter widget ağacına eklenemez. show() yöntemini ç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. Bu özelliği uyguladığınızdan ve reklam izleyen kullanıcıları ödüllendirdiğinizden emin olun.

_rewardedAd?.show(
  onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) {
    debugPrint('Reward amount: ${rewardItem.amount}');
  },
);

show() çağrıldıktan sonra bu şekilde gösterilen bir Ad programatik olarak kaldırılamaz ve kullanıcı girişi gerektirir. RewardedAd yalnızca bir kez gösterilebilir. show için sonraki çağrılar onAdFailedToShowFullScreenContent değerini tetikler.

Artık erişilmesi gerekmeyen reklamlar silinmelidir. dispose() yöntemini çağırmak için en iyi uygulama, FullScreenContentCallback.onAdDismissedFullScreenContent ve FullScreenContentCallback.onAdFailedToShowFullScreenContent geri çağırmalarında çağırmaktır.

[İsteğe bağlı] Sunucu tarafı doğrulama (SSV) geri çağırmalarını doğrulama

Sunucu tarafı doğrulama geri çağırmalarında ek veri gerektiren uygulamalar, ödüllü reklamların özel veri özelliğini kullanmalıdır. Ödüllü reklam nesnesinde ayarlanan tüm dize değerleri, SSV geri çağırmasının custom_data sorgu parametresine iletilir. Özel veri değeri ayarlanmazsa custom_data sorgu parametresi değeri SSV geri çağırmasında mevcut olmaz.

Aşağıdaki kod örneğinde, ödüllü reklam yüklendikten sonra SSV seçeneklerinin nasıl ayarlanacağı gösterilmektedir:

RewardedAd.load(
  adUnitId: "_adUnitId",
  request: AdManagerAdRequest(),
  rewardedAdLoadCallback: RewardedAdLoadCallback(
    onAdLoaded: (ad) {
      ServerSideVerificationOptions _options =
          ServerSideVerificationOptions(
            customData: 'SAMPLE_CUSTOM_DATA_STRING',
          );
      ad.setServerSideOptions(_options);
      _rewardedAd = ad;
    },
    onAdFailedToLoad: (error) {},
  ),
);

SAMPLE_CUSTOM_DATA_STRING ifadesini kendi özel verilerinizle değiştirin.