Pelaporan Atribusi

Berikan masukan

Saat ini, sudah menjadi hal yang umum bagi solusi pengukuran dan atribusi seluler untuk menggunakan ID lintas pihak, seperti ID Iklan. Attribution Reporting API dirancang untuk memberikan privasi pengguna yang lebih baik dengan menghapus ketergantungan pada ID pengguna lintas pihak, dan untuk mendukung kasus penggunaan utama untuk atribusi dan pengukuran konversi di berbagai aplikasi dan di seluruh web.

API ini memiliki mekanisme struktural berikut yang menawarkan framework untuk meningkatkan privasi, yang akan dijelaskan lebih mendalam di bagian selanjutnya dalam dokumen ini:

Mekanisme sebelumnya membatasi kemampuan untuk menautkan identitas pengguna di dua aplikasi atau domain yang berbeda.

Attribution Reporting API mendukung kasus penggunaan berikut:

  • Pelaporan konversi: Membantu pengiklan mengukur performa kampanye mereka dengan menampilkan jumlah konversi (pemicu) dan nilai konversi (pemicu) di berbagai dimensi, misalnya berdasarkan kampanye, grup iklan, dan materi iklan.
  • Pengoptimalan: Memberikan laporan tingkat peristiwa yang mendukung pengoptimalan pembelanjaan iklan, dengan menyediakan data atribusi per tayangan yang dapat digunakan untuk melatih model ML.
  • Deteksi aktivitas tidak valid: Memberikan laporan yang dapat digunakan dalam deteksi dan analisis traffic tidak valid serta penipuan iklan.

Pada tingkat tinggi, Attribution Reporting API berfungsi sebagai berikut, yang akan dibahas lebih mendalam di bagian selanjutnya dalam dokumen ini:

  1. Platform teknologi iklan menyelesaikan proses pendaftaran untuk menggunakan Attribution Reporting API.
  2. Platform teknologi iklan mendaftarkan sumber atribusi—tampilan atau klik iklan—dengan Attribution Reporting API.
  3. Platform teknologi iklan mendaftarkan pemicu—konversi pengguna di aplikasi atau situs pengiklan—dengan Attribution Reporting API.
  4. Attribution Reporting API mencocokkan pemicu dengan sumber atribusi—atribusi konversi—dan satu atau beberapa pemicu dikirim ke luar perangkat melalui laporan tingkat peristiwa dan agregat ke platform teknologi iklan.

Mendaftarkan platform teknologi iklan

Untuk mengakses Attribution Reporting API dan memastikan mekanisme privasi berfungsi sebagaimana mestinya, semua platform teknologi iklan (termasuk Google) harus menyelesaikan proses pendaftaran yang ringan. Detail proses ini masih dalam pengembangan, dan kami mengharapkan masukan Anda.

Proses pendaftaran memastikan bahwa platform teknologi iklan tidak perlu menduplikat diri untuk mendapatkan informasi lebih lanjut tentang aktivitas situs dan aplikasi pengguna. Misalnya, Attribution Reporting API membatasi jumlah pelacakan dan informasi yang dapat dilihat oleh platform teknologi iklan untuk sumber dan pemicu atribusi tertentu. Detail selengkapnya tentang batasan ini akan ditampilkan di bagian tentang melihat data pengukuran dalam laporan atribusi pada dokumen ini.

Bisnis dapat mendaftar beberapa kali jika ada kebutuhan bisnis yang sah (seperti mengoperasikan beberapa lini produk independen), dan tidak menggabungkan data dari beberapa pendaftaran mereka untuk mengabaikan pembatasan privasi.

Selama proses pendaftaran, platform teknologi iklan memberikan informasi seperti berikut:

  • Informasi kontak dan bisnis
  • URL postback yang digunakan untuk mendaftarkan sumber atribusi, atribusi pemicu, serta menerima laporan tingkat peristiwa dan laporan agregat.
  • Kasus penggunaan Attribution Reporting API

Mendaftarkan sumber atribusi (klik atau tampilan)

Attribution Reporting API menyebut tampilan dan klik iklan sebagai sumber atribusi. Untuk mendaftarkan klik iklan atau tampilan iklan, panggil registerAttributionSource(). API ini mengharapkan parameter berikut:

  • URI sumber atribusi: Platform mengirimkan permintaan ke URI ini untuk mengambil metadata yang terkait dengan sumber atribusi.
  • Peristiwa input: Objek InputEvent (untuk peristiwa klik) atau null (untuk peristiwa tampilan).

