โฆษณาที่มีการให้รางวัล

โฆษณาที่มีการให้รางวัล ให้คุณตอบแทนผู้ใช้ด้วยไอเทมที่ซื้อในแอปจากการที่ผู้ใช้โต้ตอบ กับโฆษณาวิดีโอ โฆษณาที่เล่นได้ และแบบสำรวจ

ข้อกำหนดเบื้องต้น

  • ทำตามคู่มือเริ่มต้นใช้งาน
  • ทดสอบด้วยโฆษณาทดสอบเสมอ

    เมื่อสร้างและทดสอบแอป โปรดใช้โฆษณาทดสอบแทน โฆษณาจริงที่ใช้งานจริง หากไม่ดำเนินการดังกล่าวอาจส่งผลให้บัญชีถูกระงับ

    วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้รหัสหน่วยโฆษณาทดสอบเฉพาะสำหรับ โฆษณาที่มีการให้รางวัลบน Android

    ca-app-pub-3940256099942544/5224354917

    ซึ่งได้รับการกำหนดค่าเป็นพิเศษให้แสดงโฆษณาทดสอบสำหรับทุกคำขอ และคุณสามารถ ใช้ในแอปของคุณเองได้อย่างอิสระขณะเขียนโค้ด ทดสอบ และแก้ไขข้อบกพร่อง เพียงตรวจสอบว่าคุณได้แทนที่ด้วยรหัสหน่วยโฆษณาของคุณเองก่อนที่จะเผยแพร่แอป

    ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีทำงานของโฆษณาทดสอบใน Google Mobile Ads SDK (เบต้า) ได้ที่โฆษณาทดสอบ

    โหลดโฆษณา

    หากต้องการโหลดโฆษณาที่มีการให้รางวัล ให้เรียกใช้เมธอด RewardedAd แบบคงที่ load() และ ส่ง AdLoadCallback<RewardedAd> เพื่อรับโฆษณาที่โหลดแล้วหรือข้อผิดพลาดที่อาจเกิดขึ้น

    Kotlin

    import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback
    import com.google.android.libraries.ads.mobile.sdk.common.AdRequest
    import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError
    import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
    import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAd
    import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAdEventCallback
    import com.google.android.libraries.ads.mobile.sdk.MobileAds
    
    class RewardedActivity : Activity() {
      private var rewardedAd: RewardedAd? = null
    
      override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    
        // Load ads after you inititalize Google Mobile Ads SDK (beta).
        RewardedAd.load(
          AdRequest.Builder(AD_UNIT_ID).build(),
          object : AdLoadCallback<RewardedAd> {
            override fun onAdLoaded(ad: RewardedAd) {
              // Rewarded ad loaded.
              rewardedAd = ad
            }
    
            override fun onAdFailedToLoad(adError: LoadAdError) {
              // Rewarded ad failed to load.
              rewardedAd = null
            }
          },
        )
      }
    
      companion object {
        // Sample rewarded ad unit ID.
        const val AD_UNIT_ID = "ca-app-pub-3940256099942544/5224354917"
      }
    }
    

    Java

    import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback;
    import com.google.android.libraries.ads.mobile.sdk.common.AdRequest;
    import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError;
    import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError;
    import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAd;
    import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAdEventCallback;
    import com.google.android.libraries.ads.mobile.sdk.MobileAds;
    
    class RewardedActivity extends Activity {
      // Sample rewarded ad unit ID.
      private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/5224354917";
      private RewardedAd rewardedAd;
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        // Load ads after you initialize Google Mobile Ads SDK (beta).
        RewardedAd.load(
            new AdRequest.Builder(AD_UNIT_ID).build(),
            new AdLoadCallback<RewardedAd>() {
              @Override
              public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
                // Rewarded ad loaded.
                AdLoadCallback.super.onAdLoaded(rewardedAd);
                RewardedActivity.this.rewardedAd = rewardedAd;
              }
    
              @Override
              public void onAdFailedToLoad(@NonNull LoadAdError adError) {
                // Rewarded ad failed to load.
                AdLoadCallback.super.onAdFailedToLoad(adError);
                rewardedAd = null;
              }
            }
        );
      }
    }
    

    ตั้งค่า RewardedAdEventCallback

    RewardedAdEventCallback จัดการเหตุการณ์ที่เกี่ยวข้องกับการแสดง RewardedAd ก่อนแสดงโฆษณาที่มีการให้รางวัล โปรดตั้งค่า การเรียกกลับดังนี้

    Kotlin

    // Listen for ad events.
    rewardedAd?.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.
          rewardedAd = null
        }
    
        override fun onAdImpression() {
          // Rewarded ad did record an impression.
        }
    
        override fun onAdClicked() {
          // Rewarded ad did record a click.
        }
      }
    

    Java

    // Listen for ad events.
    rewardedAd.setAdEventCallback(
        new RewardedAdEventCallback() {
          @Override
          public void onAdShowedFullScreenContent() {
            // Rewarded ad did show.
            RewardedAdEventCallback.super.onAdShowedFullScreenContent();
          }
    
          @Override
          public void onAdDismissedFullScreenContent() {
            // Rewarded ad did dismiss.
            RewardedAdEventCallback.super.onAdDismissedFullScreenContent();
            rewardedAd = null;
          }
    
          @Override
          public void onAdFailedToShowFullScreenContent(
              @NonNull FullScreenContentError fullScreenContentError) {
            // Rewarded ad failed to show.
            RewardedAdEventCallback.super.onAdFailedToShowFullScreenContent(
                fullScreenContentError);
            rewardedAd = null;
          }
    
          @Override
          public void onAdImpression() {
            // Rewarded ad did record an impression.
            RewardedAdEventCallback.super.onAdImpression();
          }
    
          @Override
          public void onAdClicked() {
            // Rewarded ad did record a click.
            RewardedAdEventCallback.super.onAdClicked();
          }
        }
    );
    

    แสดงโฆษณา

    หากต้องการแสดงโฆษณาที่มีการให้รางวัล ให้ใช้เมธอด show() ใช้ออบเจ็กต์ OnUserEarnedRewardListenerเพื่อจัดการเหตุการณ์รางวัล

    Kotlin

    // Show the ad.
    rewardedAd?.show(
      this@RewardedActivity,
      object : OnUserEarnedRewardListener {
        override fun onUserEarnedReward(rewardItem: RewardItem) {
          // User earned the reward.
          val rewardAmount = rewardItem.amount
          val rewardType = rewardItem.type
        }
      },
    )
    

    Java

    // Show the ad.
    rewardedAd.show(
        RewardedActivity.this,
        new OnUserEarnedRewardListener() {
          @Override
          public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
            // User earned the reward.
            int rewardAmount = rewardItem.getAmount();
            String rewardType = rewardItem.getType();
        }
    });
    

    คำถามที่พบบ่อย

    การเรียกใช้การเริ่มต้นมีระยะหมดเวลาไหม
    หลังจากผ่านไป 10 วินาที SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google (เบต้า) จะเรียกใช้ OnInitializationCompleteListener แม้ว่าเครือข่ายสื่อกลางจะยัง เริ่มต้นไม่เสร็จก็ตาม
    จะเกิดอะไรขึ้นหากเครือข่ายสื่อกลางบางเครือข่ายไม่พร้อมเมื่อฉันได้รับการเรียกกลับการเริ่มต้น

    เราขอแนะนำให้โหลดโฆษณาภายในแฮนเดิลการเรียกกลับของ OnInitializationCompleteListener แม้ว่าเครือข่ายสื่อกลางจะไม่พร้อม SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google (เบต้า) ก็ยังคงขอโฆษณาจากเครือข่ายนั้น ดังนั้นหาก เครือข่ายสื่อกลางเริ่มต้นเสร็จสิ้นหลังจากหมดเวลา ก็ยัง แสดงคำขอโฆษณาในอนาคตในเซสชันนั้นได้

    คุณสามารถสำรวจสถานะการเริ่มต้นของอแดปเตอร์ทั้งหมดในเซสชันแอปได้ต่อไปโดยเรียกใช้ MobileAds.getInitializationStatus()

    ฉันจะรู้ได้อย่างไรว่าเหตุใดเครือข่ายสื่อกลางหนึ่งๆ จึงไม่พร้อมใช้งาน

    AdapterStatus.getDescription() อธิบายสาเหตุที่อะแดปเตอร์ยังไม่พร้อม ให้บริการคำขอโฆษณา

    ระบบจะเรียกใช้แฮนเดิล onUserEarnedReward() ก่อนเรียกใช้แฮนเดิล onAdDismissedFullScreenContent() เสมอใช่ไหม

    สําหรับโฆษณา Google onUserEarnedReward()การเรียกใช้ทั้งหมดจะเกิดขึ้นก่อน onAdDismissedFullScreenContent() สำหรับโฆษณาที่แสดงผ่านสื่อกลาง การติดตั้งใช้งาน SDK เครือข่ายโฆษณาของบุคคลที่สามจะเป็นตัวกำหนดลำดับการเรียกกลับ สำหรับ SDK เครือข่ายโฆษณา ที่ให้การเรียกกลับการปิดเพียงครั้งเดียวพร้อมข้อมูลรางวัล อแดปเตอร์สื่อกลางจะเรียกใช้ onUserEarnedReward() ก่อน onAdDismissedFullScreenContent()

    ตัวอย่าง

    ดาวน์โหลดและเรียกใช้แอปตัวอย่าง ที่แสดงการใช้ Google Mobile Ads SDK (เบต้า)