Tentang Topics API
Dalam periklanan seluler, pengiklan ingin menayangkan iklan yang relevan dan berkaitan dengan minat pengguna. Misalnya, jika pengguna tertarik dengan informasi yang berkaitan dengan memasak, mereka mungkin merasa iklan yang berkaitan dengan memasak lebih relevan bagi mereka daripada iklan yang tidak berkaitan dengan minat mereka.
Periklanan menurut minat (PMM) adalah bentuk iklan yang dipersonalisasi, saat sebuah iklan dipilih untuk pengguna berdasarkan minat yang terlihat pada aplikasi yang sebelumnya pernah digunakan pengguna. Ini berbeda dengan periklanan kontekstual, yang hanya didasarkan pada minat yang terlihat dari konten yang dilihat saat ini. Salah satu manfaat PMM dibandingkan periklanan kontekstual adalah bahwa PMM memungkinkan aplikasi menampilkan iklan yang lebih relevan dan menarik kepada pengguna.
Topics API menyimpulkan secara terperinci sinyal minat di perangkat berdasarkan penggunaan aplikasi pengguna. Sinyal ini, yang disebut topik, akan dibagikan dengan pengiklan, yang mendukung kasus penggunaan PMM tanpa mengharuskan pelacakan pengguna individual di seluruh aplikasi.
Konsep utama
- Topik adalah topik minat yang dapat dibaca manusia untuk pengguna ini, dan merupakan bagian dari taksonomi Topics.
- Topik diamati oleh pemanggil (aplikasi atau SDK pihak ketiga yang digunakan dalam aplikasi) jika pemanggil membuat permintaan Topics API dari aplikasi yang terkait dengan topik itu selama 3 epoch terakhir.
- Epoch adalah periode komputasi topik, misalnya satu minggu.
Cara kerja
Dengan proposal ini, Topics API bertujuan untuk memberi pemanggil topik periklanan menurut minat secara terperinci berdasarkan penggunaan aplikasi pengguna. Topik ini dapat digunakan untuk melengkapi informasi kontekstual apa pun yang terkait dengan aplikasi yang ingin menampilkan iklan dan dapat digabungkan untuk membantu menemukan iklan yang sesuai bagi pengguna.
Lihat Panduan developer Topics API untuk mengetahui contoh kode yang menunjukkan cara menyiapkan kemampuan untuk mengambil topik guna periklanan menurut minat. Catatan: API belum selesai.
Topik dipilih dari taksonomi open source yang telah ditetapkan.
Platform ini menggunakan model pengklasifikasi untuk menyimpulkan topik. Implementasi Topics API dan penggunaan pengklasifikasinya akan menjadi bagian dari Proyek Open Source Android, dan akan menjadi lebih baik seiring waktu.
Sebagai ilustrasi, contoh kode berikut menunjukkan penggunaan topik untuk mengambil iklan menurut minat. API yang digunakan di sini belum final.
// Initialize the Topics API.
…
topicsFuture = AdvertisingTopicsClient.getTopics();
// Retrieve Topics and use them in Ad request.
Futures.addCallback(
topicsFuture,
new FutureCallback<AdvertisingTopicsInfo>() {
@Override
public void onSuccess(@Nullable AdvertisingTopicsInfo topicsInfo) {
// Sanitize Topics result.
...
// Initialize ad request with Topics obtained.
AdRequest adRequest = AdRequest.initialize(topicsInfo);
}
@Override
public void onFailure(Throwable t) {
// Handle error.
...
}
});
Untuk mendapatkan pemahaman yang lebih baik tentang cara kerja model pengklasifikasi, Anda dapat menguji reaksi berbagai data aplikasi dalam sistem menggunakan Colab Android Topics Classifier.
Mendapatkan akses ke Topics API
Platform teknologi iklan perlu mendaftar agar dapat mengakses Topics API. Lihat Mendaftar ke akun Privacy Sandbox untuk mengetahui informasi selengkapnya.
Detail
Sekali dalam setiap epoch (misalnya seminggu sekali), 5 topik teratas pengguna dihitung menggunakan informasi di perangkat.
- Ketika Topics API dipanggil, platform akan memeriksa apakah topik
ditetapkan ke aplikasi yang memanggil API. Jika tidak ada topik yang
ditetapkan, satu topik akan dipilih sebagai berikut dan topik yang dipilih akan
ditetapkan ke aplikasi itu untuk sisa epoch tersebut.
- Dengan probabilitas 95%, topik dipilih secara acak dari daftar 5 topik teratas yang dihitung untuk epoch tersebut.
- Dengan probabilitas 5%, topik dipilih secara acak dari taksonomi.
- Pemanggil dapat menentukan untuk mengambil topik tanpa
mengubah status dengan memanggil
getTopics
menggunakan parametershouldRecordObservation = false
. Artinya, topik dapat ditampilkan, tetapi panggilan tidak akan disertakan dalam penghitungan epoch mingguan dan tidak akan memperbarui daftar topik yang diamati untuk pemanggil.
- Alasan setiap aplikasi mendapatkan salah satu dari beberapa topik adalah untuk memastikan
bahwa aplikasi yang berbeda mendapatkan topik yang berbeda, sehingga mempersulit aplikasi untuk
mengaitkan pengguna yang sama.
- Misalnya, aplikasi A mungkin melihat topik T1 untuk pengguna, tetapi aplikasi B mungkin melihat topik T2. Hal ini semakin mempersulit kedua aplikasi itu untuk menentukan bahwa informasi tersebut dikaitkan dengan pengguna yang sama.
- Ketika Topics API dipanggil, platform akan memeriksa apakah topik
ditetapkan ke aplikasi yang memanggil API. Jika tidak ada topik yang
ditetapkan, satu topik akan dipilih sebagai berikut dan topik yang dipilih akan
ditetapkan ke aplikasi itu untuk sisa epoch tersebut.
Topics API menampilkan daftar hingga 3 topik, 1 untuk masing-masing dari 3 epoch terakhir.
- Dengan menyediakan hingga 3 topik, aplikasi yang jarang digunakan akan memiliki cukup topik untuk menemukan iklan yang relevan, tetapi aplikasi yang sering digunakan akan mempelajari maksimal 1 topik baru per minggu.
- Informasi topik yang ditampilkan mencakup ID topik (int) yang sesuai dengan entri dalam taksonomi, versi taksonomi, dan versi model pengklasifikasi.
- Pemanggil yang dapat menerima topik hanyalah pemanggil yang mengamati pengguna yang menggunakan aplikasi terkait dengan topik yang dimaksud dalam 3 epoch terakhir.
- Semua topik yang ditampilkan mewakili minat pengguna, dan Anda dapat memilih salah satu atau semua topik ini untuk personalisasi iklan di permintaan iklan Anda.
Setelah topik ditetapkan ke aplikasi yang memanggil Topics API, platform akan menentukan apakah pemanggil dapat menerima topik tersebut.
- Pemanggil yang dapat menerima topik terkait hanyalah pemanggil yang telah mengamati interaksi pengguna aplikasi yang terkait dengan topik yang dibicarakan dalam 3 epoch terakhir.
- Jika di masa lalu pemanggil tidak memanggil API untuk pengguna tersebut di aplikasi tentang topik tertentu, topik itu tidak akan disertakan dalam daftar yang ditampilkan oleh API.
- Jika pemanggil tidak menerima topik apa pun selama 3 epoch terakhir, Topics API akan menampilkan daftar kosong.
Misalnya, pengguna memiliki 7 aplikasi yang terinstal di perangkat: A, B, C, D, E, F, dan G. Anggaplah klasifikasi topik untuk aplikasi dan SDK teknologi iklan di aplikasi ini adalah sebagai berikut:
Aplikasi Klasifikasi topik SDK teknologi iklan A T1, T5 ad-sdk1, ad-sdk2 B T2 ad-sdk2 C T3, T6 ad-sdk3, ad-sdk4 D T1, T4 ad-sdk1 E T5 ad-sdk4, ad-sdk5 F T6 ad-sdk2, ad-sdk3, ad-sdk4 G T7 ad-sdk2 - Akhir minggu ke-1: Topics API menghasilkan 5 topik teratas pengguna untuk epoch ini.
Topik Terpopuler Pemanggil yang dapat mempelajari topik tersebut T1 ad-sdk1, ad-sdk2 T2 ad-sdk2 T3 ad-sdk3, ad-sdk4 T4 ad-sdk1 T5 ad-sdk1, ad-sdk2, ad-sdk4, ad-sdk5 - Pada minggu ke-2, jika pemanggil di aplikasi apa pun memanggil API, daftar topik yang ditampilkan hanya akan menyertakan topik yang pemanggilnya berada di kolom "Pemanggil yang dapat mempelajari topik" untuk topik tersebut, aplikasi tersebut, dan epoch tersebut.
- Periode histori yang disertakan dalam penghitungan topik yang tersedia untuk setiap pemanggil adalah 3 epoch (atau 3 minggu).
- Hanya topik yang terkait dengan aplikasi yang memanggil Topics API, secara langsung atau melalui SDK iklan, yang digunakan. Artinya, jika aplikasi tidak menyertakan SDK iklan apa pun yang memanggil Topics API dan tidak memanggil API itu sendiri, topik yang terkait dengan aplikasi tersebut tidak berkontribusi pada topik yang dibagikan dengan aplikasi atau SDK iklan lain.
- Aplikasi juga dapat memilih untuk menonaktifkan Topics API melalui manifes dan elemen XML yang baru secara deklaratif, untuk melarang SDK iklan menggunakan API untuk aplikasi tersebut. Topik yang terkait dengan aplikasi yang tidak diikutsertakan tidak akan berkontribusi pada penghitungan topik mingguan. Dokumen ini akan diperbarui untuk menyertakan detail implementasi terkait.
Jika tidak ada penggunaan aplikasi yang cukup bagi platform untuk menyimpulkan 5 topik, platform dapat mempertimbangkan opsi seperti membuat topik yang tersisa secara acak.
Taksonomi
- Dalam proposal saat ini, taksonomi awal akan mencakup antara beberapa ratus hingga beberapa ribu topik. Proposal taksonomi awal akan dibagikan dalam pembaruan dokumen ini di masa mendatang.
- Taksonomi ini akan diseleksi oleh manusia sehingga topik yang sensitif tidak menjadi bagian dari taksonomi.
- Taksonomi ini akan disesuaikan dengan kategori iklan yang dapat ditampilkan pada aplikasi seluler di Android.
- Taksonomi adalah open source, dan dapat berubah sewaktu-waktu. Saran dapat diajukan menggunakan tombol masukan di bagian atas halaman ini.
Pengklasifikasi topik
Topik minat berasal dari model pengklasifikasi yang dilatih pada informasi aplikasi yang tersedia untuk umum (seperti nama aplikasi, deskripsi, dan nama paket).
- Ketika model pengklasifikasi digunakan untuk inferensi dalam menghitung topik untuk epoch tertentu, rangkaian sinyal yang digunakan tetap berada di perangkat. Rangkaian sinyal ini dapat mencakup aplikasi yang diinstal atau yang baru saja digunakan, dan nantinya dapat diperluas untuk menyertakan sinyal lain.
- Model awal akan dilatih oleh Google, dengan data pelatihan menyertakan label yang diseleksi oleh manusia untuk informasi aplikasi yang tersedia bagi publik. Model ini akan tersedia secara bebas bagi aplikasi untuk menguji dan melihat aplikasi mereka diklasifikasikan dalam topik yang mana.
- Model awal akan dilatih pada informasi aplikasi yang tersedia untuk publik dari kumpulan app store terbatas seperti Google Play Store.
- Ada kemungkinan bahwa aplikasi dipetakan ke lebih dari 1 topik, tanpa topik apa pun, atau tidak ditambahkan ke histori topik pengguna. Jika aplikasi dipetakan ke lebih dari 1 topik dalam taksonomi, jumlah topik yang dipilih untuk aplikasi itu akan terbatas pada 3 topik teratas.
Kontrol pengguna
- Desain ini dimaksudkan untuk memberikan kemampuan kepada pengguna untuk melihat dan menghapus topik yang terkait dengan penggunaan aplikasi mereka. Implementasi kemampuan kontrol pengguna ini masih dalam proses, dan akan disertakan dalam update mendatang.
- Jika pengguna meng-uninstal aplikasi yang berkontribusi pada pemilihan topik yang disimpulkan dalam 3 epoch terakhir, topik tersebut tidak akan dihapus dari daftar topik yang ditampilkan selama 3 epoch terakhir, untuk menghindari pengungkapan informasi tentang uninstal.
Guna memfasilitasi pengujian untuk pengalaman pengguna akhir, Anda juga dapat meluncurkan intent dalam aplikasi untuk melihat UI setelan untuk Topics yang mirip dengan tampilan yang akan dilihat pengguna akhir. Contoh panggilan tersebut dapat dilihat di bawah:
//Button that launches settings UI
private Button mSettingsAppButton;
private static final String RB_SETTING_APP_INTENT = "android.adservices.ui.SETTINGS";
//Does setup for button on screen that will launch settings UI to observe Topics
private void registerLauchSettingsAppButton() {
mSettingsAppButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
Context context = getApplicationContext();
Intent activity2Intent = new Intent(RB_SETTING_APP_INTENT);
activity2Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(activity2Intent);
}
});
}