Prasyarat
Selalu melakukan pengujian dengan iklan percobaan
Saat membangun dan menguji aplikasi, pastikan Anda menggunakan iklan percobaan, bukan iklan produksi langsung. Jika Anda tidak melakukannya, akun Anda dapat ditangguhkan.
Cara termudah untuk memuat iklan percobaan adalah dengan menggunakan ID unit iklan percobaan khusus kami untuk iklan reward Android:
ca-app-pub-3940256099942544/5224354917
Iklan ini telah dikonfigurasi secara khusus agar menampilkan iklan percobaan untuk setiap permintaan, dan Anda dapat menggunakannya di aplikasi Anda sendiri saat melakukan coding, pengujian, dan proses debug. Pastikan Anda menggantinya dengan ID unit iklan Anda sendiri sebelum memublikasikan aplikasi.
Untuk mengetahui informasi selengkapnya tentang cara kerja iklan percobaan GMA Next Gen SDK, lihat Iklan Percobaan.
Memuat iklan
Untuk memuat iklan, GMA Next Gen SDK menawarkan hal berikut:
Muat dengan API pemuatan iklan tunggal.
Memuat dengan API pra-pemuatan iklan, yang menghilangkan kebutuhan untuk pemuatan dan caching iklan manual.
Memuat dengan API pemuatan iklan tunggal
Contoh berikut menunjukkan cara memuat satu iklan:
Kotlin
import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback
import com.google.android.libraries.ads.mobile.sdk.common.AdRequest
import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAd
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAdEventCallback
import com.google.android.libraries.ads.mobile.sdk.MobileAds
class RewardedActivity : Activity() {
private var rewardedAd: RewardedAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Load ads after you inititalize GMA Next Gen SDK.
RewardedAd.load(
AdRequest.Builder(AD_UNIT_ID).build(),
object : AdLoadCallback<RewardedAd> {
override fun onAdLoaded(ad: RewardedAd) {
// Rewarded ad loaded.
rewardedAd = ad
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Rewarded ad failed to load.
rewardedAd = null
}
},
)
}
companion object {
// Sample rewarded ad unit ID.
const val AD_UNIT_ID = "ca-app-pub-3940256099942544/5224354917"
}
}
Java
import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback;
import com.google.android.libraries.ads.mobile.sdk.common.AdRequest;
import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError;
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError;
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAd;
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAdEventCallback;
import com.google.android.libraries.ads.mobile.sdk.MobileAds;
class RewardedActivity extends Activity {
// Sample rewarded ad unit ID.
private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/5224354917";
private RewardedAd rewardedAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load ads after you initialize GMA Next Gen SDK.
RewardedAd.load(
new AdRequest.Builder(AD_UNIT_ID).build(),
new AdLoadCallback<RewardedAd>() {
@Override
public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
// Rewarded ad loaded.
AdLoadCallback.super.onAdLoaded(rewardedAd);
RewardedActivity.this.rewardedAd = rewardedAd;
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError adError) {
// Rewarded ad failed to load.
AdLoadCallback.super.onAdFailedToLoad(adError);
rewardedAd = null;
}
}
);
}
}
Memuat dengan API pra-pemuatan iklan
Untuk memulai pra-pemuatan, lakukan hal berikut:
Lakukan inisialisasi konfigurasi pra-pemuatan dengan permintaan iklan.
Mulai pemuat awal untuk iklan reward dengan ID unit iklan dan konfigurasi pemuatan awal:
Kotlin
private fun startPreloading(adUnitId: String) {
val adRequest = AdRequest.Builder(adUnitId).build()
val preloadConfig = PreloadConfiguration(adRequest)
RewardedAdPreloader.start(adUnitId, preloadConfig)
}
Java
private void startPreloading(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
RewardedAdPreloader.start(adUnitId, preloadConfig);
}
Saat Anda siap menampilkan iklan, polling iklan dari pra-pemuat:
Kotlin
// Polling returns the next available ad and loads another ad in the background.
val ad = RewardedAdPreloader.pollAd(adUnitId)
Java
// Polling returns the next available ad and loads another ad in the background.
final RewardedAd ad = RewardedAdPreloader.pollAd(adUnitId);
Menetapkan RewardedAdEventCallback
RewardedAdEventCallback menangani peristiwa yang terkait dengan menampilkan
RewardedAd Anda. Sebelum menampilkan iklan reward, pastikan untuk menyetel
callback:
Kotlin
// Listen for ad events.
rewardedAd?.adEventCallback =
object : RewardedAdEventCallback {
override fun onAdShowedFullScreenContent() {
// Rewarded ad did show.
}
override fun onAdDismissedFullScreenContent() {
// Rewarded ad did dismiss.
rewardedAd = null
}
override fun onAdFailedToShowFullScreenContent(
fullScreenContentError: FullScreenContentError
) {
// Rewarded ad failed to show.
rewardedAd = null
}
override fun onAdImpression() {
// Rewarded ad did record an impression.
}
override fun onAdClicked() {
// Rewarded ad did record a click.
}
}
Java
// Listen for ad events.
rewardedAd.setAdEventCallback(
new RewardedAdEventCallback() {
@Override
public void onAdShowedFullScreenContent() {
// Rewarded ad did show.
RewardedAdEventCallback.super.onAdShowedFullScreenContent();
}
@Override
public void onAdDismissedFullScreenContent() {
// Rewarded ad did dismiss.
RewardedAdEventCallback.super.onAdDismissedFullScreenContent();
rewardedAd = null;
}
@Override
public void onAdFailedToShowFullScreenContent(
@NonNull FullScreenContentError fullScreenContentError) {
// Rewarded ad failed to show.
RewardedAdEventCallback.super.onAdFailedToShowFullScreenContent(
fullScreenContentError);
rewardedAd = null;
}
@Override
public void onAdImpression() {
// Rewarded ad did record an impression.
RewardedAdEventCallback.super.onAdImpression();
}
@Override
public void onAdClicked() {
// Rewarded ad did record a click.
RewardedAdEventCallback.super.onAdClicked();
}
}
);
Menampilkan iklan
Untuk menampilkan iklan reward, gunakan metode show(). Gunakan objek
OnUserEarnedRewardListener untuk menangani peristiwa reward.
Kotlin
// Show the ad.
rewardedAd?.show(
this@RewardedActivity,
object : OnUserEarnedRewardListener {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// User earned the reward.
val rewardAmount = rewardItem.amount
val rewardType = rewardItem.type
}
},
)
Java
// Show the ad.
rewardedAd.show(
RewardedActivity.this,
new OnUserEarnedRewardListener() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
// User earned the reward.
int rewardAmount = rewardItem.getAmount();
String rewardType = rewardItem.getType();
}
});
FAQ
- Apakah ada waktu tunggu untuk panggilan inisialisasi?
- Setelah 10 detik, GMA SDK Generasi Berikutnya memanggil
OnInitializationCompleteListenermeskipun jaringan mediasi belum menyelesaikan inisialisasi. - Bagaimana jika beberapa jaringan mediasi belum siap saat saya mendapatkan callback inisialisasi?
Sebaiknya muat iklan di dalam callback
OnInitializationCompleteListener. Meskipun jaringan mediasi belum siap, GMA Next Gen SDK tetap meminta iklan dari jaringan tersebut. Jadi, jika jaringan mediasi selesai melakukan inisialisasi setelah waktu tunggu habis, jaringan tersebut masih dapat melayani permintaan iklan mendatang dalam sesi tersebut.Anda dapat terus melakukan polling status inisialisasi semua adaptor selama sesi aplikasi dengan memanggil
MobileAds.getInitializationStatus().- Bagaimana cara mengetahui alasan jaringan mediasi tertentu tidak siap?
AdapterStatus.getDescription()menjelaskan alasan adaptor belum siap untuk menayangkan permintaan iklan.- Apakah callback
onUserEarnedReward()selalu dipanggil sebelum callbackonAdDismissedFullScreenContent()? Untuk iklan Google, semua panggilan
onUserEarnedReward()terjadi sebelumonAdDismissedFullScreenContent(). Untuk iklan yang ditayangkan melalui mediasi, penerapan SDK jaringan iklan pihak ketiga menentukan urutan callback. Untuk SDK jaringan iklan yang menyediakan satu callback penutup dengan informasi reward, adaptor mediasi memanggilonUserEarnedReward()sebelumonAdDismissedFullScreenContent().
Contoh
Download dan jalankan aplikasi contoh yang menunjukkan penggunaan GMA SDK Generasi Berikutnya.