IMA SDK mempermudah integrasi iklan multimedia ke dalam situs dan aplikasi Anda. IMA SDK dapat meminta iklan dari server iklan yang kompatibel dengan VAST dan mengelola pemutaran iklan di aplikasi Anda. Dengan SDK sisi klien IMA, Anda tetap memegang kontrol pemutaran video konten, sementara SDK menangani pemutaran iklan. Iklan diputar di pemutar video terpisah yang diposisikan di atas pemutar video konten aplikasi.
Panduan ini menunjukkan cara mengintegrasikan IMA SDK ke dalam aplikasi pemutar video sederhana. Jika Anda ingin melihat atau mengikuti contoh integrasi yang telah selesai, download contoh sederhana dari GitHub. Jika Anda tertarik dengan pemutar HTML5 yang telah mengintegrasikan SDK, lihat Plugin IMA SDK untuk Video.js.
Ringkasan sisi klien IMA
Penerapan sisi klien IMA melibatkan empat komponen SDK utama, yang ditunjukkan dalam panduan ini:
- AdDisplayContainer: Objek penampung yang menentukan tempat IMA merender elemen UI iklan dan mengukur visibilitas, termasuk Tampilan Aktif dan Open Measurement.
- AdsLoader: Objek yang meminta iklan dan menangani peristiwa dari respons permintaan iklan. Anda hanya boleh meng-instance satu pemuat iklan, yang dapat digunakan kembali selama masa aktif aplikasi.
- AdsRequest: Objek yang menentukan permintaan iklan. Permintaan iklan menentukan URL untuk tag iklan VAST, serta parameter tambahan, seperti dimensi iklan.
- AdsManager: Objek yang berisi respons terhadap permintaan iklan, mengontrol pemutaran iklan, dan memproses peristiwa iklan yang diaktifkan oleh SDK.
Prasyarat
Sebelum memulai, Anda memerlukan hal berikut:
- Tiga file kosong:
    - index.html
- style.css
- ads.js
 
- Python diinstal di komputer Anda, atau server web untuk digunakan dalam pengujian
1. Mulai server pengembangan
Karena IMA SDK memuat dependensi menggunakan protokol yang sama dengan halaman tempat SDK dimuat, Anda harus menggunakan server web untuk menguji aplikasi. Cara paling sederhana untuk memulai server pengembangan lokal adalah dengan menggunakan server bawaan Python.
- Dengan menggunakan command line, dari direktori yang berisi
  file index.html Anda, jalankan:
python -m http.server 8000 
- Di browser web, buka http://localhost:8000/
Anda juga dapat menggunakan server web lain, seperti Apache HTTP Server.
2. Membuat pemutar video sederhana
  Pertama, ubah index.html untuk membuat elemen video HTML5 sederhana, yang ada dalam elemen
  pembungkus, dan tombol untuk memicu pemutaran. Contoh berikut mengimpor IMA SDK dan menyiapkan
  elemen penampung AdDisplayContainer. Untuk mengetahui detail selengkapnya, lihat langkah-langkah
  
    Mengimpor IMA SDK
   dan
  
    Membuat penampung iklan
  .
Tambahkan tag yang diperlukan untuk memuat file style.css dan ads.js. Kemudian, ubah styles.css untuk membuat pemutar video responsif untuk perangkat seluler. Terakhir, di ads.js, deklarasikan variabel dan picu pemutaran video saat Anda mengklik tombol putar.
  Perhatikan bahwa cuplikan kode ads.js berisi panggilan ke setUpIMA(), yang ditentukan di bagian
  
    Initialize the AdsLoader and make an ads request
  .
3. Mengimpor IMA SDK
  Selanjutnya, tambahkan framework IMA menggunakan tag skrip di index.html, sebelum tag untuk
  ads.js.
4. Membuat penampung iklan
  Di sebagian besar browser, IMA SDK menggunakan elemen penampung iklan khusus untuk menampilkan iklan dan elemen UI terkait iklan. Penampung ini harus berukuran untuk menempatkan elemen video dari
  sudut kiri atas. Tinggi dan lebar iklan yang ditempatkan di penampung ini ditetapkan oleh
  objek adsManager, sehingga Anda tidak perlu menetapkan nilai ini secara manual.
  Untuk menerapkan elemen penampung iklan ini, buat div baru terlebih dahulu dalam elemen
  video-container. Kemudian, perbarui CSS untuk memosisikan elemen di pojok kiri atas
  video-element. Terakhir, tambahkan fungsi createAdDisplayContainer()
  untuk membuat
  objek AdDisplayContainer menggunakan
  div penampung iklan baru.
