Menambahkan Iklan Interstisial ke Aplikasi Android

Dengan Audience Network, Anda dapat memonetisasi aplikasi Android dengan iklan Facebook. Iklan interstisial adalah iklan layar penuh yang dapat Anda tunjukkan di aplikasi Anda. Biasanya iklan interstisial ditampilkan ketika ada transisi di aplikasi Anda. Contoh: setelah menyelesaikan level dalam game atau setelah memuat cerita di aplikasi berita.

Pastikan Anda sudah membaca tuntas panduan Memulai dan Memulai Android Audience Network sebelum melanjutkan.

Langkah demi Langkah

Langkah 1: Menginisialisasi Iklan Interstisial di Aktivitas Anda

Langkah 2: Menampilkan Iklan Interstisial di Aktivitas Anda

Menginisialisasi SDK Audience Network

Metode ini ditambahkan di SDK Audience Network Android versi 5.1.

Inisialisasi eksplisit SDK Audience Network Android diperlukan untuk versi 5.3.0 dan lebih besar. Baca dokumen ini tentang cara menginisialisasi SDK Audience Network Android.

Sebelum membuat benda iklan dan memuat iklan, Anda harus menginisialisasi SDK Audience Network. Sebaiknya lakukan hal ini pada saat aplikasi dibuka.

public class YourApplication extends Application {
    ...
    @Override
    public void onCreate() {
        super.onCreate();
        // Initialize the Audience Network SDK
        AudienceNetworkAds.initialize(this);       
    }
    ...
}

Langkah 1: Menginisialisasi Iklan Interstisial di Aktivitas Anda

Tambahkan kode berikut di bagian atas Aktivitas Anda untuk mengimpor SDK Iklan Facebook:

import com.facebook.ads.*;

Inisialisasi InterstitialAd.

private InterstitialAd interstitialAd;

@Override
public void onCreate(Bundle savedInstanceState) {
...
  // Instantiate an InterstitialAd object. 
  // NOTE: the placement ID will eventually identify this as your App, you can ignore it for
  // now, while you are testing and replace it later when you have signed up.
  // While you are using this temporary code you will only get test ads and if you release
  // your code like this to the Google Play your users will not receive ads (you will get a no fill error).
  interstitialAd = new InterstitialAd(this, "YOUR_PLACEMENT_ID");
...  

Langkah 2: Menampilkan Iklan Interstisial

Skenario 1: Buat InterstitialAdListener, muat Iklan dan tunjukkan Iklan segera setelah berhasil dimuat.

public class InterstitialAdActivity extends Activity {

    private final String TAG = InterstitialAdActivity.class.getSimpleName();
    private InterstitialAd interstitialAd;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Instantiate an InterstitialAd object.
        // NOTE: the placement ID will eventually identify this as your App, you can ignore it for
        // now, while you are testing and replace it later when you have signed up.
        // While you are using this temporary code you will only get test ads and if you release
        // your code like this to the Google Play your users will not receive ads (you will get a no fill error).
        interstitialAd = new InterstitialAd(this, "YOUR_PLACEMENT_ID");
        // Create listeners for the Interstitial Ad
        InterstitialAdListener interstitialAdListener = new InterstitialAdListener() {
            @Override
            public void onInterstitialDisplayed(Ad ad) {
                // Interstitial ad displayed callback
                Log.e(TAG, "Interstitial ad displayed.");
            }

            @Override
            public void onInterstitialDismissed(Ad ad) {
                // Interstitial dismissed callback
                Log.e(TAG, "Interstitial ad dismissed.");
            }

            @Override
            public void onError(Ad ad, AdError adError) {
                // Ad error callback
                Log.e(TAG, "Interstitial ad failed to load: " + adError.getErrorMessage());
            }

            @Override
            public void onAdLoaded(Ad ad) {
                // Interstitial ad is loaded and ready to be displayed
                Log.d(TAG, "Interstitial ad is loaded and ready to be displayed!");
                // Show the ad
                interstitialAd.show();
            }

            @Override
            public void onAdClicked(Ad ad) {
                // Ad clicked callback
                Log.d(TAG, "Interstitial ad clicked!");
            }

            @Override
            public void onLoggingImpression(Ad ad) {
                // Ad impression logged callback
                Log.d(TAG, "Interstitial ad impression logged!");
            }
        };

        // For auto play video ads, it's recommended to load the ad
        // at least 30 seconds before it is shown
        interstitialAd.loadAd(
                interstitialAd.buildLoadAdConfig()
                        .withAdListener(interstitialAdListener)
                        .build());
    }
}