Saat API membuat permintaan ke URI Sumber Atribusi, platform teknologi iklan harus merespons dengan metadata sumber atribusi dalam Attribution-Reporting-Register-Source header HTTP yang baru, dengan kolom berikut:

  • ID peristiwa sumber: DOMString yang mengenkode bilangan bulat tanpa tanda tangan 64-bit. Nilai ini merepresentasikan data tingkat peristiwa yang terkait dengan sumber atribusi ini (tampilan atau klik iklan).
  • Tujuan: Tempat asal yang eTLD+1 atau nama paket aplikasinya merupakan tempat terjadinya peristiwa pemicu.
  • Kedaluwarsa (opsional): Kedaluwarsa, dalam detik, adalah saat sumber harus dihapus dari perangkat. Defaultnya adalah 30 hari, dengan nilai minimum 2 hari dan nilai maksimum 30 hari. Nilai ini dibulatkan ke hari terdekat.
  • Prioritas sumber (opsional): Bilangan bulat dengan tanda tangan 64-bit yang digunakan untuk memilih sumber atribusi mana yang harus dikaitkan dengan pemicu tertentu, jika beberapa sumber atribusi dapat dikaitkan dengan pemicu tersebut.

    Saat pemicu diterima, API akan menemukan sumber atribusi yang cocok dengan nilai prioritas sumber tertinggi dan membuat laporan. Setiap platform teknologi iklan dapat menentukan strategi prioritasnya sendiri.

    Nilai yang lebih tinggi menunjukkan prioritas yang lebih tinggi.

  • Periode atribusi instal dan pascapenginstalan (opsional): Digunakan untuk menentukan atribusi peristiwa pascapenginstalan, yang akan dijelaskan kemudian dalam dokumen ini.

Respons metadata sumber atribusi dapat menyertakan data tambahan dalam header terpisah berikut:

Cuplikan berikut menunjukkan desain saat ini untuk data sumber atribusi:

Attribution-Reporting-Register-Source: {
  "source_event_id": "[64 bit unsigned integer]",
  "destination": "[eTLD+1 or app package name]",
  "expiry": "[64 bit signed integer]",
  "source_priority": "[64 bit signed integer]"
}
Attribution-Reporting-Register-Aggregate-Source: <aggregation-key-data>
Attribution-Reporting-Redirects: "https://adtechpartner.example"

Langkah-langkah berikut menunjukkan contoh alur kerja:

  1. SDK teknologi iklan memanggil API untuk memulai pendaftaran sumber atribusi:

    registerAttributionSource(
        Uri.parse("https://adtech.example/attribution_source?my_ad_click_id=123"),
        myClickEvent);
    
  2. API membuat permintaan ke https://adtech.example/attribution_source?my_ad_click_id=123, menggunakan header ini:

    Attribution-Reporting-Source-Info: navigation
    
  3. Server HTTPS platform teknologi iklan ini membalas dengan header yang berisi hal-hal berikut:

    Attribution-Reporting-Register-Source: {
        "destination": "android-app://com.advertiser.example",
        "source_event_id": "234",
        "expiry": "60000",
        "source_priority": "5"
    }
    Attribution-Reporting-Redirects: https://adtechpartner.example?their_ad_click_id=567
    Attribution-Reporting-Source-Info: navigation
    
  4. API membuat permintaan ke setiap URL yang ditentukan dalam Attribution-Reporting-Redirects. Dalam contoh ini, hanya satu URL yang ditentukan, sehingga API membuat permintaan ke https://adtechpartner.example?their_ad_click_id=567.

  5. Server HTTPS platform teknologi iklan ini membalas dengan header yang berisi hal-hal berikut:

    Attribution-Reporting-Register-Source: {
        "destination": "android-app://com.advertiser.example",
        "source_event_id": "789",
        "expiry": "120000",
        "source_priority": "2"
    }
    

Dua sumber atribusi navigasi (klik) didaftarkan berdasarkan permintaan yang ditunjukkan pada langkah sebelumnya.

Mendaftarkan pemicu (konversi)

Platform teknologi iklan dapat mendaftarkan pemicu—konversi seperti penginstalan atau peristiwa pascapenginstalan—menggunakan metode triggerAttribution().

Metode triggerAttribution() mengharapkan parameter URI Pemicu. API mengirimkan permintaan ke URI ini untuk mengambil metadata yang terkait dengan pemicu.

API mengikuti pengalihan. Respons server teknologi iklan harus menyertakan header HTTP yang disebut Attribution-Reporting-Register-Event-Trigger, yang mewakili informasi pada satu atau beberapa pemicu terdaftar. Konten header harus dienkode JSON dan mencakup kolom berikut:

  • Data pemicu: Data untuk mengidentifikasi peristiwa pemicu (3 bit untuk klik, 1 bit untuk tampilan)
  • Prioritas pemicu (opsional): Bilangan bulat dengan tanda tangan 64-bit, yang mewakili prioritas pemicu ini dibandingkan dengan pemicu lain untuk sumber atribusi yang sama
  • Kunci penghapusan duplikat (opsional): Bilangan bulat dengan tanda tangan 64-bit yang digunakan untuk mengidentifikasi kasus ketika pemicu yang sama didaftarkan beberapa kali oleh platform teknologi iklan yang sama, untuk sumber atribusi yang sama

