تبلیغات با پاداش

تبلیغات جایزه‌دار به شما این امکان را می‌دهد که به کاربران در ازای تعامل با تبلیغات ویدیویی، تبلیغات قابل پخش و نظرسنجی‌ها، با آیتم‌های درون برنامه‌ای پاداش دهید.

پیش‌نیازها

  • GMA Next-Gen SDK را راه‌اندازی کنید .
  • همیشه با تبلیغات آزمایشی تست کنید

    هنگام ساخت و آزمایش برنامه‌های خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده می‌کنید. عدم انجام این کار می‌تواند منجر به مسدود شدن حساب شما شود.

    ساده‌ترین راه برای بارگذاری تبلیغات آزمایشی، استفاده از شناسه واحد تبلیغات آزمایشی اختصاصی ما برای تبلیغات جایزه‌دار اندروید است:

    ca-app-pub-3940256099942544/5224354917

    این ابزار به طور ویژه پیکربندی شده است تا برای هر درخواست، تبلیغات آزمایشی را برگرداند و شما می‌توانید در برنامه‌های خود هنگام کدنویسی، آزمایش و اشکال‌زدایی از آن استفاده کنید. فقط قبل از انتشار برنامه، مطمئن شوید که آن را با شناسه واحد تبلیغاتی خود جایگزین می‌کنید.

    برای جزئیات بیشتر در مورد تبلیغات آزمایشی GMA Next-Gen SDK ، به فعال کردن تبلیغات آزمایشی مراجعه کنید.

    بارگذاری یک تبلیغ

    برای بارگذاری یک تبلیغ، GMA Next-Gen SDK موارد زیر را ارائه می‌دهد:

    با API بارگذاری تک تبلیغ بارگذاری کنید

    مثال زیر نحوه بارگذاری یک تبلیغ واحد را به شما نشان می‌دهد:

    کاتلین

    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 GMA Next-Gen SDK.
        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"
      }
    }
    

    جاوا

    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 GMA Next-Gen SDK.
        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;
              }
            }
        );
      }
    }
    

    با استفاده از API پیش‌بارگذاری تبلیغات، بارگذاری کنید

    برای شروع پیش بارگذاری، موارد زیر را انجام دهید:

    1. پیکربندی پیش‌بارگذاری را با یک درخواست تبلیغ آغاز کنید.

    2. پیش‌بارگذار تبلیغات جایزه‌دار را با شناسه واحد تبلیغاتی و پیکربندی پیش‌بارگذاری خود شروع کنید:

    کاتلین

    private fun startPreloading(adUnitId: String) {
      val adRequest = AdRequest.Builder(adUnitId).build()
      val preloadConfig = PreloadConfiguration(adRequest)
      RewardedAdPreloader.start(adUnitId, preloadConfig)
    }
    
    

    جاوا

    private void startPreloading(String adUnitId) {
      AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
      PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
      RewardedAdPreloader.start(adUnitId, preloadConfig);
    }
    
    

    وقتی آماده نمایش تبلیغ شدید، تبلیغ را از پیش‌بارگذار (preloader) بررسی کنید:

    کاتلین

    // Polling returns the next available ad and loads another ad in the background.
    val ad = RewardedAdPreloader.pollAd(adUnitId)
    

    جاوا

    // Polling returns the next available ad and loads another ad in the background.
    final RewardedAd ad = RewardedAdPreloader.pollAd(adUnitId);
    

    تنظیم RewardedAdEventCallback

    تابع RewardedAdEventCallback رویدادهای مربوط به نمایش RewardedAd شما را مدیریت می‌کند. قبل از نمایش تبلیغ پاداش‌دار، حتماً تابع فراخوانی زیر را تنظیم کنید:

    کاتلین

    // 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.
        }
      }
    

    جاوا

    // 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 برای مدیریت رویدادهای جایزه استفاده کنید.

    کاتلین

    // 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
        }
      },
    )
    

    جاوا

    // 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();
        }
    });
    

    برای تبلیغاتی که گوگل ارائه می‌دهد، GMA Next-Gen SDK قبل از متد onAdDismissedFullScreenContent() متد onUserEarnedReward() ) را فراخوانی می‌کند. برای تبلیغاتی که با AdMob Mediation ارائه می‌شوند، منبع تبلیغاتی شخص ثالث ترتیب فراخوانی مجدد را تعیین می‌کند. برای منابع تبلیغاتی که یک فراخوانی مجدد واحد با اطلاعات پاداش ارائه می‌دهند، آداپتور میانجیگری قبل از متد onAdDismissedFullScreenContent() متد onUserEarnedReward() را فراخوانی می‌کند. برای جزئیات بیشتر، به Set up AdMob Mediation مراجعه کنید.

    مثال

    برنامه‌ی نمونه‌ای که نحوه‌ی استفاده از GMA Next-Gen SDK را نشان می‌دهد، دانلود و اجرا کنید.