Iklan native di Android

Format Iklan Native memungkinkan penayang untuk menyesuaikan iklan yang ditampilkan ke pengguna. Setelah mengambil iklan dari SDK, penayang dapat mengubah tata letak dan tampilan iklan agar lebih selaras dengan antarmuka pengguna aplikasi: menambahkan filter warna, mengubah tipografi, dan menambahkan overlay kustom. Untuk mengoptimalkan performa atau pengalaman pengguna Iklan Native, penayang sering kali menetapkan batas tampilan atau memindahkan pemutaran video ke SDK. Terakhir, penayang dapat menyesuaikan pemroses klik iklan untuk memantau peristiwa tambahan seperti geser ke atas.

Format Iklan Native memerlukan tingkat kepercayaan pada penayang yang lebih tinggi daripada yang dibutuhkan untuk menampilkan format iklan lainnya. SDK biasanya ingin mendeteksi pelanggaran kebijakan dan memverifikasi bahwa konten iklan yang diberikan kepada penayang ditampilkan kepada pengguna.

Dukungan iklan banner dalam runtime SDK dicapai melalui SurfaceControlViewHost API. Hal ini memungkinkan SDK untuk menampilkan elemen antarmuka pengguna dari proses Runtime SDK tanpa dirusak oleh aplikasi klien. Gunakan mode SurfaceView Z atas atau Z bawah untuk menentukan apakah platform tempat UI SDK dirender berada di atas atau di bawah jendela aplikasi klien. Jika iklan dirender menggunakan mode Z atas, SDK akan menerima MotionEvents dari interaksi pengguna, tetapi tampilan aplikasi klien tidak akan terlihat di atas iklan. Jika iklan dirender dalam mode Z bawah, aplikasi akan menayangkan tampilannya sendiri di bagian atas iklan, tetapi MotionEvents dari interaksi pengguna pada iklan akan masuk ke aplikasi, bukan ke SDK.

Library Jetpack privacysandbox.ui dapat digunakan oleh SDK dan penayang untuk membuat dan mengelola sesi UI.

Penampung iklan milik aplikasi

Kami membuat prototipe di mana SDK memiliki semua penayangan yang terdiri dari iklan native (termasuk overlay aplikasi) dan menemukan bahwa meskipun hal ini memungkinkan, beberapa batasan akan diberlakukan pada UI dan ini akan meningkatkan kompleksitas integrasi dengan SDK. Pendekatan yang lebih pragmatis adalah membiarkan aplikasi memiliki sebagian besar penayangan. SDK tetap dapat memilih untuk menampilkan sendiri beberapa UI, seperti penayangan iklan, menggunakan SandboxedSdkView dari privacysandbox.ui. Pendekatan ini memberikan fleksibilitas terbesar dalam mendukung kasus penggunaan yang ada dan yang akan datang untuk format iklan ini: Dengan pendekatan ini, developer aplikasi dapat memindahkan komponen iklan dan menata gayanya sesuai kebutuhan, sementara SDK dapat mempertahankan kepemilikan pemutar video, jika diinginkan, dan mempertahankan akses ke kontrol media.

Diagram yang menunjukkan alur data antara penayang dan SDK.
Alur kontrol Iklan Native yang diusulkan.

Notifikasi tentang status iklan

SDK yang berbeda melihat properti penayangan iklan yang berbeda untuk mendeteksi penipuan dan pelanggaran kebijakan. Kami ingin mendukung hal ini tanpa menentukan properti mana yang akan digunakan, atau menjadi bottleneck bagi SDK yang mengubah kumpulan properti yang dikueri. Kami mengusulkan untuk membuat representasi penampung iklan, dan tampilan turunannya, menggunakan NativeAdContainerInfo. Ini akan menjadi objek yang dapat dibagikan dengan berbagai pengambil yang mengekspos informasi yang terbatas pada penampung iklan dan kontennya, di mana informasi tersebut menjaga privasi dan tidak mahal untuk dihitung. SDK akan dapat memilih untuk ikut serta dalam kategori sinyal yang disertakan dalam NativeAdContainerInfo. SDK akan menerima objek ini setiap kali status iklan berubah dengan cara yang relevan dengan SDK, seperti peristiwa yang dapat ditagih seperti tayangan iklan dan klik pengguna.`

Selain itu, penayang akan dapat menambahkan tag khusus penayangan (String) ke setiap turunan yang ditambahkan ke NativeAdContainer, yang dapat digunakan untuk memberi tahu SDK tentang aset iklan yang sesuai dengan setiap turunan.

Saat pengguna mengklik tayangan video yang dimiliki SDK, library UI akan meneruskan MotionEvent dengan properti yang diterjemahkan ke ruang koordinat SDK ke SDK, bersama dengan MotionEvent asli. Untuk versi Android mendatang, kami mencari cara untuk mengizinkan aplikasi klien mentransfer fokus sentuh untuk semua gestur pengguna di bagian yang dimiliki SDK pada iklan native ini agar ditangani oleh SDK.

Pengesahan

Pengesahan berikut akan tersedia untuk SDK guna mendapatkan jaminan presentasi iklan yang lebih kuat:

  1. Pengesahan integritas perangkat: Gunakan API platform seperti Pengesahan Kunci untuk menentukan integritas perangkat.
  2. Identitas APK: Gunakan SdkSandbox API seperti SdkSandboxController.getClientPackageName dan PackageManager API seperti requestChecksum untuk memverifikasi identitas APK.
  3. VerifiedMotionEvents: Pada versi Android mendatang, kami sedang mempelajari cara mengizinkan aplikasi klien mentransfer fokus sentuh untuk semua gestur pengguna di bagian yang dimiliki SDK pada iklan native ini agar ditangani oleh SDK. MotionEvents dapat dikonversi menjadi VerifiedMotionEvents menggunakan API sistem. SDK dapat menampilkan UI-nya sendiri sebagai respons terhadap interaksi pengguna jika mereka memilih untuk menampilkannya.

Pertanyaan terbuka

Kami menerima masukan pada poin-poin berikut:

  1. Apakah sebaiknya SDK membuat VerifiedMotionEvents sendiri, atau akan lebih baik jika library UI penyedia melakukannya untuk SDK?
  2. Apakah sebaiknya SDK mengizinkan penayang memiliki penayangan yang berisi video, atau akan lebih baik jika SDK memiliki penayangan ini sendiri?
  3. Properti apa yang ingin Anda sertakan dalam objek AppOwnedAdContainerInfo?
  4. Berapa banyak iklan atau komponen iklan milik SDK yang ingin Anda tampilkan secara bersamaan di layar?