คู่มือนี้อธิบายวิธีผสานรวมโฆษณาที่มีการให้รางวัลลงในแอป Android
ก่อนเริ่มต้น
ก่อนดำเนินการต่อ ให้ทำดังนี้
- ตั้งค่า GMA Next-Gen SDK
- ใช้รหัสหน่วยโฆษณาที่มีการให้รางวัลสำหรับการทดสอบ
ca-app-pub-3940256099942544/5224354917- เมื่อสร้างและทดสอบแอป โปรดใช้โฆษณาสำหรับการทดสอบแทนโฆษณาจริง หากไม่ใช้รหัสหน่วยโฆษณาทดสอบ Google อาจระงับบัญชีของคุณ
- ก่อนเผยแพร่แอป ให้แทนที่รหัสนี้ด้วยรหัสหน่วยโฆษณาของคุณ
- ดูรายละเอียดเกี่ยวกับโฆษณาสำหรับการทดสอบGMA Next-Gen SDK ได้ที่ หัวข้อเปิดใช้โฆษณาสำหรับการทดสอบ
โหลดโฆษณา
ตัวอย่างต่อไปนี้จะโหลดโฆษณาเดียว
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; } });
เมื่อทดสอบ ให้ใช้รหัสหน่วยโฆษณาทดสอบ ca-app-pub-3940256099942544/5224354917
แสดงโฆษณา
หากต้องการแสดงโฆษณาที่มีการให้รางวัล ให้เรียกใช้เมธอดshow หากต้องการจัดการกิจกรรมที่มีการให้รางวัล ให้ใช้ออบเจ็กต์ OnUserEarnedRewardListener
ตัวอย่างต่อไปนี้จะแสดงโฆษณา
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(); } }); }
รับฟังเหตุการณ์โฆษณา
ก่อนแสดงโฆษณา ให้รับฟังเหตุการณ์ในวงจรของโฆษณา ตัวอย่างต่อไปนี้จะลงทะเบียนการเรียกกลับสำหรับเหตุการณ์โฆษณา
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. } }); }
ไม่บังคับ: ตรวจสอบการเรียกกลับของการยืนยันฝั่งเซิร์ฟเวอร์ (SSV)
หากต้องการส่งบริบทของผู้ใช้และแอปพลิเคชันใน การยืนยันฝั่งเซิร์ฟเวอร์ (SSV) ให้ตั้งค่า ตัวเลือกการยืนยันในออบเจ็กต์โฆษณาก่อนแสดงโฆษณา เนื่องจากการเรียกกลับของ SSV จะมาถึงเซิร์ฟเวอร์ของคุณจาก Google โดยไม่มีสถานะเซสชัน ให้แนบสตริงที่ไม่บังคับต่อไปนี้ Google จะส่งต่อสตริงเหล่านี้โดยไม่มีการเปลี่ยนแปลงเป็นพารามิเตอร์การค้นหาที่ลงนามในการเรียกกลับของ SSV
- พารามิเตอร์การค้นหา
user_id: ระบุผู้ใช้ที่จะให้เครดิต เช่น รหัสบัญชีภายใน - พารามิเตอร์การค้นหา
custom_data: ส่งข้อมูลแอป เช่น ตำแหน่งโฆษณารางวัล ระดับเกม หรือ Nonce ที่เซิร์ฟเวอร์สร้างขึ้น
หากไม่ได้ตั้งค่า Google จะละเว้นพารามิเตอร์การค้นหานั้นจากการเรียกกลับของ SSV
ตัวอย่างต่อไปนี้จะตั้งค่าข้อมูลที่กำหนดเองในออบเจ็กต์โฆษณาก่อนแสดงโฆษณา
Kotlin
Java
แทนที่ SAMPLE_CUSTOM_DATA_STRING ด้วยข้อมูลที่กำหนดเอง
ประเด็นสำคัญ: พารามิเตอร์การค้นหา custom_data จะมีการ
เข้ารหัสเปอร์เซ็นต์ ก่อนแยกวิเคราะห์ค่า ให้ถอดรหัส URL ของสตริงในเซิร์ฟเวอร์และยืนยันลายเซ็นการเรียกกลับก่อนที่จะเชื่อถือพารามิเตอร์การค้นหา user_id หรือ custom_data