آگهی‌های پاداش‌دار

آگهی‌های پاداش‌دار به شما امکان می‌دهند درازای تعامل کاربران با آگهی‌های ویدیویی، آگهی‌های بازی‌کردنی، و نظرسنجی‌ها، به آن‌ها محصولات درون‌برنامه پاداش دهید.

قبل‌از شروع

قبل‌از ادامه دادن، موارد زیر را انجام دهید:

  • ‫Google Mobile Ads SDK (Legacy) را راه‌اندازی کنید.
  • از شناسه واحد آگهی پاداش‌دار آزمایشی ca-app-pub-3940256099942544/5224354917 استفاده کنید.
    • هنگام ساختن و آزمایش کردن برنامه‌هایتان، مطمئن شوید که از آگهی‌های آزمایشی به‌جای آگهی‌های زنده و تولید استفاده می‌کنید. اگر از شناسه واحد آگهی آزمایشی استفاده نکنید، Google می‌تواند حسابتان را تعلیق کند.
    • قبل‌از انتشار برنامه، این شناسه را با شناسه واحد آگهی خود جایگزین کنید.
    • برای جزئیات مربوط به Google Mobile Ads SDK (Legacy) آگهی آزمایشی، به فعال کردن آگهی‌های آزمایشی مراجعه کنید.

بار کردن هدف آگهی پاداش‌دار

آگهی‌های پاداش‌دار با فراخوانی روش ایستا load در کلاس RewardedAd و ارسال RewardedAdLoadCallback بارگیری می‌شوند. این کار معمولاً در روش onCreate یک Activity انجام می‌شود. توجه داشته باشید که مانند دیگر برگشت‌های تماس بار قالب، RewardedAdLoadCallback از LoadAdError برای ارائه جزئیات خطای با دقت بالاتر استفاده می‌کند.

جاوا

RewardedAd.load(
    this,
    "AD_UNIT_ID",
    new AdRequest.Builder().build(),
    new RewardedAdLoadCallback() {
      @Override
      public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
        Log.d(TAG, "Ad was loaded.");
        MainActivity.this.rewardedAd = rewardedAd;
      }

      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        Log.d(TAG, loadAdError.getMessage());
        rewardedAd = null;
      }
    });

Kotlin

RewardedAd.load(
  this,
  "AD_UNIT_ID",
  AdRequest.Builder().build(),
  object : RewardedAdLoadCallback() {
    override fun onAdLoaded(ad: RewardedAd) {
      Log.d(TAG, "Ad was loaded.")
      rewardedAd = ad
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      Log.d(TAG, adError.message)
      rewardedAd = null
    }
  },
)

‫AD_UNIT_ID را با شناسه واحد آگهی‌تان جایگزین کنید.

تنظیم FullScreenContentCallback

FullScreenContentCallback رویدادهای مربوط به نمایش RewardedAd را مدیریت می‌کند. قبل‌از نشان دادن RewardedAd، حتماً تماس برگشتی را به‌صورت زیر تنظیم کنید:

جاوا

rewardedAd.setFullScreenContentCallback(
    new FullScreenContentCallback() {
      @Override
      public void onAdDismissedFullScreenContent() {
        // Called when fullscreen content is dismissed.
        Log.d(TAG, "Ad was dismissed.");
        // Don't forget to set the ad reference to null so you
        // don't show the ad a second time.
        rewardedAd = null;
      }

      @Override
      public void onAdFailedToShowFullScreenContent(AdError adError) {
        // Called when fullscreen content failed to show.
        Log.d(TAG, "Ad failed to show.");
        // Don't forget to set the ad reference to null so you
        // don't show the ad a second time.
        rewardedAd = null;
      }

      @Override
      public void onAdShowedFullScreenContent() {
        // Called when fullscreen content is shown.
        Log.d(TAG, "Ad showed fullscreen content.");
      }

      @Override
      public void onAdImpression() {
        // Called when an impression is recorded for an ad.
        Log.d(TAG, "Ad recorded an impression.");
      }

      @Override
      public void onAdClicked() {
        // Called when an ad is clicked.
        Log.d(TAG, "Ad was clicked.");
      }
    });

Kotlin

