Saat memublikasikan aplikasi ivi kids di Google Play, kami menghadapi masalah karena SDK periklanan internal kami tidak memenuhi persyaratan Googledan aplikasi tersebut mungkin telah dihapus dari toko. Oleh karena itu, kami mematikan semua iklan, yang membuat pengguna muda sangat senang, tetapi departemen pemasaran secara kronis tidak senang dengan kinerja keuangan.
Jalan keluar paling logis dari situasi tersebut adalah dengan memutar iklan yang didistribusikan Google sendiri menggunakan layanan Google Ad Manager . Dan lakukan dengan menggunakan IMA SDK, yang juga merupakan produk Google.
Pada artikel ini saya akan berbicara tentang bagaimana kami mengimplementasikan IMA SDK di aplikasi ivi dan ivi kids dan batasan apa yang kami temui.

Chips IMA SDK
Saya tidak akan menjelaskan semua fitur dan struktur IMA SDK, karena bagaimanapun juga dokumentasi resmi dapat menjelaskan lebih banyak tentang mereka .
Apa fitur utama IMA SDK? Dan mengapa itu cocok untuk kita? IMA SDK dapat memutar iklan video VAST . Salah satu kemungkinan format ini adalah pembuatan pembungkus iklan bersarang, dan jumlah pembungkus secara resmi tidak terbatas. Artinya, untuk mendapatkan video yang sebenarnya, Anda harus menelusuri semua pembungkus dalam rangkaian.
IMA SDK dapat berjalan melalui rantai ini sendiri jika Anda cukup menyisipkan link ke file VAST pertama ke dalamnya menggunakan metode setAdTagUrl (String url) .
val adsRequest = ImaSdkFactory.getInstance().createAdsRequest()
adsRequest.adTagUrl = advUrl
Jika Anda menggunakan metode ini, tugas pengembang sangat disederhanakan. Namun terkadang (termasuk dalam kasus kami) pengembang aplikasi ingin mengumpulkan sendiri statistik periklanannya yang terdapat dalam file VAST. File-file ini tidak dapat diminta dari server iklan lebih dari sekali, karena server iklan dapat mengirim dua tanggapan berbeda untuk permintaan yang sama (biasanya, iklan harus terus berubah). Dalam hal ini, developer perlu mengumpulkan semua VAST dengan pena, mengekstrak data yang diperlukan untuk mengumpulkan statistik dari sana, dan membuat VAST umum berdasarkan VAST tersebut, yang dapat dimasukkan ke IMA SDK menggunakan metode setAdsResponce (String spacious) :
val adsResponce = โ<VAST>..</VAST>โ //xml, VAST
adsRequest.adsResponse = adsResponce
Fitur berguna lainnya dari IMA SDK adalah kemampuan untuk menggunakan pemutar internal aplikasi untuk memutar iklan. Untuk melakukannya, Anda dapat menerapkan antarmuka VideoAdPlayer dan menerapkan metodenya di pemutar Anda:
public interface VideoAdPlayer extends AdProgressProvider, VolumeProvider {
void loadAd(AdMediaInfo var1, AdPodInfo var2);
void playAd(AdMediaInfo var1);
void pauseAd(AdMediaInfo var1);
void stopAd(AdMediaInfo var1);
void release();
void addCallback(VideoAdPlayer.VideoAdPlayerCallback var1);
void removeCallback(VideoAdPlayer.VideoAdPlayerCallback var1);
}
Tetapi meskipun aplikasi tidak memiliki pemutar video sendiri atau tidak dapat digunakan karena alasan tertentu, IMA SDK menyediakan pemutar sendiri berdasarkan ExoPlayer :
val adUiContainer: ViewGroup = view
val videoAdPlayer = ImaSdkFactory.createSdkOwnedPlayer(context, adUiContainer)
Batasan IMA SDK
Sayangnya, UI IMA SDK menyedihkan. Bersiaplah bahwa pemutar iklan Anda akan selalu terlihat seperti ini: Tidak
mungkin mengubah kontrol apa pun pada layar iklan dari IMA SDK. Anda hanya dapat mengubah bahasa mereka:
val imaSdkSettings = ImaSdkFactory.getInstance().createImaSdkSettings()
imaSdkSettings.language = "ru"
Situasi kami diperburuk oleh fakta bahwa ivi dan ivi kids ada dan didukung pada satu basis kode. Ini berarti bahwa dengan bantuan skrip build, pada saat yang diperlukan dari satu kode, Anda dapat merakit aplikasi yang berbeda dengan lonceng dan peluitnya sendiri (ikon, garis, potongan kode). Basis kode terpadu untuk memutar iklan ini menggunakan mesin berpemilik yang merupakan alat yang terbukti menghasilkan uang bagi perusahaan. Dengan penerapan IMA SDK, kode ini tidak dapat dibuang begitu saja, karena aplikasi menggunakan berbagai format iklan, tidak hanya VAST.
Antarmuka iklan ivi terlihat sangat berbeda dari antarmuka IMA SDK dan tidak dapat disesuaikan dengannya:
Oleh karena itu, keputusan yang paling jelas tampak seperti keputusan untuk meninggalkan mesin periklanan kami ( NSD ) dan secara bersamaan menerapkan IMA SDK, sehingga ketika iklan yang berisi tautan ke server Google tiba, itu akan menggunakan IMA, dan untuk semua iklan lainnya - NSD, yang juga dapat memutar iklan di VAST dan dijalankan melalui seluruh rangkaian kode pembungkus, tetapi tidak memenuhi standar kebijakan keluarga Google.

Saat ini, iklan dari Google dan iklan dari sumber lain di aplikasi ivi ditampilkan dengan berbagai cara. Di aplikasi ivi kids untuk anak-anak, hanya iklan dari Google yang ditargetkan, jadi ada video yang hanya ditampilkan menggunakan IMA SDK.
Hasil
IMA SDK adalah alat sederhana dan nyaman untuk menampilkan iklan video. Jika Anda siap dengan kenyataan bahwa UI pemutar iklan tidak akan bergantung pada Anda, maka IMA SDK cocok untuk Anda. Jika Anda perlu memonetisasi aplikasi Android untuk anak-anak dengan iklan, cara termudah adalah menggunakan alat asli dari Google - IMA SDK.