Reward

Iklan reward adalah iklan yang menyediakan banyak opsi interaksi untuk pengguna dengan imbalan reward dalam aplikasi. Panduan ini menunjukkan cara mengintegrasikan iklan reward dari AdMob ke aplikasi Flutter.

Selalu uji dengan iklan percobaan

Saat membuat dan menguji aplikasi, pastikan Anda menggunakan iklan percobaan, bukan iklan produksi secara langsung. Jika Anda tidak melakukannya, akun Anda dapat ditangguhkan.

Cara termudah untuk memuat iklan percobaan adalah dengan menggunakan ID unit iklan percobaan khusus untuk iklan reward:

Android

ca-app-pub-3940256099942544/5224354917

iOS

ca-app-pub-3940256099942544/1712485313

Unit iklan pengujian dikonfigurasi untuk menampilkan iklan pengujian untuk setiap permintaan, dan Anda bebas menggunakannya di aplikasi Anda sendiri saat melakukan coding, pengujian, dan proses debug. Pastikan Anda menggantinya dengan ID unit iklan Anda sendiri sebelum memublikasikan aplikasi.

Memuat iklan

Contoh berikut memuat iklan reward:

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');
          },
        ));
  }
}

Peristiwa iklan reward

Melalui penggunaan FullScreenContentCallback, Anda dapat memproses siklus proses peristiwa, seperti saat iklan ditampilkan atau ditutup. Tetapkan RewardedAd.fullScreenContentCallback sebelum menampilkan iklan untuk diterima notifikasi untuk peristiwa tersebut. Contoh ini mengimplementasikan setiap metode dan mencatat ke konsol:

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');
          },
        ));
  }
}

Iklan Display

RewardedAd ditampilkan sebagai Overlay di atas semua konten aplikasi dan ditempatkan secara statis; sehingga, tidak dapat ditambahkan ke hierarki widget Flutter. Anda dapat memilih kapan akan menampilkan iklan dengan memanggil show(). RewardedAd.show() mengambil OnUserEarnedRewardCallback, yang dipanggil saat pengguna akan mendapatkan reward. Pastikan untuk menerapkannya dan memberi reward kepada pengguna karena menonton iklan.

_rewardedAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) {
  // Reward the user for watching an ad.
});

Setelah show() dipanggil, Ad yang ditampilkan dengan cara ini tidak dapat dihapus secara terprogram dan memerlukan input pengguna. RewardedAd hanya dapat ditampilkan satu kali. Panggilan berikutnya untuk ditampilkan akan memicu onAdFailedToShowFullScreenContent.

Iklan harus dihapus jika akses ke iklan tersebut tidak lagi diperlukan. Praktik terbaik waktu untuk memanggil dispose() ada dalam FullScreenContentCallback.onAdDismissedFullScreenContent dan Callback FullScreenContentCallback.onAdFailedToShowFullScreenContent.

Selesai. Aplikasi Anda sekarang siap untuk menampilkan iklan reward.

Contoh lengkap di GitHub

Reward