Respons server teknologi iklan dapat menyertakan data tambahan dalam header berikut:

Beberapa platform teknologi iklan dapat mendaftarkan peristiwa pemicu yang sama menggunakan pengalihan di kolom Attribution-Reporting-Redirects atau beberapa panggilan ke metode triggerAttribution(). Sebaiknya gunakan kolom kunci penghapusan duplikat untuk menghindari penyertaan pemicu duplikat dalam laporan jika platform teknologi iklan yang sama menyediakan beberapa respons untuk peristiwa pemicu yang sama.

Cuplikan berikut menunjukkan desain saat ini untuk data pemicu:

Attribution-Reporting-Register-Event-Trigger: {
    "trigger_data": "[unsigned 64-bit integer]",
    "trigger_priority": "[signed 64-bit integer]",
    "deduplication_key": "[signed 64-bit integer]"
}
Attribution-Reporting-Aggregate-Trigger-Data: <aggregation-key-data>
Attribution-Reporting-Aggregate-Values: <aggregation-value-data>
Attribution-Reporting-Redirects: "https://adtechpartner.example"

Langkah-langkah berikut menunjukkan contoh alur kerja:

  1. SDK teknologi Iklan memanggil API untuk memulai pendaftaran pemicu:

    triggerAttribution(
        Uri.parse("https://adtech.example/attribution_trigger?app_install=123"));
    
  2. API membuat permintaan ke https://adtech.example/attribution_trigger?app_install=123.

  3. Server HTTPS platform teknologi iklan ini membalas dengan header yang berisi hal-hal berikut:

    Attribution-Reporting-Register-Event-Trigger: {
        "trigger_data": "1122",
        "trigger_priority": "3",
        "deduplication_key": "3344",
    }
    Attribution-Reporting-Redirects: https://adtechpartner.example?app_install=567
    
  4. API membuat permintaan ke setiap URL yang ditentukan dalam Attribution-Reporting-Redirects. Dalam contoh ini, hanya satu URL yang ditentukan, sehingga API membuat permintaan ke https://adtechpartner.example?app_install=567.

  5. Server HTTPS platform teknologi iklan ini membalas dengan header yang berisi hal-hal berikut:

    Attribution-Reporting-Register-Event-Trigger: {
        "trigger_data": "5566",
        "trigger_priority": "3",
        "deduplication_key": "3344"
    }
    

    Dua pemicu didaftarkan berdasarkan permintaan pada langkah sebelumnya.

Algoritme atribusi prioritas sumber diterapkan

Attribution Reporting API menggunakan algoritme atribusi prioritas sumber untuk mencocokkan pemicu (konversi) dengan sumber atribusi. Dalam kasus ketika beberapa platform teknologi iklan mendaftarkan sumber atribusi, seperti yang dijelaskan nanti dalam dokumen ini, atribusi ini terjadi secara independen untuk setiap platform teknologi iklan. Untuk setiap platform teknologi iklan, sumber atribusi dengan prioritas tertinggi diatribusikan dengan peristiwa pemicu. Jika ada beberapa sumber atribusi dengan prioritas yang sama, API akan memilih sumber atribusi yang terakhir didaftarkan. Sumber atribusi lainnya, yang tidak dipilih akan dihapus dan tidak lagi memenuhi syarat untuk atribusi pemicu di masa mendatang.

Atribusi pascapenginstalan

Dalam beberapa kasus, pemicu pascapenginstalan perlu dikaitkan ke sumber atribusi yang sama yang mendorong penginstalan, meskipun ada sumber atribusi lain yang memenuhi syarat dan muncul baru-baru ini.

API dapat mendukung kasus penggunaan ini dengan mengizinkan platform teknologi iklan menetapkan periode atribusi pascapenginstalan:

  • Saat mendaftarkan sumber atribusi, tentukan periode atribusi penginstalan, yaitu ketika penginstalan tersebut diharapkan terjadi (biasanya 2-7 hari).
  • Saat mendaftarkan sumber atribusi, tentukan periode atribusi pascapenginstalan, yaitu ketika setiap peristiwa pemicu pascapenginstalan harus dikaitkan dengan sumber atribusi yang mendorong penginstalan (biasanya 7-30 hari).
  • Attribution Reporting API memvalidasi saat penginstalan aplikasi terjadi dan secara internal mengatribusikan penginstalan ke sumber atribusi prioritas sumber. Namun, penginstalan tidak dikirim ke platform teknologi iklan dan tidak dihitung terhadap batas kapasitas masing-masing platform.
  • Setiap pemicu mendatang yang terjadi dalam periode atribusi pascapenginstalan akan diatribusikan ke sumber atribusi yang sama seperti penginstalan yang divalidasi, asalkan sumber atribusi tersebut memenuhi syarat.

    Kami sedang mencari cara untuk mendukung kasus penggunaan ketika pengguna meng-uninstal dan menginstal ulang aplikasi.

Di masa mendatang, kami mungkin akan memperluas desain untuk mendukung model atribusi yang lebih canggih.

Semua kombinasi jalur pemicu berbasis aplikasi dan web didukung

Attribution Reporting API memungkinkan atribusi jalur pemicu berikut di satu perangkat Android:

  • Aplikasi ke aplikasi: Pengguna melihat iklan di aplikasi, lalu melakukan konversi dalam aplikasi tersebut atau aplikasi lain yang diinstal.
  • Aplikasi ke web: Pengguna melihat iklan di aplikasi, lalu melakukan konversi di browser seluler atau aplikasi.
  • Web ke aplikasi: Pengguna melihat iklan di browser aplikasi atau seluler, lalu melakukan konversi dalam aplikasi.
  • Web ke web: Pengguna melihat iklan di browser seluler atau aplikasi, lalu melakukan konversi di browser yang sama atau browser lain di perangkat yang sama.

Kami mengizinkan browser web mendukung fungsi baru yang terekspos web, seperti fungsi yang mirip dengan Privacy Sandbox untuk API Pelaporan Atribusi Web, yang dapat memanggil API Android untuk mengaktifkan atribusi di seluruh aplikasi dan web.

Memprioritaskan beberapa pemicu untuk satu sumber atribusi

Sumber atribusi tunggal dapat menyebabkan beberapa pemicu. Misalnya, alur pembelian dapat melibatkan pemicu "penginstalan aplikasi", satu atau beberapa pemicu "tambahkan ke keranjang", dan pemicu "pembelian". Setiap pemicu diatribusikan ke satu atau beberapa sumber atribusi sesuai dengan algoritme atribusi prioritas sumber, yang akan dijelaskan kemudian dalam dokumen ini.

Ada batasan jumlah pemicu yang dapat diatribusikan ke sumber atribusi tunggal; untuk mengetahui detail selengkapnya, baca bagian tentang melihat data pengukuran dalam laporan atribusi dalam dokumen ini nanti. Jika ada beberapa pemicu di luar batasan ini, sebaiknya Anda memperkenalkan logika prioritas untuk mendapatkan kembali pemicu yang paling berharga. Misalnya, developer platform teknologi iklan mungkin ingin memprioritaskan untuk mendapatkan pemicu "pembelian" daripada pemicu "tambahkan ke keranjang".

Untuk mendukung logika ini, kolom prioritas terpisah dapat ditetapkan pada pemicu, dan pemicu prioritas tertinggi diambil sebelum batasan diterapkan, dalam periode pelaporan tertentu.

Mengizinkan beberapa platform teknologi iklan untuk mendaftarkan sumber atribusi atau pemicu

Sudah umum terjadi bahwa lebih dari satu platform teknologi iklan menerima laporan atribusi. Oleh karena itu, API memungkinkan beberapa platform teknologi iklan untuk mendaftarkan sumber atribusi atau pemicu yang sama.

Sumber atribusi

Pengalihan sumber atribusi didukung dalam metode registerAttributionSource():

  1. Platform teknologi iklan yang memanggil metode registerAttributionSource() dapat memberikan kolom Attribution-Reporting-Redirects tambahan dalam responsnya, yang mewakili kumpulan URL alihan teknologi iklan partner.
  2. API kemudian memanggil URL alihan sehingga sumber atribusi dapat didaftarkan oleh platform teknologi iklan partner.

Beberapa URL platform teknologi iklan partner dapat dicantumkan di kolom Attribution-Reporting-Redirects, dan platform teknologi iklan partner tidak dapat menentukan kolom Attribution-Reporting-Redirects-nya sendiri.

API juga memungkinkan berbagai platform teknologi iklan untuk setiap registerAttributionSource() panggilan.

Pemicu

Untuk pendaftaran pemicu, pihak ketiga didukung dengan cara yang sama: platform teknologi iklan dapat menggunakan kolom Attribution-Reporting-Redirects tambahan, atau masing-masing dapat memanggil metode triggerAttribution().

Saat pengiklan menggunakan beberapa platform teknologi iklan untuk mendaftarkan peristiwa pemicu yang sama, kunci penghapusan duplikat harus digunakan. Kunci penghapusan duplikat berfungsi untuk membedakan laporan berulang dengan peristiwa yang sama. Jika kunci penghapusan duplikat tidak diberikan, pemicu duplikat dapat dilaporkan kembali ke setiap platform teknologi iklan sebagai satu-satunya.

Melihat data pengukuran dalam laporan atribusi

Attribution Reporting API memungkinkan jenis laporan berikut, yang dijelaskan secara lebih mendetail nanti dalam dokumen ini:

  • Laporan tingkat peristiwa mengaitkan sumber atribusi tertentu (klik atau tampilan) dengan bit data pemicu fidelitas tinggi yang terbatas.
  • Laporan agregat tidak harus terikat dengan sumber atribusi tertentu. Laporan ini memberikan data pemicu yang lebih lengkap dengan fidelitas lebih tinggi dibandingkan laporan tingkat peristiwa, tetapi data ini hanya tersedia dalam bentuk agregat.

Kedua jenis laporan ini saling melengkapi dan dapat digunakan secara bersamaan.

Laporan tingkat peristiwa

Setelah pemicu diatribusikan ke sumber atribusi, laporan tingkat peristiwa akan dibuat dan disimpan di perangkat hingga dapat dikirimkan kembali ke setiap URL postback platform teknologi iklan selama salah satu dari jangka waktu untuk mengirim laporan, yang akan dijelaskan secara lebih mendetail nanti dalam dokumen ini.

Laporan tingkat peristiwa berguna jika sangat sedikit informasi yang diperlukan tentang pemicu. Data pemicu tingkat peristiwa dibatasi hingga 3 bit data pemicu untuk klik. Artinya, pemicu dapat diberi salah satu dari delapan kategori, dan 1 bit untuk tampilan. Selain itu, laporan tingkat peristiwa tidak mendukung encoding data sisi pemicu dengan fidelitas tinggi, seperti waktu pemicu atau harga tertentu.

Laporan tingkat peristiwa berisi data seperti berikut:

  • Tujuan: Nama paket aplikasi pengiklan atau eTLD+1 tempat pemicunya terjadi
  • ID Sumber Atribusi: ID sumber atribusi yang sama dengan yang digunakan untuk mendaftarkan sumber atribusi
  • Jenis pemicu: 1 atau 3 bit data pemicu dengan fidelitas rendah, bergantung pada jenis sumber atribusi

Mekanisme perlindungan privasi yang diterapkan ke laporan tingkat peristiwa

Fidelitas data pemicu terbatas

API menyediakan 1 bit untuk pemicu tonton-habis dan 3 bit untuk pemicu klik-tayang. Sumber atribusi terus mendukung metadata 64 bit lengkap.

Anda harus mengevaluasi apakah dan bagaimana mengurangi informasi yang dinyatakan dalam pemicu sehingga berfungsi dengan jumlah bit yang terbatas dalam laporan tingkat peristiwa.

Framework untuk derau privasi diferensial

Tujuan API ini adalah untuk memungkinkan pengukuran tingkat peristiwa untuk memenuhi persyaratan privasi diferensial lokal dengan menggunakan respons acak k untuk menghasilkan output yang memiliki banyak derau untuk setiap peristiwa sumber.

Derau diterapkan untuk melihat apakah peristiwa sumber atribusi dilaporkan secara jujur. Sumber atribusi terdaftar pada perangkat dengan probabilitas $ p $ yang berarti sumber atribusi tersebut terdaftar seperti biasa, dan dengan probabilitas $ 1-p $ bahwa perangkat secara acak memilih di antara semua kemungkinan status output dari API (termasuk tidak melaporkan apa pun, atau melaporkan beberapa laporan palsu).

Respons acak k adalah algoritme yang bersifat epsilon diferensial pribadi jika persamaan berikut terpenuhi:

\[ p = \frac{k}{k + e^ε - 1} \]

Untuk nilai ε yang rendah, output sebenarnya dilindungi oleh mekanisme respons acak k. Parameter derau yang tepat sedang dalam proses dan dapat berubah berdasarkan masukan.

Batasan pada pemicu yang tersedia (konversi)

Terdapat batasan jumlah pemicu per sumber atribusi, dengan proposal saat ini sebagai berikut:

  • 1-2 pemicu untuk sumber atribusi iklan tampilan
  • 3 pemicu untuk sumber atribusi iklan klik

Batasan ini diterapkan setelah prioritas terkait sumber atribusi dan pemicu dipertimbangkan.

Batasan jumlah platform teknologi iklan per sumber atribusi

Ada batasan jumlah platform teknologi iklan yang dapat dikaitkan dengan satu sumber atribusi. Batasan ini diterapkan setelah prioritas terkait sumber atribusi dan pemicu dipertimbangkan.

Periode waktu tertentu untuk mengirim laporan

Laporan untuk sumber atribusi tampilan iklan dikirim 1 jam setelah sumber berakhir. Tanggal kedaluwarsa ini dapat dikonfigurasi, tetapi tidak boleh kurang dari 2 hari atau lebih dari 30 hari.

Laporan untuk sumber atribusi klik iklan tidak dapat dikonfigurasi dan dikirim sebelum sumber kedaluwarsa, pada waktu tertentu yang ditentukan saat sumber didaftarkan. Waktu antara sumber atribusi dan kedaluwarsa dibagi menjadi beberapa periode pelaporan. Setiap periode pelaporan memiliki batas waktu (dari waktu sumber atribusi). Di akhir setiap periode pelaporan, perangkat akan mengumpulkan semua pemicu yang terjadi sejak periode pelaporan sebelumnya dan mengirim laporan terjadwal. API ini mendukung periode pelaporan berikut:

  • 2 hari: Perangkat mengumpulkan semua pemicu yang terjadi maksimal 2 hari setelah sumber atribusi didaftarkan. Laporan dikirim 2 hari dan 1 jam setelah sumber atribusi didaftarkan.
  • 7 hari: Perangkat mengumpulkan semua pemicu yang terjadi lebih dari 2 hari, tetapi tidak lebih dari 7 hari setelah sumber atribusi didaftarkan. Laporan ini dikirim 7 hari dan 1 jam setelah sumber atribusi didaftarkan.
  • Durasi kustom, ditentukan oleh atribut "kedaluwarsa" pada sumber atribusi. Laporan dikirim 1 jam setelah waktu kedaluwarsa yang ditentukan. Nilai ini tidak boleh kurang dari 2 hari atau lebih dari 30 hari.

Laporan agregat

Laporan agregat memberikan data pemicu dengan fidelitas lebih tinggi dari perangkat, lebih cepat, di luar yang ditawarkan untuk laporan tingkat peristiwa. Data dengan fidelitas lebih tinggi ini hanya dapat dipelajari secara agregat, dan tidak terkait dengan pemicu atau pengguna tertentu. Kunci agregasi hingga 128 bit, dan ini memungkinkan laporan agregat mendukung pelaporan kasus penggunaan seperti berikut:

  • Laporan untuk nilai pemicu, seperti pendapatan
  • Menangani jenis pemicu lainnya

Selain itu, laporan agregat memiliki karakteristik berikut:

Keseluruhan desain cara Attribution Reporting API mempersiapkan dan mengirim laporan agregat, yang ditunjukkan pada Gambar 1, adalah sebagai berikut:

  1. Perangkat mengirim laporan agregat yang dienkripsi ke platform teknologi iklan.
  2. Platform teknologi iklan mengirimkan sekumpulan laporan agregat ke layanan agregasi untuk digabungkan.
  3. Layanan agregasi membaca sekumpulan laporan agregat, mendekripsi, dan mengagregasinya.
  4. Agregat akhir dikirim kembali ke platform teknologi iklan.
Gambar 1. Proses yang digunakan Attribution Reporting API untuk menyiapkan dan mengirim laporan agregat.

Laporan agregat berisi data berikut yang terkait dengan sumber atribusi:

  • Sumber: Nama paket aplikasi atau URL web eTLD+1 tempat iklan ditayangkan.
  • Tujuan: Nama paket aplikasi atau URL web eTLD+1 tempat pemicu terjadi.
  • Tanggal: Tanggal saat peristiwa yang diwakili oleh sumber atribusi terjadi.
  • Payload: Nilai pemicu, dikumpulkan sebagai key-value pair terenkripsi, yang digunakan di layanan agregasi tepercaya untuk menghitung agregasi.

Layanan agregasi

Layanan berikut memberikan fungsi agregasi dan membantu melindungi dari akses data agregasi yang tidak pantas.

Layanan ini dikelola oleh berbagai pihak, yang nanti akan dijelaskan lebih mendetail dalam dokumen ini:

  • Layanan agregasi adalah satu-satunya yang diharapkan untuk di-deploy oleh platform teknologi iklan.
  • Layanan pengelolaan kunci dan anggaran privasi dijalankan oleh pihak tepercaya yang disebut sebagai verifier. Verifier ini menegaskan bahwa kode yang menjalankan layanan agregasi adalah kode yang tersedia secara publik dan disediakan oleh Google, dan bahwa semua pengguna layanan agregasi memiliki layanan kunci dan anggaran yang sama dan diterapkan pada layanan tersebut.
Layanan agregasi

Platform teknologi iklan harus terlebih dahulu men-deploy layanan agregasi yang berdasarkan biner dan disediakan oleh Google.

Layanan agregasi ini beroperasi di Trusted Execution Environment (TEE) yang dihosting di cloud. TEE menawarkan manfaat keamanan berikut:

  • Ini memastikan bahwa kode yang beroperasi di TEE adalah biner khusus yang ditawarkan oleh Google. Kecuali jika kondisi ini terpenuhi, layanan agregasi tidak dapat mengakses kunci dekripsi yang diperlukan untuk beroperasi.
  • Layanan ini menawarkan keamanan seputar proses yang berjalan, mengisolasinya dari pemantauan atau gangguan eksternal.

