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

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

این راهنما نحوه ادغام کردن آگهی‌های تمام‌صفحه پاداش‌دار را در برنامه Android توضیح می‌دهد.

قبل‌از شروع

پیش‌از ادامه دادن، کارهای زیر را انجام دهید:

  • GMA Next-Gen SDK را راه‌اندازی کنید.
  • از شناسه واحد آگهی تمام‌صفحه پاداش‌دار آزمایشی ca-app-pub-3940256099942544/5354046379 استفاده کنید.
    • هنگام ساختن و آزمایش کردن برنامه‌تان، مطمئن شوید که از آگهی‌های آزمایشی به‌جای آگهی‌های زنده و تولیدی استفاده می‌کنید. اگر از شناسه واحد آگهی آزمایشی استفاده نکنید، Google می‌تواند حسابتان را تعلیق کند.
    • قبل‌از انتشار برنامه‌تان، این شناسه را با شناسه واحد آگهی‌تان جایگزین کنید.
    • برای جزئیات درباره آگهی‌های آزمایشی GMA Next-Gen SDK، به فعال کردن آگهی‌های آزمایشی مراجعه کنید.

بار کردن آگهی

مثال زیر یک آگهی را بار می‌کند:

Kotlin

// Load ads after you initialize MobileAds.
RewardedInterstitialAd.load(
  AdRequest.Builder(adUnitId).build(),
  object : AdLoadCallback<RewardedInterstitialAd> {
    override fun onAdLoaded(ad: RewardedInterstitialAd) {
      // Rewarded interstitial ad loaded.
      rewardedInterstitialAd = ad
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      // Rewarded interstitial ad failed to load.
      Log.e(TAG, "Rewarded interstitial ad failed to load: ${adError.message}")
      rewardedInterstitialAd = null
    }
  },
)

جاوا

// Load ads after you initialize MobileAds.
RewardedInterstitialAd.load(
    new AdRequest.Builder(adUnitId).build(),
    new AdLoadCallback<RewardedInterstitialAd>() {
      @Override
      public void onAdLoaded(@NonNull RewardedInterstitialAd ad) {
        // Rewarded interstitial ad loaded.
        rewardedInterstitialAd = ad;
      }

      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError adError) {
        // Rewarded interstitial ad failed to load.
        Log.e(TAG, "Rewarded interstitial ad failed to load: " + adError.getMessage());
        rewardedInterstitialAd = null;
      }
    });

هنگام آزمایش، از شناسه واحد آگهی آزمایشی استفاده کنید: ca-app-pub-3940256099942544/5354046379.

نمایش آگهی

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

مثال زیر آگهی را نمایش می‌دهد:

Kotlin

private fun showAd(rewardedInterstitialAd: RewardedInterstitialAd, activity: Activity) {
  // Show the ad.
  rewardedInterstitialAd.show(
    activity,
    object : OnUserEarnedRewardListener {
      override fun onUserEarnedReward(rewardItem: RewardItem) {
        // User earned the reward.
        val rewardAmount = rewardItem.amount
        val rewardType = rewardItem.type
      }
    },
  )
}

جاوا

private void showAd(RewardedInterstitialAd rewardedInterstitialAd, Activity activity) {
  // Show the ad.
  rewardedInterstitialAd.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 = rewardedInterstitialAd
  if (ad == null) {
    Log.e(TAG, "Rewarded interstitial ad is not ready yet.")
    return
  }

  ad.adEventCallback =
    object : RewardedInterstitialAdEventCallback {
      override fun onAdShowedFullScreenContent() {
        // Rewarded interstitial ad did show.
      }

      override fun onAdDismissedFullScreenContent() {
        // Rewarded interstitial ad did dismiss.
        rewardedInterstitialAd = null
      }

      override fun onAdFailedToShowFullScreenContent(
        fullScreenContentError: FullScreenContentError
      ) {
        // Rewarded interstitial ad failed to show.
        Log.e(TAG, "Rewarded interstitial ad failed to show: ${fullScreenContentError.message}")
      }

      override fun onAdImpression() {
        // Rewarded interstitial ad did record an impression.
      }

      override fun onAdClicked() {
        // Rewarded interstitial ad did record a click.
      }
    }
}

جاوا

private void listenToAdEvents() {
  // Listen for ad events.
  if (rewardedInterstitialAd == null) {
    Log.e(TAG, "Rewarded interstitial ad is not ready yet.");
    return;
  }

  rewardedInterstitialAd.setAdEventCallback(
      new RewardedInterstitialAdEventCallback() {
        @Override
        public void onAdShowedFullScreenContent() {
          // Rewarded interstitial ad did show.
        }

        @Override
        public void onAdDismissedFullScreenContent() {
          // Rewarded interstitial ad did dismiss.
          rewardedInterstitialAd = null;
        }

        @Override
        public void onAdFailedToShowFullScreenContent(
            @NonNull FullScreenContentError fullScreenContentError) {
          // Rewarded interstitial ad failed to show.
          Log.e(
              TAG,
              "Rewarded interstitial ad failed to show: " + fullScreenContentError.getMessage());
        }

        @Override
        public void onAdImpression() {
          // Rewarded interstitial ad did record an impression.
        }

        @Override
        public void onAdClicked() {
          // Rewarded interstitial ad did record a click.
        }
      });
}

اختیاری: اعتبارسنجی فراخوانی‌های درستی‌سنجی سمت سرور (SSV)

برای ارسال بافت کاربر و برنامه در درستی‌سنجی سمت سرور (SSV) فراخوانی‌های برگشتی، گزینه‌های درستی‌سنجی را قبل‌از نمایش آگهی در شیء آگهی تنظیم کنید. چون فراخوانی‌های برگشتی SSV بدون وضعیت جلسه از Google به سرور شما می‌رسند، رشته‌های اختیاری زیر را پیوست کنید. Google این رشته‌ها را بدون تغییر به‌عنوان پارامترهای پُرسمان امضاشده در فراخوانی SSV بازارسال می‌کند:

  • پارامتر پُرسمان user_id: کاربر را برای اعتباردهی شناسایی می‌کند، مثلاً شناسه حساب داخلی.
  • پارامتر پُرسمان custom_data: داده‌های برنامه را حمل می‌کند، مثل جایگاه پاداش، سطح بازی، یا عدد یک‌باراستفاده تولیدشده توسط سرور.

اگر مقداری تنظیم نکنید، Google آن پارامتر پُرسمان را از فراخوانی SSV حذف می‌کند.

مثال زیر داده‌های سفارشی را در شیء آگهی قبل‌از نمایش آگهی تنظیم می‌کند:

Kotlin

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

جاوا

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

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

نکته کلیدی: پارامتر پُرسمان custom_data کدبندی درصدی شده است. قبل‌از تجزیه کردن مقدار، رشته را در سرورتان رمزگشایی نشانی وب کنید و امضای فراخوان را قبل‌از اعتماد کردن به پارامترهای پُرسمان user_id یا custom_data درستی‌سنجی کنید.