5. Lakukan inisialisasi AdsLoader dan buat permintaan iklan
  Untuk meminta iklan, buat instance
  AdsLoader. Konstruktor AdsLoader mengambil objek
  AdDisplayContainer
  sebagai input dan dapat digunakan untuk memproses
  objek AdsRequest
  yang terkait dengan URL tag iklan tertentu. Tag iklan yang digunakan dalam contoh ini berisi
  iklan pre-roll 10 detik. Anda dapat menguji URL tag iklan ini, atau URL tag iklan lainnya, menggunakan
  IMA Video Suite Inspector.
  Sebagai praktik terbaik, pertahankan hanya satu instance AdsLoader untuk seluruh
  siklus proses halaman. Untuk membuat permintaan iklan tambahan, buat objek AdsRequest
  baru, tetapi gunakan kembali AdsLoader yang sama. Untuk mengetahui informasi selengkapnya, lihat
  FAQ IMA SDK.
  Dengarkan dan tanggapi peristiwa error dan iklan yang dimuat menggunakan AdsLoader.addEventListener.
  Memproses peristiwa berikut:
- ADS_MANAGER_LOADED
- AD_ERROR
  Untuk membuat pemroses onAdsManagerLoaded() dan onAdError(), lihat contoh berikut:
6. Merespons peristiwa AdsLoader
  Saat AdsLoader berhasil memuat iklan, AdsLoader akan memancarkan peristiwa
  ADS_MANAGER_LOADED. Parse peristiwa yang diteruskan ke callback untuk melakukan inisialisasi
  objek AdsManager. AdsManager memuat iklan satu per satu seperti yang ditentukan oleh
  respons terhadap URL tag iklan.
Pastikan Anda menangani error apa pun yang terjadi selama proses pemuatan. Jika iklan tidak dimuat, pastikan pemutaran media berlanjut tanpa iklan agar tidak mengganggu pengguna saat melihat konten.
  Untuk mengetahui detail selengkapnya tentang pemroses yang ditetapkan dalam fungsi onAdsManagerLoaded(), lihat
  sub-bagian berikut:
Menangani error AdsManager
  Penangan error yang dibuat untuk AdsLoader juga dapat berfungsi sebagai penangan error untuk
  AdsManager. Lihat pengendali peristiwa yang menggunakan kembali fungsi onAdError().
Menangani peristiwa putar dan jeda
  Saat AdsManager siap menyisipkan iklan untuk ditampilkan, AdsManager akan memicu peristiwa
  CONTENT_PAUSE_REQUESTED. Tangani peristiwa ini dengan memicu jeda pada
  pemutar video yang mendasarinya. Demikian pula, saat iklan selesai, AdsManager akan memicu
  peristiwa CONTENT_RESUME_REQUESTED. Tangani peristiwa ini dengan memulai ulang pemutaran di
  video konten yang mendasarinya.
  Untuk definisi fungsi onContentPauseRequested() dan
  onContentResumeRequested(), lihat contoh berikut:
Menangani pemutaran konten selama iklan nonlinier
  AdsManager menjeda video konten saat iklan siap diputar, tetapi
  perilaku ini tidak memperhitungkan iklan nonlinier, di mana konten terus diputar saat iklan
  ditampilkan.
  Untuk mendukung iklan non-linear, dengarkan AdsManager untuk memancarkan
  peristiwa LOADED. Periksa apakah iklan bersifat linear, dan jika tidak, lanjutkan pemutaran pada elemen video.
  Untuk definisi fungsi onAdLoaded(), lihat contoh berikut.
7. Memicu klik untuk menjeda di perangkat seluler
  Karena AdContainer menutupi elemen video, pengguna tidak dapat berinteraksi langsung dengan
  pemutar yang mendasarinya. Hal ini dapat membingungkan pengguna di perangkat seluler, yang berharap dapat mengetuk pemutar video untuk menjeda pemutaran. Untuk mengatasi masalah ini, IMA SDK meneruskan semua klik yang tidak ditangani oleh IMA dari overlay iklan ke elemen AdContainer, tempat klik tersebut dapat ditangani. Hal ini tidak berlaku untuk iklan linear di browser non-seluler, karena mengklik iklan akan membuka link tayang iklan.
  Untuk menerapkan fitur klik untuk menjeda, tambahkan fungsi pengendali klik adContainerClick() yang dipanggil
  di pemroses saat jendela dimuat.
8. Mulai AdsManager
  Untuk memulai pemutaran iklan, mulai dan jalankan AdsManager. Untuk mendukung sepenuhnya browser seluler, tempat Anda tidak dapat memutar iklan secara otomatis, picu pemutaran iklan dari interaksi pengguna dengan halaman, seperti mengklik tombol putar.
9. Mendukung pengubahan ukuran pemutar
  Agar iklan dapat diubah ukurannya secara dinamis dan sesuai dengan ukuran pemutar video, atau agar sesuai dengan perubahan orientasi layar, panggil adsManager.resize() sebagai respons terhadap peristiwa pengubahan ukuran jendela.
Selesai. Sekarang Anda meminta dan menampilkan iklan dengan IMA SDK. Untuk mempelajari fitur SDK lanjutan lainnya, lihat panduan lainnya atau contoh di GitHub.