بینابینی پاداشدار نوعی قالب تبلیغاتی است که به شما امکان میدهد برای تبلیغاتی که بهطور خودکار در طول انتقال طبیعی برنامه ظاهر میشوند، پاداش ارائه دهید. برخلاف آگهیهای دارای پاداش، کاربران مجبور نیستند برای مشاهده یک بینابینی پاداشدار شرکت کنند.
پیش نیازها
* Google Mobile Ads SDK 19.2.0 یا بالاتر.- راهنمای شروع را کامل کنید.
پیاده سازی
مراحل اولیه برای ادغام تبلیغات بینابینی دارای پاداش به شرح زیر است:
- یک تبلیغ را بارگیری کنید
- برای تماس های رویداد تمام صفحه ثبت نام کنید
- پاسخ به تماس پاداش را مدیریت کنید
- نمایش آگهی
یک تبلیغ را بارگیری کنید
بارگذاری یک تبلیغ با استفاده از روش load()
در کلاس RewardedInterstitialAd
انجام می شود. روش بارگیری به یک Context، شناسه واحد تبلیغات شما، یک شی AdManagerAdRequest
و یک RewardedInterstitialAdLoadCallback
نیاز دارد تا در صورت موفقیت یا ناموفق بودن بارگیری آگهی مطلع شوند. شیء بارگذاری شده RewardedInterstitialAd
به عنوان یک پارامتر در پاسخ به تماس onRewardedInterstitialAdLoaded()
ارائه می شود.
مثال زیر نحوه بارگیری RewardedInterstitialAd
را در MainActivity
خود نشان می دهد.
جاوا
public class MainActivity extends AppCompatActivity {
private RewardedInterstitialAd rewardedInterstitialAd;
private String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(
() -> {
// Initialize the Google Mobile Ads SDK on a background thread.
MobileAds.initialize(this, initializationStatus -> {});
// Load an ad on the main thread.
runOnUiThread(
() -> {
loadAd();
});
})
.start();
}
public void loadAd() {
// Use the test ad unit ID to load an ad.
RewardedInterstitialAd.load(MainActivity.this, "/21775744923/example/rewarded-interstitial",
new AdManagerAdRequest.Builder().build(), new RewardedInterstitialAdLoadCallback() {
@Override
public void onAdLoaded(RewardedInterstitialAd ad) {
Log.d(TAG, "Ad was loaded.");
rewardedInterstitialAd = ad;
}
@Override
public void onAdFailedToLoad(LoadAdError loadAdError) {
Log.d(TAG, loadAdError.toString());
rewardedInterstitialAd = null;
}
});
}
}
کاتلین
import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAd
import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAdLoadCallback
class MainActivity : AppCompactActivity() {
private var rewardedInterstitialAd? = null
private final var TAG = "MainActivity"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val backgroundScope = CoroutineScope(Dispatchers.IO)
backgroundScope.launch {
// Initialize the Google Mobile Ads SDK on a background thread.
MobileAds.initialize(this@MainActivity) {}
// Load an ad on the main thread.
runOnUiThread {
loadAd()
}
}
}
private fun loadAd() {
RewardedInterstitialAd.load(this, "/21775744923/example/rewarded-interstitial",
AdManagerAdRequest.Builder().build(), object : RewardedInterstitialAdLoadCallback() {
override fun onAdLoaded(ad: RewardedInterstitialAd) {
Log.d(TAG, "Ad was loaded.")
rewardedInterstitialAd = ad
}
override fun onAdFailedToLoad(adError: LoadAdError) {
Log.d(TAG, adError?.toString())
rewardedInterstitialAd = null
}
})
}
}
برای پاسخ به تماس ها ثبت نام کنید
برای دریافت اعلانها برای رویدادهای ارائه، باید یک شی FullScreenContentCallback
به تنظیمکننده آگهی خود ارسال کنید. شیء FullScreenContentCallback
برای زمانی که تبلیغ با موفقیت یا ناموفق نمایش داده می شود و زمانی که رد می شود، پاسخ تماس ها را کنترل می کند. کد زیر نحوه تنظیم یک شی FullScreenContentCallback
ناشناس را در RewardedInterstitialAdLoadCallback
خود نشان می دهد:
جاوا
public void loadAd(){
RewardedInterstitialAd.load(MainActivity.this, "/21775744923/example/rewarded-interstitial",
new AdManagerAdRequest.Builder().build(), new RewardedInterstitialAdLoadCallback() {
@Override
public void onAdLoaded(RewardedInterstitialAd ad) {
rewardedInterstitialAd = ad;
rewardedInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
@Override
public void onAdClicked() {
// Called when a click is recorded for an ad.
Log.d(TAG, "Ad was clicked.");
}
@Override
public void onAdDismissedFullScreenContent() {
// Called when ad is dismissed.
// Set the ad reference to null so you don't show the ad a second time.
Log.d(TAG, "Ad dismissed fullscreen content.");
rewardedInterstitialAd = null;
}
@Override
public void onAdFailedToShowFullScreenContent(AdError adError) {
// Called when ad fails to show.
Log.e(TAG, "Ad failed to show fullscreen content.");
rewardedInterstitialAd = null;
}
@Override
public void onAdImpression() {
// Called when an impression is recorded for an ad.
Log.d(TAG, "Ad recorded an impression.");
}
@Override
public void onAdShowedFullScreenContent() {
// Called when ad is shown.
Log.d(TAG, "Ad showed fullscreen content.");
}
});
}
@Override
public void onAdFailedToLoad(LoadAdError loadAdError) {
Log.d(TAG, loadAdError.toString());
rewardedInterstitialAd = null;
}
});
}
کاتلین
private fun loadAd() {
RewardedInterstitialAd.load(this, "/21775744923/example/rewarded-interstitial",
AdManagerAdRequest.Builder().build(), object : RewardedInterstitialAdLoadCallback() {
override fun onAdLoaded(ad: RewardedInterstitialAd) {
rewardedInterstitialAd = ad
rewardedInterstitialAd?.fullScreenContentCallback = object: FullScreenContentCallback() {
override fun onAdClicked() {
// Called when a click is recorded for an ad.
Log.d(TAG, "Ad was clicked.")
}
override fun onAdDismissedFullScreenContent() {
// Called when ad is dismissed.
// Set the ad reference to null so you don't show the ad a second time.
Log.d(TAG, "Ad dismissed fullscreen content.")
rewardedInterstitialAd = null
}
override fun onAdFailedToShowFullScreenContent(adError: AdError) {
// Called when ad fails to show.
Log.e(TAG, "Ad failed to show fullscreen content.")
rewardedInterstitialAd = null
}
override fun onAdImpression() {
// Called when an impression is recorded for an ad.
Log.d(TAG, "Ad recorded an impression.")
}
override fun onAdShowedFullScreenContent() {
// Called when ad is shown.
Log.d(TAG, "Ad showed fullscreen content.")
}
}
}
override fun onAdFailedToLoad(adError: LoadAdError) {
Log.d(TAG, adError?.toString())
rewardedInterstitialAd = null
}
})
}
پاداش ها را مدیریت کنید
برای نمایش تبلیغ بینابینی پاداش داده شده خود، رابط OnUserEarnedRewardListener
را در MainActivity
خود پیاده سازی کنید تا در صورت کسب پاداش به کاربر اطلاع داده شود.
جاوا
public class MainActivity extends AppCompatActivity implements OnUserEarnedRewardListener {
...
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
Log.i(TAG, "User earned reward.");
// TODO: Reward the user!
}
}
کاتلین
class MainActivity : AppCompatActivity(), OnUserEarnedRewardListener {
...
override fun onUserEarnedReward(rewardItem: RewardItem) {
Log.d(TAG, "User earned reward.")
// TODO: Reward the user!
}
}
آگهی را نمایش دهید
پس از پیادهسازی رابط OnUserEarnedRewardListener
، میتوانید تبلیغ را با استفاده از متد show()
آگهی ارائه دهید:
جاوا
rewardedInterstitialAd.show(/* Activity */ MainActivity.this,/*
OnUserEarnedRewardListener */ MainActivity.this);
کاتلین
rewardedInterstitialAd?.show(/* Activity */ this, /*
OnUserEarnedRewardListener */ this)
نمونه هایی در GitHub
مراحل بعدی
موضوعات زیر را بررسی کنید: