Ringkasan Topics API for Mobile

Berikan masukan

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.

Iklan kontekstual hanya didasarkan pada minat yang terlihat dari konten saat ini dilihat (dan diiklankan). Salah satu manfaat Topics API memungkinkan aplikasi yang berguna bagi pengguna tetapi mungkin tidak mudah dimonetisasi melalui iklan kontekstual, untuk menampilkan iklan yang lebih relevan kepada pengguna daripada yang seharusnya, yang membantu mendanai aplikasi yang digunakan oleh pengguna.

Topics API menyimpulkan secara terperinci sinyal minat di perangkat berdasarkan penggunaan aplikasi pengguna. Sinyal ini, yang disebut topik, akan dibagikan kepada pengiklan, mendukung sinyal berkelanjutan dan sinyal pihak pertama lainnya tanpa memerlukan pelacakan setiap pengguna di seluruh aplikasi.

Topics API dirancang untuk mendukung SDK iklan pihak ketiga yang biasanya beroperasi di beberapa aplikasi. Dukungan ini berupa menampilkan beberapa minat lintas aplikasi yang biasanya dilakukan SDK tersebut Anda amati. Developer aplikasi individu seharusnya tidak belajar informasi tentang pengguna mereka.

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 mengambil topik untuk 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 parameter shouldRecordObservation = 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.
  • 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 dimaksud 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. Asumsikan bahwa klasifikasi topik untuk aplikasi dan iklan SDK teknologi 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 melalui iklan SDK digunakan. Artinya, jika aplikasi tidak menyertakan SDK iklan apa pun yang memanggil Topics API, topik yang terkait dengan aplikasi tersebut tidak berkontribusi pada kumpulan topik yang dapat diakses oleh SDK iklan.
    • 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 tersedia untuk publik, dan dapat berubah sewaktu-waktu. Saran dapat dikirimkan 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 registerLaunchSettingsAppButton() {
    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);
            }
        });
}

Mendaftarkan platform teknologi iklan

Untuk mengakses Topics API, semua platform teknologi iklan (termasuk milik Google) harus menyelesaikan proses pendaftaran.

Developer aplikasi dapat mengelola developer teknologi iklan mana yang dapat mengakses Topics API dengan termasuk ID pendaftaran developer teknologi iklan di dalam manifes aplikasi.

Enkripsi topik yang ditampilkan

Platform teknologi iklan terdaftar yang memanggil Topics API juga diwajibkan untuk memberikan kunci enkripsi untuk memastikan bahwa topik yang dikembalikan hanya dapat dibaca oleh penelepon.

Privacy Sandbox akan mengambil kunci ini dari endpoint yang disediakan teknologi iklan. Rab sebagai praktik terbaik, merekomendasikan agar kunci harus sering diperbarui, tetapi tidak boleh lebih lama setiap 6 bulan.

Privacy Sandbox akan meminta teknologi iklan mengonfirmasi ketersediaan endpoint yang disediakan oleh teknologi iklan selama proses pendaftaran. Untuk mengetahui detail selengkapnya tentang tindakan yang diperlukan oleh teknologi iklan saat ini dan yang baru terdaftar. Lihat Pendaftaran Panduan Developer.

Detail enkripsi

Dengan diperkenalkannya enkripsi, panggilan ke 'GetTopics()' sekarang akan membuat respons yang berisi daftar 'EncryptedTopic' objek terstruktur dalam jumlah besar. Membuka enkripsi hasil ini akan hasilkan objek dengan format JSON yang sama dari objek Topic sebelumnya.

Topics API mendukung implementasi satu kali HPKE (Hybrid Public Key Enkripsi). Kita mengharapkan pemanggil yang terdaftar menghosting kunci publik 32-bit pada endpoint URL enkripsi publik yang disediakan selama pendaftaran. Kunci-kunci ini adalah diharapkan berenkode Base64.

EncryptedTopic memiliki 3 kolom. Daftar topik yang dikembalikan dapat yang diperoleh dengan menggunakan kunci pribadi yang sesuai untuk kunci publik.

Untuk tujuan pengembangan, Anda dapat menguji enkripsi Topics API dengan menonaktifkan pemeriksaan pendaftaran. Ini akan memaksa API menggunakan kunci publik tes untuk mengenkripsi respons Anda. Anda dapat mendekripsi topik terenkripsi menggunakan kunci pribadi yang sesuai.