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

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

پیش نیازها

  • راهنمای شروع را کامل کنید.
  • همیشه با تبلیغات آزمایشی تست کنید

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

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

    ca-app-pub-3940256099942544/5224354917

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

    برای اطلاعات بیشتر درباره نحوه عملکرد تبلیغات آزمایشی SDK (بتا) تبلیغات موبایل Google، به آگهی‌های آزمایشی مراجعه کنید.

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

    برای بارگیری یک تبلیغ با پاداش، متد load() RewardedAd static load را فراخوانی کنید و یک AdLoadCallback<RewardedAd> برای دریافت آگهی بارگذاری شده یا هر گونه خطای احتمالی ارسال کنید.

    کاتلین

    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"
      }
    }
    

    جاوا

    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 شما را مدیریت می کند. قبل از نمایش تبلیغ پاداش، مطمئن شوید که پاسخ تماس را تنظیم کرده اید:

    کاتلین

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

    سوالات متداول

    آیا مهلت زمانی برای تماس اولیه وجود دارد؟
    پس از 10 ثانیه، Google Mobile Ads SDK (بتا) OnInitializationCompleteListener فراخوانی می کند، حتی اگر یک شبکه میانجی هنوز راه اندازی اولیه را کامل نکرده باشد.
    اگر برخی از شبکه‌های میانجی آماده نباشند، چه باید کرد؟

    توصیه می‌کنیم یک آگهی را در پاسخ به تماس OnInitializationCompleteListener بارگیری کنید. حتی اگر یک شبکه میانجی آماده نباشد، Google Mobile Ads SDK (بتا) همچنان از آن شبکه درخواست تبلیغ می‌کند. بنابراین، اگر یک شبکه میانجی پس از اتمام زمان، شروع به کار کند، همچنان می‌تواند درخواست‌های تبلیغات آینده را در آن جلسه سرویس دهد.

    می‌توانید با فراخوانی MobileAds.getInitializationStatus() به بررسی وضعیت اولیه همه آداپتورها در طول جلسه برنامه خود ادامه دهید.

    چگونه می توانم بفهمم که چرا یک شبکه میانجی خاص آماده نیست؟

    AdapterStatus.getDescription() توضیح می دهد که چرا یک آداپتور آماده سرویس دهی به درخواست های تبلیغاتی نیست.

    آیا پاسخ به تماس onUserEarnedReward() همیشه قبل از پاسخ به تماس onAdDismissedFullScreenContent() فراخوانی می شود؟

    برای تبلیغات Google، همه تماس‌های onUserEarnedReward() قبل از onAdDismissedFullScreenContent() انجام می‌شود. برای تبلیغاتی که از طریق میانجیگری ارائه می‌شوند، پیاده‌سازی SDK شبکه تبلیغاتی شخص ثالث ترتیب برگشت به تماس را تعیین می‌کند. برای SDK های شبکه تبلیغاتی که یک پاسخ تماس نزدیک با اطلاعات پاداش ارائه می کنند، آداپتور میانجی onUserEarnedReward() قبل از onAdDismissedFullScreenContent() فراخوانی می کند.

    مثال

    برنامه مثالی را که استفاده از Google Mobile Ads SDK (بتا) را نشان می دهد، دانلود و اجرا کنید.