Berikut ini beberapa praktik terbaik integrasi untuk implementasi developer di Android. Tips dan skenario kode ini akan membantu tim Anda lebih memahami Audience Network SDK kami, membuat proses integrasi lebih efektif, dan terus memperbarui solusi setelah peluncuran.
loadAd
lagi hanya jika iklan telah ditutup atau pemuatan iklan mengalami kesalahan, kecuali iklan spanduk.Meski Anda diberi tahu tentang iklan ditutup atau kesalahan pada callback, pastikan Anda memiliki Jumlah Maks Coba Ulang untuk menghindari mencoba ulang tanpa batas. onError(Ad, AdError)
akan dipanggil apa pun penyebab kegagalan pemuatan iklan. Contoh: dalam kasus "Tidak Ada Internet", Anda seharusnya berhenti memuat iklan saat mencapai Jumlah Maks Coba Ulang.
Di Audience Network SDK, untuk semua jenis iklan kecuali iklan spanduk, sebaiknya berhati-hati saat memanggil loadAd
. Anda sebaiknya tidak memanggil loadAd
saat iklan sedang ditampilkan. Praktik terbaiknya adalah menerapkan AdListener
agar diberi tahu setiap kali iklan diabaikan, selesai, ditutup, atau mengalami kesalahan, yang memungkinkan Anda secara sah memanggil loadAd
lagi, dan tidak menyebabkan masalah.
loadAd
di callback onInterstitialDismissed
.private InterstitialAd mInterstitialAd; private static final MAX_NUMBER_OF_RETRIES = 3; private boolean shouldLoadAd = true; private int retryCount = 0; @Override protected void onCreate(Bundle savedInstanceState) { // call the super class onCreate super.onCreate(savedInstanceState); ... mInterstitialAd = new InterstitialAd(this, "YOUR_PLACEMENT_ID"); InterstitialAdListener interstitialAdListener = new InterstitialAdListener() { ... @Override public void onInterstitialDismissed(Ad ad) { // Interstitial dismissed callback if (shouldLoadAd) { /* Change shouldLoadAd value to false, or a new interstitial ad will show immediately when previous interstitial ad gets dismissed. */ shouldLoadAd = false; mInterstitialAd.loadAd(); } } @Override public void onError(Ad ad, AdError adError) { // Ad error callback // Stop retrying when it reaches to MAX_NUMBER_OF_RETRIES if(retryCount < MainActivity.MAX_NUMBER_OF_RETRIES) { retryCount += 1; mInterstitialAd.loadAd(); } } ... }; mInterstitialAd.loadAd( mInterstitialAd.buildLoadAdConfig() .withAdListener(interstitialAdListener) .build()); ... }
onError
untuk NativeAd
.private static final MAX_NUMBER_OF_RETRIES = 3; private NativeAd mNativeAd; private int retryCount = 0; @Override protected void onCreate(Bundle savedInstanceState) { // call the super class onResume super.onCreate(savedInstanceState); ... mNativeAd = new NativeAd(this, "YOUR_PLACEMENT_ID"); NativeAdListener nativeAdListener = new AdListener() { ... @Override public void onError(Ad ad, AdError error) { // Ad error callback // Stop retrying when it reaches to MAX_NUMBER_OF_RETRIES if (retryCount < MainActivity.MAX_NUMBER_OF_RETRIES) { retryCount += 1; mNativeAd.loadAd(); } } ... }; mNativeAd.loadAd( mNativeAd.buildLoadAdConfig() .withAdListener(nativeAdListener) .build()); ... }
private Button showNativeAdButton; @Override public void onCreate(Bundle savedInstanceState) { // call the super class onResume super.onCreate(savedInstanceState); ... showNativeAdButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Create a native ad request with a placement ID nativeAd = new NativeAd(NativeAdSampleActivity.this, "YOUR_PLACEMENT_ID"); // Create a listener to get notified when the ad was loaded. NativeAdListener nativeAdListener = new AdListener() { ... } // Initiate a request to load an ad. nativeAd.loadAd( nativeAd.buildLoadAdConfig() .withAdListener(nativeAdListener) .build()); } }); ... }
loadAd
di beberapa callback Android, seperti callback onResume()
atau onStart()
, yang dapat menyebabkan loadAd
dipanggil berkali-kali tanpa menutup atau melepaskan iklan terakhir dalam memori.@Override protected void onCreate(Bundle savedInstanceState) { // call the super class onResume super.onCreate(savedInstanceState); ... mNativeAd = new NativeAd(this, "YOUR_PLACEMENT_ID"); ... } @Override protected void onResume() { super.onResume(); ... // DON'T DO THIS! mNativeAd.loadAd( mNativeAd.buildLoadAdConfig() .withAdListener(NativeAdSampleActivity.this) .build()); }
loadAd
tanpa batas dalam callback onError. Di bawah ini contoh tindakan yang tidak boleh Anda lakukan. Dalam hal "Tidak Ada Internet", loadAd
akan dipanggil berkali-kali, yang akhirnya merusak aplikasi Anda.private NativeAd mNativeAd; private boolean shouldRetry = true; @Override protected void onCreate(Bundle savedInstanceState) { // call the super class onResume super.onCreate(savedInstanceState); ... mNativeAd = new NativeAd(this, "YOUR_PLACEMENT_ID"); NativeAdListener nativeAdListener = new AdListener() { ... @Override public void onError(Ad ad, AdError error) { // Ad error callback // Remember to change shouldRetry to false, or DON'T implement like this! if (shouldRetry) { mNativeAd.loadAd(); } } ... }; mNativeAd.loadAd( mNativeAd.buildLoadAdConfig() .withAdListener(NativeAdSampleActivity.this) .build()); ... }
Integrasi iklan uji dengan aplikasi Anda
Ajukan aplikasi Anda untuk ditinjau.
Begitu kami menerima permintaan untuk iklan dari aplikasi atau situs web Anda, kami akan meninjaunya untuk memastikan kepatuhan pada kebijakan Audience Network dan standar komunitas Facebook. Pelajari selengkapnya tentang proses peninjauan kami.
Sumber Informasi Lainnya |
Panduan MemulaiPanduan teknis untuk memulai dengan Audience Network | Referensi APIReferensi Facebook SDK untuk iOS |