Quảng cáo có tặng thưởng là quảng cáo mà người dùng có thể tương tác để đổi lấy phần thưởng trong ứng dụng. Hướng dẫn này sẽ cho bạn biết cách tích hợp quảng cáo có tặng thưởng từ AdMob vào một ứng dụng Flutter.
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 đảm bảo bạn 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 có tặng thưởng:
Android
ca-app-pub-3940256099942544/5224354917
iOS
ca-app-pub-3940256099942544/1712485313
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. Bạn có thể sử dụng các đơn vị quảng cáo này trong ứng dụng của 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.
Tải một quảng cáo
Sau đây là ví dụ về cách tải một quảng cáo có tặng thưởng:
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'); }, )); } }
Sự kiện quảng cáo có tặng thưởng
Khi sử dụng FullScreenContentCallback
, bạn có thể theo dõi các sự kiện
trong vòng đời của quảng cáo, chẳng hạn như khi quảng cáo hiển thị hoặc bị đóng. Hãy đặt
RewardedAd.fullScreenContentCallback
trước khi hiển thị quảng cáo để nhận
thông báo cho những sự kiện này. Sau đây là ví dụ 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 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'); }, )); } }
Quảng cáo hiển thị hình ảnh
RewardedAd
hiển thị dưới dạng một Lớp phủ trên tất cả nội dung ứ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()
.
RewardedAd.show()
lấy OnUserEarnedRewardCallback
, được gọi khi
người dùng nhận được một phần thưởng. Hãy nhớ triển khai tính năng này và thưởng cho người dùng
đã xem quảng cáo.
_rewardedAd.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 mà cần phải có hoạt động đầu vào của người dùng. RewardedAd
chỉ có thể 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. Bạn nên gọi dispose()
trong lệnh gọi lại FullScreenContentCallback.onAdDismissedFullScreenContent
và 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 có tặng thưởng.