Iklan Interstisial memiliki materi iklan yang berukuran lebih besar sehingga praktik yang baik adalah memanggil loadAd(...) di muka, lalu memanggil show() pada waktu yang sesuai.

Skenario 2: Tampilkan iklan dalam beberapa detik atau menit setelah berhasil dimuat. Anda harus memastikan apakah iklan tersebut masih valid atau tidak sebelum menampilkannya.

Jika iklan tidak ditampilkan segera setelah dimuat, developer bertanggung jawab untuk memeriksa apakah iklan tersebut telah tidak valid atau masih valid. Setelah iklan berhasil dimuat, iklan akan valid selama 60 menit. Anda tidak akan dibayar jika Anda menampilkan iklan tidak valid

Anda sebaiknya mengikuti gagasan di bawah, tetapi jangan menyalin kodenya ke dalam proyek Anda karena ini hanya contoh:

public class InterstitialAdActivity extends Activity {

    private InterstitialAd  interstitialAd ;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Instantiate an InterstitialAd object. 
        // NOTE: the placement ID will eventually identify this as your App, you can ignore it for
        // now, while you are testing and replace it later when you have signed up.
        // While you are using this temporary code you will only get test ads and if you release
        // your code like this to the Google Play your users will not receive ads (you will get a no fill error).
        interstitialAd = new InterstitialAd(this, "YOUR_PLACEMENT_ID");
        InterstitialAdListener interstitialAdListener = new InterstitialAdListener() {
            ...
        };
        // load the ad
        interstitialAd.loadAd(
                interstitialAd.buildLoadAdConfig()
                        .withAdListener(interstitialAdListener)
                        .build());
    }

    private void showAdWithDelay() {
       /**
        * Here is an example for displaying the ad with delay;
        * Please do not copy the Handler into your project
       */
       // Handler handler = new Handler();
       handler.postDelayed(new Runnable() {
           public void run() {
                // Check if interstitialAd has been loaded successfully
               if(interstitialAd == null || !interstitialAd.isAdLoaded()) {
                   return;
               }
                // Check if ad is already expired or invalidated, and do not show ad if that is the case. You will not get paid to show an invalidated ad.
               if(interstitialAd.isAdInvalidated()) {
                   return;
               }
               // Show the ad
                interstitialAd.show(); 
           }
       }, 1000 * 60 * 15); // Show the ad after 15 minutes
    }
}

Akhirnya, tambahkan kode berikut ke fungsi onDestroy() Aktivitas Anda untuk merilis sumber daya yang digunakan InterstitialAd:

@Override
protected void onDestroy() {
    if (interstitialAd != null) {
        interstitialAd.destroy();
    }
    super.onDestroy();
}

Jika Anda menggunakan emulator Google Android, Anda akan menambahkan baris kode berikut sebelum memuat iklan tes:
AdSettings.addTestDevice("HASHED ID");.

Gunakan ID dengan hash yang tercetak di logcat saat Anda pertama kali meminta untuk memuat iklan di sebuah perangkat.

Genymotion dan perangkat fisik tidak memerlukan langkah ini. Jika Anda ingin menguji menggunakan iklan nyata, harap lihat Panduan Pengujian kami.

Mulai aplikasi Anda dan Anda akan melihat Iklan Interstisial muncul:

Akselerasi Perangkat Keras untuk Iklan Video

Untuk mengaktifkan iklan video di Audience Network diperlukan render yang diakselerasi perangkat keras, jika tidak ada maka layar mungkin akan menjadi hitam di tayangan video. Ini berlaku untuk

  • Materi iklan video di Iklan Native
  • Materi iklan video di Interstisial
  • Iklan Video In-stream
  • Video yang Mendapatkan Hadiah

Akselerasi perangkat keras diaktifkan secara default jika level API Target adalah >=14 (Ice Cream Sandwich, Android 4.0.1), namun Anda juga dapat secara eksplisit menyalakan fitur ini pada level aplikasi atau level aktivitas.

Level Aplikasi

Di file manifes Android, tambahkan atribut berikut ke tag <application> untuk mengaktifkan percepatan perangkat keras untuk seluruh aplikasi Anda:

<application android:hardwareAccelerated="true" ...>

Level Aktivitas

Jika Anda hanya ingin mengaktifkan fitur untuk aktivitas tertentu di aplikasi, dalam file manifes Android, Anda dapat menambahkan fitur berikut ke tag <activity>. Contoh berikut akan mengaktifkan percepatan perangkat keras untuk AudienceNetworkActivity yang digunakan untuk rendering iklan pengantara dan video hadiah:

<activity android:name="com.facebook.ads.AudienceNetworkActivity" android:hardwareAccelerated="true" .../>

Langkah-Langkah Berikutnya