插页式激励广告是一种激励用户的广告格式,采用这种格式时,您可以通过在应用中的自然过渡点自动展示的广告向用户提供奖励。与激励广告不同,用户无需自行选择即可观看插页式激励广告。
前提条件
- Google 移动广告 SDK 19.2.0 或更高版本。
- 通读入门指南。
实现
植入插页式激励广告的主要步骤如下所示:
- 加载广告
- 注册全屏事件回调
- 处理奖励回调
- 展示广告
Reklam yükle
Reklam yükleme, RewardedInterstitialAd
sınıfındaki statik load()
yöntemi kullanılarak tamamlanır. Yükleme yöntemi, reklam yükleme başarılı veya başarısız olduğunda bilgilendirilmek için bir Bağlam, reklam birimi kimliğiniz, bir AdManagerAdRequest
nesnesi ve bir RewardedInterstitialAdLoadCallback
gerektirir. Yüklenen RewardedInterstitialAd
nesnesi, onRewardedInterstitialAdLoaded()
geri çağırmasında parametre olarak sağlanır.
Aşağıdaki örnekte, MainActivity
cihazınıza nasıl RewardedInterstitialAd
yükleyeceğiniz gösterilmektedir.
Java
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);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
loadAd();
}
});
}
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;
}
});
}
}
Kotlin
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)
MobileAds.initialize(this) { initializationStatus ->
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
}
})
}
}
Geri çağırmalara kaydol
Sunu etkinlikleriyle ilgili bildirim almak için reklamınızdaki ayarlayıcıya bir FullScreenContentCallback
nesnesi iletmeniz gerekir. FullScreenContentCallback
nesnesi, reklamın başarıyla veya başarısız bir şekilde sunulması ve kapatılması durumunda yapılan geri çağırmaları işler. Aşağıdaki kod, RewardedInterstitialAdLoadCallback
içinde anonim bir FullScreenContentCallback
nesnesinin nasıl ayarlanacağını gösterir:
Java
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;
}
});
}
Kotlin
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
}
})
}
Ödülleri yönetin
Ödüllü geçiş reklamınızı göstermek için MainActivity
uygulamanıza OnUserEarnedRewardListener
arayüzünü uygulayın ve kullanıcı ödül kazandığında bildirim alın.
Java
public class MainActivity extends AppCompatActivity implements OnUserEarnedRewardListener {
...
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
Log.i(TAG, "User earned reward.");
// TODO: Reward the user!
}
}
Kotlin
class MainActivity : AppCompatActivity(), OnUserEarnedRewardListener {
...
override fun onUserEarnedReward(rewardItem: RewardItem) {
Log.d(TAG, "User earned reward.")
// TODO: Reward the user!
}
}
Reklamı göster
OnUserEarnedRewardListener
arayüzünü uyguladıktan sonra, reklamın show()
yöntemini kullanarak reklamı aşağıdaki gibi sunabilirsiniz:
Java
rewardedInterstitialAd.show(/* Activity */ MainActivity.this,/*
OnUserEarnedRewardListener */ MainActivity.this);
Kotlin
rewardedInterstitialAd?.show(/* Activity */ this, /*
OnUserEarnedRewardListener */ this)
GitHub'daki örnekler
Sonraki adımlar
Aşağıdaki konuları inceleyin: