Quảng cáo xen kẽ có tặng thưởng (thử nghiệm)

Quảng cáo xen kẽ có tặng thưởng là một loại định dạng quảng cáo có tặng thưởng cho phép bạn cung cấp phần thưởng cho những quảng cáo xuất hiện tự động trong quá trình chuyển đổi tự nhiên của ứng dụng. Không giống như quảng cáo có tặng thưởng, người dùng người dùng bắt buộc phải chọn xem quảng cáo xen kẽ có tặng thưởng. Hướng dẫn này chỉ cho bạn cách tích hợp quảng cáo xen kẽ có tặng thưởng từ Ad Manager vào một ứng dụng Flutter.

Điều kiện tiên quyết

  • Trình bổ trợ Flutter phiên bản 1.1.0 trở lên.
  • Hoàn thành các bước Bắt đầu sử dụng. Thông tin Ứng dụng Flutter phải có sẵn trình bổ trợ Flutter cho Quảng cáo trên thiết bị di động của Google đã nhập.

Luôn thử nghiệm bằng quảng cáo thử nghiệm

Khi tạo và thử nghiệm ứng dụng, hãy nhớ sử dụng quảng cáo thử nghiệm thay vì quảng cáo thực tế. Chúng tôi có thể tạm ngưng tài khoản của bạn nếu bạn không làm như vậy.

Cách dễ nhất để tải quảng cáo thử nghiệm là sử dụng mã đơn vị quảng cáo thử nghiệm dành riêng cho quảng cáo xen kẽ có tặng thưởng:

  • /21775744923/example/rewarded_interstitial

Các đơn vị quảng cáo thử nghiệm được định cấu hình để trả về quảng cáo thử nghiệm cho mọi yêu cầu, và bạn có thể sử dụng chúng trong ứng dụng của riêng mình khi lập trình, thử nghiệm và gỡ lỗi. Bạn chỉ cần nhớ thay thế các mã này bằng mã đơn vị quảng cáo của riêng mình trước khi xuất bản ứng dụng của bạn.

Tải một quảng cáo

Sau đây là ví dụ về cách tải một quảng cáo xen kẽ có tặng thưởng:

class RewardedInterstitialExampleState extends State<RewardedInterstitialExample> {
  RewardedInterstitialAd? _rewardeInterstitialdAd;

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

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedInterstitialAd.loadWithAdManagerAdRequest(
        adUnitId: adUnitId,
        adManagerAdRequest: const AdManagerAdRequest(),
        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');
          },
        ));
  }
}

Sự kiện của quảng cáo xen kẽ có tặng thưởng

Khi sử dụng FullScreenContentCallback, bạn có thể theo dõi vòng đời các sự kiện, chẳng hạn như khi quảng cáo hiển thị hoặc bị đóng. Đặt RewardedInterstitialAd.fullScreenContentCallback trước khi hiển thị quảng cáo cho nhận thông báo về các sự kiện này. Ví dụ này triển khai từng phương thức và ghi nhật ký thông báo vào bảng điều khiển:

class RewardedInterstitialExampleState extends State<RewardedInterstitialExample> {
  RewardedInterstitialAd? _rewardedInterstitialAd;

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

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedInterstitialAd.loadWithAdManagerAdRequest(
        adUnitId: adUnitId,
        adManagerAdRequest: const AdManagerAdRequest(),
        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');
          },
        ));
  }
}

Quảng cáo hiển thị hình ảnh

RewardedInterstitialAd hiển thị dưới dạng một Lớp phủ trên toàn bộ nội dung của ứng dụng và được đặt cố định; do đó, bạn không thể thêm tiện ích này vào cây tiện ích Flutter. Bạn có thể chọn thời điểm hiển thị quảng cáo bằng cách gọi show(). RewardedInterstitialAd.show() lấy OnUserEarnedRewardCallback, tức là được gọi khi người dùng nhận được phần thưởng. Hãy nhớ triển khai việc này và tặng thưởng cho người dùng xem quảng cáo.

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

Sau khi gọi show(), bạn không thể xoá Ad hiển thị theo cách này theo phương thức lập trình và yêu cầu hoạt động đầu vào của người dùng. RewardedInterstitialAd chỉ có thể được hiển thị một lần. Các lệnh gọi tiếp theo để hiển thị sẽ kích hoạt onAdFailedToShowFullScreenContent.

Bạn phải loại bỏ quảng cáo khi không cần truy cập vào quảng cáo đó nữa. Phương pháp hay nhất để biết thời điểm gọi dispose() là trong FullScreenContentCallback.onAdDismissedFullScreenContent và Các lệnh gọi lại FullScreenContentCallback.onAdFailedToShowFullScreenContent.

Vậy là xong! Bây giờ, ứng dụng của bạn đã sẵn sàng để hiển thị quảng cáo xen kẽ có tặng thưởng.