Manfaat keamanan ini memberikan keamanan lebih bagi layanan agregasi untuk menjalankan operasi yang sensitif, seperti mengakses data terenkripsi.

Untuk mengetahui informasi selengkapnya tentang pertimbangan desain, alur kerja, dan keamanan layanan agregasi, lihat dokumen layanan agregasi di GitHub.

Key management service

Layanan ini memverifikasi bahwa layanan agregasi menjalankan versi biner yang disetujui, lalu menyediakan layanan agregasi di platform teknologi iklan dengan kunci dekripsi yang benar untuk data pemicunya.

Layanan anggaran privasi

Layanan ini melacak seberapa sering layanan agregasi platform teknologi iklan mengakses pemicu tertentu—yang dapat berisi beberapa kunci agregasi—dan membatasi akses ke jumlah dekripsi yang sesuai. Satu dekripsi per pemicu diizinkan.

Aggregatable Reports API

API untuk membuat kontribusi ke laporan agregat menggunakan API dasar yang sama seperti saat mendaftarkan sumber atribusi untuk laporan tingkat peristiwa. Bagian berikut ini menjelaskan ekstensi API tersebut.

Mendaftarkan data sumber agregat

Saat API membuat permintaan ke URI Sumber Atribusi, platform teknologi iklan dapat mendaftarkan daftar kunci agregasi dengan merespons menggunakan Attribution-Reporting-Register-Aggregate-Source header HTTP yang baru dengan kolom berikut untuk setiap kunci agregasi dalam daftar:

  • ID peristiwa sumber: String untuk nama kunci. Digunakan sebagai kunci penghubung untuk digabungkan dengan kunci sisi pemicu untuk membuat kunci akhir.
  • Bagian kunci: Nilai bitstring untuk kunci.
  • Offset kunci: Nilai bilangan bulat dari indeks offset untuk menggabungkan bagian kunci ini dengan bagian kunci sisi pemicu.

Kunci akhir adalah kombinasi dari bagian ini dan bagian sisi pemicu, menggunakan kolom offset kunci untuk menyambung bitstring. Kunci akhir dibatasi maksimum 128 bit; kunci yang lebih panjang dari ini akan terpotong.

Pada contoh berikut, platform teknologi iklan menggunakan API untuk mengumpulkan hal berikut:

  • Jumlah konversi agregat di tingkat kampanye
  • Nilai pembelian agregat pada tingkat geografis
Attribution-Reporting-Register-Aggregate-Source:
[{
  // Generates a "101011001" key prefix named "campaignCounts".
  "source_event_id": "campaignCounts",
  "key_piece": "101011001", // User saw ad from campaign 345 (out of 511).
  "key_offset": 0 // The first part of the key
                  // when combined with trigger-side keys.
},
{
  // Generates a "101" key prefix named "geoValue".
  "source_event_id": "geoValue",
  // Source-side geo region = 5 (US) but pad with 0s since the shop operates in
  // ~100 separate countries.
  "key_piece": "0000101",
  "key_offset": 0 // The first part of the key
                  // when combined with trigger-side keys.
}]

Mendaftarkan pemicu agregat

Pendaftaran pemicu mencakup dua header tambahan.

Header pertama digunakan untuk mendaftarkan daftar kunci agregat pada sisi pemicu. Platform teknologi iklan harus merespons kembali dengan Attribution-Reporting-Aggregate-Trigger-Data header HTTP, dengan kolom berikut untuk setiap kunci agregat dalam daftar:

  • Bagian kunci: Nilai bitstring untuk kunci.
  • Offset kunci: Nilai bilangan bulat, digunakan sebagai indeks offset ketika menggabungkan bagian kunci sumber atribusi dengan bagian kunci pemicu.
  • Kunci sumber: Daftar string dengan nama kunci sisi sumber atribusi yang harus digabungkan dengan kunci pemicu untuk membentuk kunci akhir.

Cuplikan berikut melanjutkan contoh dari mendaftarkan data sumber agregat dalam laporan agregat:

Attribution-Reporting-Aggregate-Trigger-Data:
[
  // Each dictionary independently adds pieces to multiple source keys.
  {
    "key_piece": "10",// Conversion type purchase = 2
    // Combine key piece at offset index 9 with attribution source key piece.
    "key_offset": 9,
    // Apply this suffix to:
    "source_keys": ["campaignCounts"]
  },
  {
    "key_piece": "10101",// Purchase category shirts = 21
    // Combine key piece at offset index 9 with attribution source key piece.
    "key_offset": 7,
    // Apply this suffix to:
    "source_keys": ["geoValue" ]
  }
]

Header kedua digunakan untuk mendaftarkan daftar nilai yang akan berkontribusi pada setiap kunci. Platform teknologi iklan harus merespons kembali dengan Attribution-Reporting-Aggregate-Values header HTTP.

Setiap pemicu dapat memberikan beberapa kontribusi pada laporan agregat. Jumlah total kontribusi ke setiap sumber atribusi tertentu terikat oleh parameter $ L1 $, yang merupakan jumlah maksimum kontribusi (nilai) di seluruh kunci agregat untuk sumber atribusi tertentu. Jika batas ini terlampaui, kontribusi di masa mendatang akan berkurang secara perlahan. Proposal awal adalah untuk menetapkan $ L1 $ ke $ 2^{16} $ (65536). Derau di layanan agregasi diskalakan dengan proporsi pada parameter ini. Oleh karena itu, sebaiknya skalakan nilai yang dilaporkan untuk kunci agregat tertentu sesuai dengan porsi anggaran privasi $ L1 $ yang dialokasikan untuk kunci tersebut. Pendekatan ini membantu memastikan bahwa laporan agregat mempertahankan fidelitas setinggi mungkin ketika derau diterapkan. Mekanisme ini sangat fleksibel dan dapat mendukung banyak strategi agregasi.

Pada contoh berikut, anggaran privasi dibagi secara merata antara campaignCounts dan geoValue dengan membagi kontribusi $ L1 $ ke masing-masing:

Attribution-Reporting-Aggregate-Values:
{
    // Privacy budget for each key is L1 / 2 = 2^15 (32768).
    // Conversion count was 1.
    // Scale the count to use the full budget allocated: 1 * 32768 = 32768.
    "campaignCounts": 32768,

    // Purchase price was $52.
    // Purchase values for the app range from $1 to $1,024 (integers only).
    // Scaling factor applied is 32768 / 1024 = 32.
    // For $52 purchase, scale the value by 32 ($52 * 32 = $1,664).
    "geoValue": 1664
}

Contoh sebelumnya menghasilkan jumlah agregat berikut:

[
  // campaignCounts:
  {
    // The attribution source key piece "101011001" (offset 0)
    // is concatenated with  "10" (offset 9) trigger key piece to form
    // the final key "10101100110" = 1382.
    "key": "1382",
    "value": 32768
  },
  // geoValue:
  {
    // The attribution source key piece "0000101" (offset 0)
    // is concatenated with  "10101" (offset 7) trigger key piece to form
    // the final key "000010110101" = 181.
    "key": "181",
    "value": "1664"
  }
]

Faktor penskalaan dapat dibalik untuk mendapatkan nilai yang benar, derau modular yang diterapkan:

L1 = 65536
trueCampaignCounts = campaignCounts / (L1 / 2)
trueGeoValue = geoValue / (L1 / 2) * 1024

Privasi diferensial

Tujuan API ini adalah memiliki framework yang dapat mendukung pengukuran agregat pribadi secara diferensial. Hal ini dapat dicapai dengan menambahkan derau yang proporsional dengan anggaran $ L1 $, seperti memilih derau dengan distribusi berikut:

\[ Laplace(\frac{ε}{L1}) \]

Pertimbangan di masa mendatang & pertanyaan terbuka

Attribution Reporting API sedang dalam proses. Kami juga mengeksplorasi potensi fitur di masa mendatang, seperti model atribusi non-klik terakhir dan kasus penggunaan pengukuran lintas-perangkat.

Selain itu, kami ingin meminta masukan dari komunitas terkait beberapa masalah:

  1. Kami berencana untuk mengizinkan beberapa platform teknologi iklan untuk mendaftarkan sumber atribusi dan pemicu untuk mengaktifkan pengukuran pihak ketiga. Dengan proposal kami saat ini, hanya platform teknologi iklan yang berasal dari panggilan API yang dapat menentukan daftar platform teknologi iklan pihak ketiga. Untuk menyederhanakan desain API, kami dapat mengizinkan platform teknologi iklan untuk mengalihkan daisy-chain dengan hanya menentukan platform teknologi iklan berikutnya.
  2. Untuk mengaktifkan pengukuran aplikasi ke web tempat pemicu dapat terjadi di aplikasi atau web, platform teknologi iklan harus memberikan kolom tujuan yang sama pada sumber atribusi dan pendaftaran pemicu. Kami mengevaluasi apakah wajar untuk menggunakan eTLD+1 web, meskipun pemicunya terjadi dalam aplikasi.
  3. Untuk mencegah laporan pemicu duplikat, jika platform teknologi iklan mendaftarkan pemicu yang sama beberapa kali, sebaiknya Anda menggunakan kunci penghapusan duplikat. Kami sedang mengevaluasi apakah aplikasi dapat meneruskan kunci penghapusan duplikat ini ke semua platform teknologi iklan, termasuk platform pihak ketiga.