Hướng dẫn này trình bày cách tích hợp quảng cáo có tặng thưởng vào ứng dụng Android.
Trước khi bắt đầu
Trước khi tiếp tục, hãy làm như sau:
- Thiết lập GMA Next-Gen SDK.
- Sử dụng mã đơn vị quảng cáo có tặng thưởng thử nghiệm
ca-app-pub-3940256099942544/5224354917.- Khi bạn 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 sản phẩm đang chạy trong thực tế. Nếu bạn không sử dụng mã đơn vị quảng cáo thử nghiệm, Google có thể tạm ngưng tài khoản của bạn.
- Trước khi xuất bản ứng dụng, hãy thay thế mã này bằng mã đơn vị quảng cáo của bạn.
- Để biết thông tin chi tiết về quảng cáo thử nghiệm GMA Next-Gen SDK, hãy xem bài viết Bật quảng cáo thử nghiệm.
Tải một quảng cáo
Ví dụ sau đây tải một quảng cáo:
Kotlin
// Load ads after you initialize MobileAds. RewardedAd.load( AdRequest.Builder(adUnitId).build(), object : AdLoadCallback<RewardedAd> { override fun onAdLoaded(ad: RewardedAd) { // Rewarded ad loaded. rewardedAd = ad } override fun onAdFailedToLoad(adError: LoadAdError) { // Rewarded ad failed to load. Log.e(TAG, "Rewarded ad failed to load: ${adError.message}") rewardedAd = null } }, )
Java
// Load ads after you initialize MobileAds. RewardedAd.load( new AdRequest.Builder(adUnitId).build(), new AdLoadCallback<RewardedAd>() { @Override public void onAdLoaded(@NonNull RewardedAd ad) { // Rewarded ad loaded. rewardedAd = ad; } @Override public void onAdFailedToLoad(@NonNull LoadAdError adError) { // Rewarded ad failed to load. Log.e(TAG, "Rewarded ad failed to load: " + adError.getMessage()); rewardedAd = null; } });
Khi thử nghiệm, hãy sử dụng mã đơn vị quảng cáo thử nghiệm:
ca-app-pub-3940256099942544/5224354917.
Hiển thị quảng cáo
Để hiển thị quảng cáo có tặng thưởng, hãy gọi phương thứcshow. Để xử lý các sự kiện có tặng thưởng, hãy sử dụng đối tượng OnUserEarnedRewardListener.
Ví dụ sau đây cho thấy quảng cáo:
Kotlin
private fun showAd(rewardedAd: RewardedAd, activity: Activity) { // Show the ad. rewardedAd.show( activity, object : OnUserEarnedRewardListener { override fun onUserEarnedReward(rewardItem: RewardItem) { // User earned the reward. val rewardAmount = rewardItem.amount val rewardType = rewardItem.type } }, ) }
Java
private void showAd(RewardedAd rewardedAd, Activity activity) { // Show the ad. rewardedAd.show( activity, new OnUserEarnedRewardListener() { @Override public void onUserEarnedReward(@NonNull RewardItem rewardItem) { // User earned the reward. int rewardAmount = rewardItem.getAmount(); String rewardType = rewardItem.getType(); } }); }
Theo dõi các sự kiện quảng cáo
Trước khi hiển thị quảng cáo, hãy theo dõi các sự kiện trong vòng đời của quảng cáo. Ví dụ sau đây đăng ký lệnh gọi lại cho các sự kiện quảng cáo:
Kotlin
private fun listenToAdEvents() { // Listen for ad events. val ad = rewardedAd if (ad == null) { Log.e(TAG, "Rewarded ad is not ready yet.") return } ad.adEventCallback = object : RewardedAdEventCallback { override fun onAdShowedFullScreenContent() { // Rewarded ad did show. } override fun onAdDismissedFullScreenContent() { // Rewarded ad did dismiss. rewardedAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // Rewarded ad failed to show. Log.e(TAG, "Rewarded ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // Rewarded ad did record an impression. } override fun onAdClicked() { // Rewarded ad did record a click. } } }
Java
private void listenToAdEvents() { // Listen for ad events. if (rewardedAd == null) { Log.e(TAG, "Rewarded ad is not ready yet."); return; } rewardedAd.setAdEventCallback( new RewardedAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // Rewarded ad did show. } @Override public void onAdDismissedFullScreenContent() { // Rewarded ad did dismiss. rewardedAd = null; } @Override public void onAdFailedToShowFullScreenContent( FullScreenContentError fullScreenContentError) { // Rewarded ad failed to show. Log.e(TAG, "Rewarded ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // Rewarded ad did record an impression. } @Override public void onAdClicked() { // Rewarded ad did record a click. } }); }
Không bắt buộc: Xác thực lệnh gọi lại của tính năng xác minh phía máy chủ (SSV)
Để truyền bối cảnh người dùng và ứng dụng trong lệnh gọi lại của tính năng xác minh phía máy chủ (SSV), hãy đặt các tuỳ chọn xác minh trên đối tượng quảng cáo trước khi hiển thị quảng cáo. Vì lệnh gọi lại SSV đến máy chủ của bạn từ Google mà không có trạng thái phiên, hãy đính kèm các chuỗi không bắt buộc sau đây. Google sẽ chuyển tiếp các chuỗi này mà không thay đổi dưới dạng tham số truy vấn đã ký trong lệnh gọi lại SSV:
- Tham số truy vấn
user_id: Xác định người dùng được ghi nhận, chẳng hạn như mã tài khoản nội bộ. - Tham số truy vấn
custom_data: Chứa dữ liệu ứng dụng, chẳng hạn như vị trí đặt phần thưởng, cấp độ trò chơi hoặc số chỉ dùng một lần do máy chủ tạo.
Nếu bạn không đặt giá trị, Google sẽ bỏ qua tham số truy vấn đó trong lệnh gọi lại SSV.
Ví dụ sau đây đặt dữ liệu tuỳ chỉnh cho một đối tượng quảng cáo trước khi hiển thị quảng cáo:
Kotlin
Java
Thay thế SAMPLE_CUSTOM_DATA_STRING bằng dữ liệu tuỳ chỉnh của bạn.
Lưu ý quan trọng: Tham số truy vấn custom_data được mã hoá theo phần trăm. Trước khi phân tích cú pháp giá trị, hãy giải mã URL của chuỗi trên máy chủ và xác minh chữ ký gọi lại trước khi tin tưởng các tham số truy vấn user_id hoặc custom_data.