Ödüllü geçiş reklamı, doğal uygulama geçişleri sırasında otomatik olarak gösterilen reklamlar için ödüller sunmanıza olanak tanıyan, teşvik edilmiş bir reklam biçimidir. Ödüllü reklamlardan farklı olarak, kullanıcıların ödüllü geçiş reklamı görüntülemek için kaydolmaları gerekmez.
Ön koşullar
- Google Mobile Ads SDK'sı 19.2.0 veya daha sonraki bir sürüm.
- Başlangıç kılavuzunu inceleyin.
Uygulama
Ödüllü geçiş reklamlarını entegre etmek için uygulanması gereken temel adımlar şunlardır:
- Reklam yükle
- [İsteğe bağlı] SSV geri çağırmalarını doğrulama
- Tam ekran etkinlik geri çağırmaları için kaydolun
- Ödül geri çağırmasını yönetin
- Reklamı görüntüle
Reklam yükle
Reklam yüklenmesi, RewardedInterstitialAd
sınıfındaki statik load()
yöntemi kullanılarak gerçekleştirilir. Yükleme yöntemi başarılı olduğunda veya başarısız olduğunda, yükleme yöntemi için bir bağlam,reklam birimi kimliğiniz, an AdRequest
nesne ve RewardedInterstitialAdLoadCallback
bildirimi gerekir. Yüklenen RewardedInterstitialAd
nesnesi, onRewardedInterstitialAdLoaded()
geri çağırmasında parametre olarak sağlanır. Aşağıdaki örnekte, MainActivity
içinde bir RewardedInterstitialAd
öğesinin nasıl yükleneceği 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, "ca-app-pub-3940256099942544/5354046379", new AdRequest.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, "ca-app-pub-3940256099942544/5354046379", AdRequest.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 } }) } }
[İsteğe bağlı] Sunucu tarafı doğrulama (SSV) geri çağırmalarını doğrulama
Sunucu tarafı doğrulama geri çağırmalarında ek veri gerektiren uygulamalar, ödüllü reklamların özel veri özelliğini kullanmalıdır. Ödüllü reklam nesnesinde ayarlanan dize değerleri, SSV geri çağırmasının custom_data
sorgu parametresine iletilir. Özel veri değeri ayarlanmazsa custom_data
sorgu parametresi değeri SSV geri çağırmasında yer almaz.
Aşağıdaki kod örneği, reklam istemeden önce ödüllü geçiş reklamı nesnesinde özel verilerin nasıl ayarlanacağını gösterir.
Java
RewardedInterstitialAd.load(MainActivity.this, "ca-app-pub-3940256099942544/5354046379", new AdRequest.Builder().build(), new RewardedInterstitialAdLoadCallback() { @Override public void onAdLoaded(RewardedInterstitialAd ad) { Log.d(TAG, "Ad was loaded."); rewardedInterstitialAd = ad; ServerSideVerificationOptions options = new ServerSideVerificationOptions .Builder() .setCustomData("SAMPLE_CUSTOM_DATA_STRING") .build(); rewardedInterstitialAd.setServerSideVerificationOptions(options); } @Override public void onAdFailedToLoad(LoadAdError loadAdError) { Log.d(TAG, loadAdError.toString()); rewardedInterstitialAd = null; } });
Kotlin
RewardedInterstitialAd.load(this, "ca-app-pub-3940256099942544/5354046379", AdRequest.Builder().build(), object : RewardedInterstitialAdLoadCallback() { override fun onAdLoaded(ad: RewardedInterstitialAd) { Log.d(TAG, "Ad was loaded.") rewardedInterstitialAd = ad val options = ServerSideVerificationOptions.Builder() .setCustomData("SAMPLE_CUSTOM_DATA_STRING") .build() rewardedInterstitialAd.setServerSideVerificationOptions(options) } override fun onAdFailedToLoad(adError: LoadAdError) { Log.d(TAG, adError?.toString()) rewardedInterstitialAd = null } })
Özel ödül dizesini ayarlamak istiyorsanız reklamı göstermeden önce bunu yapmanız gerekir.
Geri çağırmalar için kaydolun
Sunu etkinlikleriyle ilgili bildirim almak için reklamınızdaki setter'a bir FullScreenContentCallback
nesnesi iletmeniz gerekir. FullScreenContentCallback
nesnesi, reklamın başarılı bir şekilde veya başarısız bir şekilde gösterildiği ve kapatıldığı geri çağırmaları işler. Aşağıdaki kodda, RewardedInterstitialAdLoadCallback
içinde anonim bir FullScreenContentCallback
nesnesinin nasıl ayarlanacağı gösterilmektedir:
Java
public void loadAd(){ RewardedInterstitialAd.load(MainActivity.this, "ca-app-pub-3940256099942544/5354046379", new AdRequest.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, "ca-app-pub-3940256099942544/5354046379", AdRequest.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 işleme
Ödüllü geçiş reklamınızı görüntülemek için MainActivity
arayüzünüzdeki OnUserEarnedRewardListener
arayüzünü kullanarak kullanıcı bir ö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ı, reklam show()
yöntemini kullanarak şu şekilde sunabilirsiniz:
Java
rewardedInterstitialAd.show(/* Activity */ MainActivity.this,/* OnUserEarnedRewardListener */ MainActivity.this);
Kotlin
rewardedInterstitialAd?.show(/* Activity */ this, /* OnUserEarnedRewardListener */ this)