rewardedAd?.fullScreenContentCallback =
  object : FullScreenContentCallback() {
    override fun onAdDismissedFullScreenContent() {
      // Called when fullscreen content is dismissed.
      Log.d(TAG, "Ad was dismissed.")
      // Don't forget to set the ad reference to null so you
      // don't show the ad a second time.
      rewardedAd = null
    }

    override fun onAdFailedToShowFullScreenContent(adError: AdError) {
      // Called when fullscreen content failed to show.
      Log.d(TAG, "Ad failed to show.")
      // Don't forget to set the ad reference to null so you
      // don't show the ad a second time.
      rewardedAd = null
    }

    override fun onAdShowedFullScreenContent() {
      // Called when fullscreen content is shown.
      Log.d(TAG, "Ad showed fullscreen content.")
    }

    override fun onAdImpression() {
      // Called when an impression is recorded for an ad.
      Log.d(TAG, "Ad recorded an impression.")
    }

    override fun onAdClicked() {
      // Called when an ad is clicked.
      Log.d(TAG, "Ad was clicked.")
    }
  }

نمایش آگهی

وقتی آگهی دارای پاداش نشان می‌دهید، از شیء OnUserEarnedRewardListener برای مدیریت رویدادهای پاداش استفاده کنید.

جاوا

rewardedAd.show(
    MainActivity.this,
    new OnUserEarnedRewardListener() {
      @Override
      public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
        Log.d(TAG, "User earned the reward.");
        // Handle the reward.
      }
    });

Kotlin

rewardedAd?.show(
  this,
  OnUserEarnedRewardListener { rewardItem ->
    Log.d(TAG, "User earned the reward.")
    // Handle the reward.
    val rewardAmount = rewardItem.amount
    val rewardType = rewardItem.type
  },
)

برای آگهی‌هایی که Google ارائه می‌کند، Google Mobile Ads SDK (Legacy) قبل‌از onUserEarnedReward روش onAdDismissedFullScreenContent روش را فرا می‌خواند. برای آگهی‌هایی که با «واسطه‌گری AdMob» ارائه می‌شوند، منبع آگهی طرف سوم ترتیب تماس برگشتی را تعیین می‌کند. برای منابع آگهی که یک تماس برگشتی بسته با اطلاعات پاداش ارائه می‌دهند، آداپتور میانجی‌گری روش onUserEarnedReward را قبل‌از روش onAdDismissedFullScreenContent فراخوانی می‌کند. برای جزئیات، به راه‌اندازی میانجی‌گری AdMob مراجعه کنید.

اختیاری: اعتبارسنجی کردن پیام‌های برگشتی درستی‌سنجی سمت سرور (SSV)

برنامه‌هایی که در درستی‌سنجی سمت سرور بازخوان‌ها به داده‌های اضافی نیاز دارند باید از ویژگی داده سفارشی آگهی‌های پاداش‌دار استفاده کنند. هر مقدار رشته‌ای که روی یک شیء آگهی پاداش‌دار تنظیم شده باشد، به پارامتر پُرسمان custom_data از بازخوان SSV منتقل می‌شود. اگر مقدار داده سفارشی تنظیم نشده باشد، مقدار پارامتر پُرسمان custom_data در برگشت تماس SSV وجود نخواهد داشت.

نمونه کد زیر نشان می‌دهد چگونه داده‌های سفارشی را روی یک شیء آگهی پاداش‌دار قبل‌از درخواست آگهی تنظیم کنید.

جاوا

RewardedAd.load(
    context,
    AD_UNIT_ID,
    new AdRequest.Builder().build(),
    new RewardedAdLoadCallback() {
      @Override
      public void onAdLoaded(RewardedAd ad) {
        rewardedAd = ad;
        ServerSideVerificationOptions options =
            new ServerSideVerificationOptions.Builder()
                .setCustomData("SAMPLE_CUSTOM_DATA_STRING")
                .build();
        rewardedAd.setServerSideVerificationOptions(options);
      }
    });

Kotlin

RewardedAd.load(
  context,
  AD_UNIT_ID,
  AdRequest.Builder().build(),
  object : RewardedAdLoadCallback() {
    override fun onAdLoaded(ad: RewardedAd) {
      rewardedAd = ad
      val options =
        ServerSideVerificationOptions.Builder().setCustomData("SAMPLE_CUSTOM_DATA_STRING").build()
      rewardedAd?.setServerSideVerificationOptions(options)
    }
  },
)

‫SAMPLE_CUSTOM_DATA_STRING را با داده‌های سفارشی خودتان جایگزین کنید.

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

مثال‌ها در GitHub

  • مثال آگهی پاداش‌دار: Java | Kotlin

مراحل بعدی

موضوعات زیر را کاوش کنید: