Pengertian kunci agregasi, cara menggunakannya di Attribution Reporting API, dan cara menerjemahkan sasaran menjadi kunci.
Sebagai perusahaan teknologi iklan yang menjalankan kampanye di beberapa lokasi untuk berbagai kategori produk, Anda ingin membantu pengiklan menjawab pertanyaan berikut:
- Berapa banyak pembelian dari setiap kategori produk yang dihasilkan oleh setiap kampanye saya di setiap wilayah geografis?
- Berapa pendapatan untuk setiap kategori produk yang dihasilkan oleh setiap kampanye saya di setiap wilayah geografis?
Meskipun banyak perusahaan teknologi iklan mendorong pengiklan untuk mengonfigurasi berbagai jenis konversi, berfokus pada konversi yang paling penting seperti pembelian adalah cara yang baik untuk memastikan bahwa hasil ringkasan mendetail dan akurat untuk peristiwa penting ini.
Untuk melakukannya, Anda harus memikirkan pertanyaan apa yang ingin Anda jawab sebelum data dikumpulkan.
Dimensi, kunci, dan nilai
Untuk menjawab pertanyaan ini, mari kita lihat dimensi, kunci, dan nilai.
Dimensi
Untuk memahami bagaimana kampanye Anda menghasilkan pendapatan, seperti yang dijelaskan di sini, Anda dapat melacak dimensi berikut:
- ID kampanye iklan: ID untuk kampanye tertentu.
- ID Geografi: wilayah geografis tempat iklan ditayangkan.
- Kategori produk: jenis produk seperti yang Anda tetapkan.
Meskipun dimensi ID Kampanye dan ID Geografi diketahui saat iklan ditayangkan (waktu penayangan iklan), kategori Produk akan diketahui dari peristiwa pemicu, saat pengguna menyelesaikan konversi (waktu konversi).
Dimensi yang ingin Anda lacak untuk contoh ini adalah seperti yang ditunjukkan pada gambar berikut:
![ID kampanye, ID Geografi, dan kategori produk.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/campaign-id-geography-id-223ed5327b057.png?authuser=7&hl=id)
Apa itu kunci agregasi (bucket)?
Istilah kunci agregasi dan bucket merujuk pada hal yang sama. Kunci agregasi digunakan di API browser yang digunakan untuk mengonfigurasi laporan. Istilah bucket digunakan dalam laporan agregat dan ringkasan, serta dalam API layanan agregasi.
Kunci agregasi (singkatnya) adalah bagian data yang mewakili nilai dimensi yang sedang dilacak. Data nantinya akan diagregasi bersama setiap kunci agregasi.
Misalnya, asumsikan Anda melacak dimensi Kategori produk, ID Geografi, dan ID Kampanye.
Saat pengguna yang berada di ID Geografi 7 melihat iklan untuk ID Kampanye 12, dan kemudian melakukan konversi dengan membeli produk dalam kategori Produk 25, Anda dapat menetapkan kunci agregasi yang terlihat seperti yang ada dalam gambar berikut:
![Kunci agregasi untuk konversi.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/aggregation-key-a-conver-0cd37e4079fee.png?authuser=7&hl=id)
Anda akan melihat nanti bahwa kunci agregasi tidak terlihat sama persis seperti ini dalam praktiknya, tetapi untuk saat ini mari kita fokus pada informasi yang terdapat dalam kunci.
Apa itu nilai agregat?
Untuk menjawab pertanyaan Anda mengenai dimensi yang telah kami uraikan, sebaiknya Anda mengetahui:
- Jumlah pembelian (jumlah pembelian). Setelah digabungkan dan disediakan dalam laporan ringkasan, metrik ini akan menjadi jumlah total pembelian (nilai ringkasan).
- Pendapatan untuk setiap pembelian (nilai pembelian). Setelah digabungkan dan tersedia dalam laporan ringkasan, metrik ini akan menjadi total pendapatan (nilai ringkasan).
Masing-masing—jumlah pembelian untuk satu konversi dan nilai pembelian untuk satu konversi—adalah nilai agregat. Anda dapat menganggap nilai agregat sebagai nilai sasaran pengukuran Anda.
Pertanyaan | Nilai agregat = Sasaran pengukuran |
---|---|
Berapa banyak pembelian... | Jumlah pembelian |
Berapa pendapatan... | Nilai pembelian |
Jika pengguna yang berada di ID Geografi 7 melihat iklan untuk ID Kampanye 12, lalu melakukan konversi dengan membeli produk kategori Produk 25 seharga Rp1.200.000 (dengan asumsi mata uang Anda adalah USD), Anda dapat menetapkan kunci agregasi dan nilai agregat yang terlihat seperti ini:
![Kunci dan nilai agregasi.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/aggregation-keys-values-912b4f69661bd.png?authuser=7&hl=id)
Nilai agregat dijumlahkan per kunci di banyak pengguna untuk menghasilkan insight gabungan, dalam bentuk nilai ringkasan dalam laporan ringkasan.
![Menghasilkan insight gabungan.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/generating-aggregated-ins-e7ef89ea0a238.png?authuser=7&hl=id)
Nilai agregat dijumlahkan untuk menghasilkan insight gabungan untuk sasaran pengukuran Anda.
Perhatikan bahwa diagram ini menghilangkan dekripsi dan menampilkan contoh sederhana tanpa penerapan derau. Di bagian berikutnya, kita akan menguraikan contoh ini dengan derau.
Dari kunci dan nilai hingga laporan
Sekarang, mari kita bahas hubungan antara kunci dan nilai agregat dengan laporan.
Laporan agregat
Saat pengguna mengklik atau melihat iklan, lalu melakukan konversi, Anda menginstruksikan browser untuk menyimpan pasangan {aggregate key, aggregatable value}.
Dalam contoh kami, saat pengguna mengklik atau melihat iklan, lalu melakukan konversi, Anda menginstruksikan browser untuk membuat dua kontribusi (satu per sasaran pengukuran).
![Membuat dua kontribusi.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/generating-contributions-fa8bc97295bc7.png?authuser=7&hl=id)
Nantinya Anda akan melihat bahwa laporan agregat {agregasi, nilai agregat} tidak terlihat persis seperti ini—tetapi untuk sekarang, mari kita fokus pada informasi yang terdapat dalam laporan.
Saat Anda memerintahkan browser untuk menghasilkan dua kontribusi, browser akan membuat laporan agregat (jika dapat mencocokkan konversi dengan tampilan atau klik sebelumnya).
Laporan agregat berisi:
- Kontribusi yang telah Anda konfigurasi.
- Metadata tentang peristiwa klik atau penayangan dan peristiwa konversi: situs tempat konversi terjadi, dan lainnya. Lihat semua kolom dalam laporan agregat.
![Hasil laporan agregat.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/the-resulting-aggregatabl-3df86364f7725.png?authuser=7&hl=id)
Laporan agregat berformat JSON dan mencakup antara lain, kolom payload yang akan digunakan sebagai input data untuk laporan ringkasan akhir.
Payload berisi daftar kontribusi, masing-masing merupakan pasangan {agregasi kunci, nilai agregat}:
bucket
: kunci agregasi, dienkode sebagai bytestring.value
: nilai agregat untuk sasaran pengukuran tersebut, yang dienkode sebagai bytestring.
Berikut contohnya:
{
"data": [
{
"bucket": "111001001",
"value": "11111010000",
}
],
"operation": "histogram"
}
Dalam praktiknya, laporan agregat dienkode dengan cara yang akan membuat bucket dan nilai terlihat berbeda dari contoh sebelumnya (yaitu, bucket mungkin terlihat seperti \u0000\u0000\x80\u0000
). Bucket dan value adalah bytestring.
Laporan ringkasan
Laporan agregat digabungkan di banyak browser dan perangkat (pengguna) sebagai berikut:
- Teknologi iklan meminta laporan ringkasan untuk kumpulan kunci tertentu, dan kumpulan laporan agregat tertentu yang berasal dari berbagai browser (pengguna) yang berbeda.
- Laporan agregat didekripsi oleh layanan agregasi.
- Untuk setiap kunci, nilai agregat dari laporan agregat dijumlahkan.
- Derau ditambahkan ke nilai ringkasan.
![Laporan agregat ditambah hasil agregasi, dekripsi, dan derau dalam laporan ringkasan.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/aggregatable-reports-plus-9bd26966f76f7.png?authuser=7&hl=id)
Hasilnya adalah laporan ringkasan yang berisi kumpulan pasangan {agregasi kunci, nilai ringkasan}.
Laporan ringkasan berisi kumpulan key-value pair bergaya kamus JSON. Setiap pasangan berisi:
bucket
: kunci agregasi, dienkode sebagai bytestring.value
: nilai ringkasan dalam desimal untuk sasaran pengukuran tertentu, diringkas dari semua laporan agregat yang tersedia, dengan tingkat derau tambahan.
Contoh:
[
{"bucket": "111001001", "value": "2558500"},
{"bucket": "111101001", "value": "3256211"},
{...}
]
Dalam praktiknya, laporan ringkasan dienkode dengan cara yang akan membuat bucket dan nilai terlihat berbeda dari yang dinyatakan dalam contoh (yaitu, bucket mungkin terlihat seperti \u0000\u0000\x80\u0000
). Bucket dan value adalah bytestring.
Cara kerja kunci agregasi
Kunci agregasi (bucket) ditentukan oleh perusahaan teknologi iklan, biasanya dalam dua langkah: saat iklan diklik atau dilihat, dan saat pengguna melakukan konversi.
Struktur kunci
Kita akan menggunakan istilah struktur kunci untuk menentukan kumpulan dimensi yang dienkode ke kunci.
Misalnya, ID Kampanye × GeoID × Kategori produk adalah struktur utama.
![Struktur kunci.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/key-structure-17b99e9ad0974.png?authuser=7&hl=id)
Jenis kunci
Nilai agregat dijumlahkan untuk kunci tertentu di beberapa pengguna/browser. Namun, kita telah melihat bahwa nilai agregat dapat melacak berbagai sasaran pengukuran, seperti nilai pembelian atau jumlah pembelian. Anda ingin memastikan bahwa layanan agregasi akan menjumlahkan nilai agregat dari jenis yang sama.
Untuk melakukannya, dalam setiap kunci, enkode sepotong data yang memberi tahu Anda apa yang diwakili oleh nilai ringkasan—sasaran pengukuran yang dirujuk oleh kunci ini. Salah satu cara untuk melakukannya adalah dengan membuat dimensi tambahan untuk kunci Anda yang mewakili jenis sasaran pengukuran.
Menggunakan contoh kita sebelumnya, jenis sasaran pengukuran ini akan memiliki dua kemungkinan nilai yang berbeda:
- Jumlah pembelian adalah jenis sasaran pengukuran pertama.
- Nilai pembelian adalah jenis sasaran pengukuran kedua.
![Sasaran pengukuran dan jenis sasaran pengukuran.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/measurement-goals-measur-6f6f8b6468ec3.png?authuser=7&hl=id)
Jika Anda memiliki n sasaran pengukuran, jenis sasaran pengukuran akan memiliki n jenis nilai yang berbeda.
Anda dapat menganggap dimensi kunci sebagai metrik. Misalnya, "jumlah pembelian produk tertentu per kampanye per geografi".
Ukuran kunci, ukuran dimensi
Ukuran kunci maksimum ditentukan dalam bit, yaitu jumlah nol dan satu dalam biner untuk membuat kunci lengkap. API ini mengizinkan panjang kunci sebesar 128 bit.
Ukuran ini memungkinkan kunci yang sangat terperinci, tetapi kunci yang lebih terperinci cenderung menghasilkan nilai yang lebih berisik. Anda dapat membaca selengkapnya tentang derau di Memahami derau.
Seperti yang diperkenalkan sebelumnya, dimensi dienkode ke kunci agregasi. Setiap dimensi memiliki kardinalitas tertentu—yaitu, jumlah nilai unik yang dapat diambil dimensi. Bergantung pada kardinalitasnya, setiap dimensi perlu diwakili oleh jumlah bit tertentu. Dengan n bit, Anda dapat mengekspresikan 2n opsi yang berbeda.
Misalnya, dimensi Negara mungkin memiliki kardinalitas 200, karena ada sekitar 200 negara di dunia. Berapa banyak bit yang diperlukan untuk mengenkode dimensi ini?
7 bit hanya akan menyimpan 27 = 128 opsi berbeda, yang kurang dari 200 yang dibutuhkan.
8 bit akan menyimpan 28 = 256 opsi berbeda, yang melebihi jumlah yang dibutuhkan 200, sehingga Anda dapat menggunakan n=8 bit untuk mengenkode dimensi ini.
Encoding kunci
Saat Anda menyetel kunci pada browser, kunci tersebut harus dienkode dalam heksadesimal. Dalam laporan ringkasan, kunci akan muncul dalam biner (dan diberi nama bucket).
Menetapkan dua bagian kunci untuk kunci penuh
Anggaplah Anda menggunakan kunci untuk melacak dimensi berikut:
- ID kampanye
- ID Geografi
- Kategori produk
Meskipun dimensi ID Kampanye dan ID Geografi diketahui saat iklan ditayangkan (waktu penayangan iklan), kategori produk akan diketahui dari peristiwa pemicu, saat pengguna menyelesaikan konversi (waktu konversi).
Dalam praktiknya, Anda akan menetapkan kunci dalam dua langkah:
- Anda akan menetapkan satu bagian kunci—ID Kampanye × ID Geografi—saat klik atau waktu tampilan.
- Anda perlu menetapkan bagian kedua dari kunci—Kategori produk—saat konversi.
Bagian-bagian berbeda dari kunci ini disebut bagian kunci.
Kunci dihitung dengan mengambil XOR (^
) dari bagian kuncinya.
![Melakukan XOR bagian-bagian kunci.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/xoring-key-pieces-6c7b39f58a41f.png?authuser=7&hl=id)
Contoh:
- Bagian kunci sisi sumber =
0x159
- Bagian kunci sisi pemicu =
0x400
- Kunci =
0x159 ^ 0x400 = 0x559
Menyelaraskan bagian-bagian penting
Dengan dua buah kunci 64-bit yang diperluas hingga 128 bit menggunakan pengisi/offset 64-bit yang ditempatkan dengan hati-hati (enam belas angka nol), potongan kunci XOR-ing setara dengan menggabungkannya, yang lebih mudah untuk dipahami dan diverifikasi:
- Bagian kunci sisi sumber =
0xa7e297e7c8c8d0540000000000000000
- Bagian kunci sisi pemicu =
0x0000000000000000674fbe308a597271
- Kunci =
0xa7e297e7c8c8d0540000000000000000 ^ 0x0000000000000000674fbe308a597271 = 0xa7e297e7c8c8d054674fbe308a597271
Beberapa kunci per klik atau tampilan iklan
Dalam praktiknya, Anda dapat menetapkan beberapa kunci per peristiwa sumber atribusi (klik iklan atau penayangan). Misalnya, Anda dapat menetapkan:
- Kunci yang melacak ID Geografi × ID Kampanye.
- Kunci lain yang melacak Jenis Materi Iklan × ID Kampanye.
Lihat Strategi B untuk contoh lainnya.
Dimensi encoding ke dalam kunci
Saat meminta laporan ringkasan, Anda harus memberi tahu layanan agregasi metrik apa yang ingin Anda akses, dengan meminta laporan ringkasan untuk kumpulan kunci agregasi tertentu.
Laporan ringkasan berisi pasangan {key, summary value} mentah, dan tidak ada informasi tambahan tentang kunci. Ini berarti:
- Saat menetapkan kunci saat pengguna melihat atau mengklik iklan, lalu melakukan konversi, Anda perlu menetapkan kunci secara andal berdasarkan nilai dimensi yang diwakilinya.
- Saat menentukan kunci yang ingin Anda minta laporan ringkasannya, Anda harus membuat atau mengakses dengan cepat kunci yang sama dengan kunci yang ditetapkan saat pengguna melihat atau mengklik iklan dan melakukan konversi, berdasarkan nilai dimensi yang data gabungannya ingin Anda lihat.
Dimensi encoding menggunakan peta struktur kunci
Untuk mengenkode dimensi menjadi kunci, Anda dapat membuat dan mengelola peta struktur kunci terlebih dahulu, setelah menentukan kunci (sebelum waktu penayangan iklan).
Peta struktur utama mewakili setiap dimensi Anda dan posisinya dalam kunci.
Dalam praktiknya, membuat dan mempertahankan peta struktur kunci berarti Anda harus menerapkan dan memelihara logika decoder. Jika Anda mencari metode yang tidak mengharuskan Anda melakukannya, pertimbangkan untuk menggunakan pendekatan berbasis hash.
Berikut contohnya:
Anggaplah Anda berencana melacak pembelian dan nilai pembelian untuk kampanye, wilayah geografis, dan produk tertentu.
Kategori produk, ID geografi, dan ID kampanye harus merupakan dimensi dalam kunci Anda. Selain itu, karena Anda ingin melacak dua sasaran pengukuran yang berbeda—jumlah pembelian dan nilai pembelian—Anda perlu menambahkan satu dimensi dalam kunci untuk melacak jenis kunci. Tindakan ini akan memungkinkan Anda menentukan apa yang sebenarnya diwakili oleh nilai agregat setelah menerima pasangan {key, aggregatable value} dalam laporan ringkasan.
Dengan sasaran pengukuran ini, kunci Anda memiliki dimensi berikut:
- Kategori produk
- Jenis sasaran pengukuran
- ID Geografi
- ID kampanye
Sekarang, dengan melihat setiap dimensi, mari asumsikan untuk kasus penggunaan Anda, bahwa Anda perlu melacak hal berikut:
- 29 kategori produk yang berbeda.
- 8 wilayah geografis yang berbeda: Amerika Utara, Amerika Tengah, Amerika Selatan, Eropa, Afrika, Asia, Karibia, dan Oseania.
- 16 kampanye berbeda.
Berikut adalah jumlah bit yang Anda perlukan untuk mengenkode setiap dimensi dalam kunci Anda:
- Kategori produk: 5 bit (25 = 32 > 29).
- Jenis sasaran pengukuran: 1 bit. Sasaran pengukurannya adalah jumlah pembelian atau nilai pembelian, yang berarti dua kemungkinan berbeda; oleh karena itu, satu bit sudah cukup untuk menyimpan data ini.
ID Geografi: 3 bit (23 = 8). Anda juga akan menentukan peta dimensi untuk ID Geografi agar dapat mengetahui wilayah geografis yang diwakili oleh setiap nilai biner. Peta dimensi untuk dimensi ID Geografi Anda mungkin terlihat seperti ini:
Nilai biner dalam kunci Geografi 000 Amerika Utara 001 Amerika Tengah 010 Amerika Selatan 011 Eropa 100 Afrika 101 Asia 110 Karibia 111 Oseania ID Kampanye: 4 bit (24 = 16)
Panjang kunci yang mengikuti struktur ini adalah 13 bit (5 + 1 + 3 + 4).
Untuk contoh ini, peta struktur kunci untuk kunci ini akan terlihat seperti ini:
![Peta struktur kunci.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/key-structure-map-4664a0905c7de.png?authuser=7&hl=id)
Anda bebas menentukan urutan dimensi dalam kunci.
Untuk menggambarkan bagaimana dimensi membentuk struktur kunci, kita akan menggunakan representasi biner, itulah sebabnya ID Kampanye (bit pertama) adalah yang paling kanan, dan kategori produk (bit terakhir) adalah yang paling kiri.
Dalam setiap dimensi, bit yang paling signifikan—bit yang membawa nilai numerik terbesar—adalah bit paling kiri. Bit paling tidak signifikan—bit yang membawa nilai numerik terkecil—adalah bit paling kanan.
Mari kita lihat bagaimana Anda akan menggunakan peta struktur kunci untuk mendekode kunci.
Mari kita ambil 0b1100100111100 sebagai contoh kunci acak, dan anggaplah Anda memiliki cara untuk mengetahui bahwa kunci ini mengikuti peta struktur kunci dalam ilustrasi sebelumnya.
Menurut peta struktur kunci, kunci ini akan mendekode ke 11001 0 011 1100
.
Jadi, kunci 0b1100100111100 mewakili jumlah pembelian kategori Produk 25, untuk ID Kampanye 12 yang diluncurkan di Eropa.
Dimensi encoding menggunakan fungsi hash
Daripada menggunakan peta struktur kunci, Anda dapat menggunakan fungsi hashing untuk membuat kunci secara dinamis dengan cara yang konsisten dan andal.
Cara kerjanya adalah sebagai berikut:
- Pilih algoritma {i>hashing<i}.
- Pada waktu penayangan iklan, buat string yang menyertakan semua dimensi yang ingin Anda lacak, beserta nilainya. Untuk membuat bagian kunci sisi sumber,
hash string ini dan pertimbangkan untuk menambahkan akhiran nol 64-bit untuk menyelaraskannya
dengan bagian kunci sisi pemicu dan membuat XOR lebih mudah untuk dipahami.
- Bagian kunci sisi sumber
=<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
- Perhatikan bahwa
COUNT
mengenkode hal yang sama sepertimeasurementGoalType=0
dalam pendekatan peta struktur kunci.COUNT
sedikit lebih ramping dan lebih eksplisit.
- Bagian kunci sisi sumber
- Pada waktu konversi, buat string yang menyertakan semua dimensi yang ingin Anda lacak, beserta nilainya. Untuk membuat bagian kunci sisi pemicu, hash string ini dan tambahkan awalan nol 64-bit:
- Bagian kunci sisi pemicu
=
<64-bit 00000000…><64-bit hex hash("productCategory=25")>
- Bagian kunci sisi pemicu
=
- Browser melakukan XOR bagian kunci ini untuk menghasilkan kunci.
- Kunci agregasi 128 bit
=<64-bit hex source-side key piece hash><64-bit hex source-side key piece hash>
- Kunci agregasi 128 bit
- Nanti, jika Anda sudah siap meminta laporan ringkasan untuk kunci ini, buat laporan tersebut dengan cepat:
- Berdasarkan dimensi yang Anda minati, buat bagian kunci sisi sumber dan sisi pemicu seperti yang Anda lakukan sebelumnya.
- Bagian kunci sisi sumber
=<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
- Bagian kunci sisi pemicu
=<64-bit 00000000…><64-bit hex hash("productCategory=25")>
- bagian kunci sisi pemicu =
toHex(hash("productCategory=25"))
- Bagian kunci sisi sumber
- Sama seperti browser, lakukan XOR pada bagian-bagian kunci ini untuk menghasilkan kunci yang sama dengan yang telah dihasilkan oleh browser sebelumnya.
- Kunci agregasi 128 bit
=<64-bit source-side key piece hash><64-bit source-side key piece hash>
- Kunci agregasi 128 bit
- Berdasarkan dimensi yang Anda minati, buat bagian kunci sisi sumber dan sisi pemicu seperti yang Anda lakukan sebelumnya.
Beberapa tips praktis jika Anda menggunakan pendekatan berbasis hash ini:
- Selalu gunakan urutan dimensi yang sama. Dengan begitu, hash Anda dapat dibuat ulang dengan andal. (
"COUNT, CampaignID=12, GeoID=7"
tidak akan menghasilkan hash yang sama seperti"COUNT, GeoID=7, CampaignID=12"
). Salah satu cara mudah untuk melakukannya adalah dengan mengurutkan dimensi secara alfanumerik. Inilah yang akan kita lakukan dalam contoh, kecuali bahwa kita akan selalu menjadikanCOUNT
atauVALUE
item pertama dalam dimensi—ini adalah pilihan untuk keterbacaan, karenaCOUNT
atauVALUE
mengenkode informasi yang secara konseptual sedikit berbeda dari semua dimensi lainnya. - Melacak kumpulan dimensi yang Anda gunakan dalam kunci. Sebaiknya hindari pembuatan kunci berdasarkan kumpulan dimensi yang belum pernah digunakan.
- Tabrakan hash jarang terjadi jika fungsi hash yang sesuai digunakan, tetapi memeriksa hash yang sebelumnya digunakan (yang harus disimpan untuk menafsirkan hasil dari layanan agregasi) dapat menghindari masuknya kunci baru yang bertabrakan dengan kunci yang lebih lama.
Lihat cara menggunakan kunci berbasis hash dalam satu konversi per klik atau lihat contoh.
Nilai agregat dalam praktik
Perusahaan teknologi iklan menetapkan nilai agregat saat pengguna melakukan konversi.
Untuk melindungi privasi pengguna, kontribusi dari setiap pengguna memiliki batas atas. Di semua nilai agregat yang terkait dengan satu sumber (penayangan atau klik iklan), tidak ada nilai yang dapat melebihi batas kontribusi tertentu.
Kita akan menyebut batas ini sebagai CONTRIBUTION_BUDGET
. Dalam penjelasan, batas ini disebut anggaran L1, tetapi sama dengan CONTRIBUTION_BUDGET
.
Untuk pembahasan mendalam tentang anggaran kontribusi, lihat Anggaran kontribusi untuk laporan ringkasan.
Contoh: satu konversi per klik atau penayangan
Untuk contoh ini, asumsikan bahwa Anda ingin menjawab pertanyaan-pertanyaan berikut:
- Kategori produk mana yang paling bernilai di setiap wilayah?
- Manakah strategi kampanye yang paling efektif di setiap wilayah?
Mari asumsikan juga bahwa untuk kasus penggunaan, Anda memerlukan insight mingguan.
Anda juga perlu melacak hal berikut:
- 16 kampanye berbeda.
- 8 wilayah geografis yang berbeda: Amerika Utara, Amerika Tengah, Amerika Selatan, Eropa, Afrika, Asia, Karibia, dan Oseania.
- 29 kategori produk yang berbeda.
Apa yang harus diukur
Meskipun banyak perusahaan teknologi iklan mendorong pengiklan untuk mengonfigurasi berbagai jenis konversi, berfokus pada konversi yang paling penting seperti pembelian adalah cara yang baik untuk memastikan bahwa hasil gabungan sudah mendetail dan akurat untuk peristiwa konversi penting ini. Bahkan, semakin banyak metrik yang Anda ukur, semakin kecil anggaran kontribusi Anda per metrik, dan oleh karena itu, kemungkinan tingkat derau setiap nilai akan semakin meningkat. Oleh karena itu, Anda perlu memilih dengan cermat apa yang akan diukur.
Dalam contoh ini, kami akan berfokus pada penyiapan kampanye yang hanya mengukur satu konversi per klik atau tampilan: pembelian.
Anda tetap dapat mengukur jumlah pembelian dan nilai pembelian, serta mengakses berbagai statistik gabungan yang penting seperti total nilai pembelian dan perincian geografis. Hal ini menjaga derau tetap masuk akal dan memastikan pendekatan penskalaan yang sederhana untuk anggaran kontribusi Anda.
Bagaimana dengan mata uang?
Menjalankan kampanye di berbagai wilayah menyiratkan bahwa mata uang harus diperhitungkan. Anda dapat:
- Jadikan mata uang sebagai dimensi khusus dalam kunci agregasi.
- Atau, tentukan mata uang dari ID kampanye, dan konversikan semua mata uang ke mata uang referensi.
Dalam contoh ini, kami akan mengasumsikan bahwa Anda dapat menyimpulkan mata uang dari ID kampanye. Dengan begitu, Anda dapat mengonversi nilai pembelian tertentu dari mata uang lokal pengguna ke mata uang referensi pilihan Anda. Anda juga dapat melakukan konversi tersebut dengan cepat, saat pengguna membeli barang.
Dengan teknik ini, semua nilai agregat menggunakan mata uang referensi yang sama, sehingga dapat dijumlahkan untuk menghasilkan total nilai pembelian gabungan, yakni nilai pembelian ringkasan.
Terjemahkan sasaran menjadi kunci
Dengan sasaran dan metrik pengukuran, Anda memiliki sejumlah opsi untuk strategi utama. Mari kita fokus pada dua strategi ini:
- Strategi A: satu struktur kunci terperinci.
- Strategi B: dua struktur utama yang bersifat umum.
Strategi A: satu pohon yang dalam (satu struktur kunci terperinci)
Dalam strategi A, Anda menggunakan satu struktur kunci terperinci, yang mencakup semua dimensi yang Anda perlukan:
![Satu struktur kunci terperinci](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/one-granular-key-structur-85e0f0ef579b3.png?authuser=7&hl=id)
Semua kunci Anda menggunakan struktur ini.
Anda membagi struktur kunci ini menjadi dua jenis kunci untuk mendukung dua sasaran pengukuran.
- Jenis kunci 0: jenis sasaran pengukuran = 0, yang Anda tentukan sebagai jumlah pembelian.
- Jenis kunci 1: jenis sasaran pengukuran = 1, yang Anda tentukan sebagai nilai pembelian.
Laporan ringkasan akan terlihat seperti berikut:
![Strategi: Laporan ringkasan.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/strategy-summary-report-c13d51d0ef5b.png?authuser=7&hl=id)
Anda dapat menganggap strategi A sebagai strategi "satu pohon yang dalam":
- Setiap nilai ringkasan dalam laporan ringkasan dikaitkan dengan semua dimensi yang Anda lacak.
- Anda dapat menggabungkan nilai ringkasan ini di samping setiap dimensi ini, sehingga penggabungan ini dapat sedalam jumlah dimensi yang Anda miliki.
Dengan strategi A, Anda akan menjawab pertanyaan sebagai berikut:
Pertanyaan | Jawaban |
---|---|
Kategori produk mana yang paling bernilai di setiap wilayah? | Jumlahkan jumlah dan nilai pembelian ringkasan yang ada di laporan
ringkasan, di semua kampanye. Opsi ini memberi Anda jumlah dan nilai pembelian per ID Geografis × Kategori produk. Untuk setiap wilayah, bandingkan nilai pembelian dan jumlah berbagai kategori produk. |
Manakah strategi kampanye yang paling efektif di setiap wilayah? | Jumlahkan jumlah dan nilai pembelian ringkasan yang ada di laporan
ringkasan, di semua kategori produk. Opsi ini memberikan jumlah dan nilai pembelian per ID Kampanye × ID Geografis. Untuk setiap wilayah, bandingkan nilai pembelian dan jumlah untuk berbagai kampanye. |
Dengan strategi A, Anda juga dapat langsung menjawab pertanyaan ketiga ini:
"Berapa banyak pendapatan untuk setiap produk yang dihasilkan oleh setiap kampanye saya di setiap wilayah geografis?"
Meskipun nilai ringkasan akan berbeda, Anda dapat menentukan kapan perbedaan nilai yang diukur di antara setiap kampanye bukan disebabkan oleh derau saja. Pelajari cara melakukannya dalam Memahami derau.
Strategi B: dua pohon dangkal (dua struktur kunci kasar)
Dalam strategi B, Anda menggunakan dua struktur kunci umum, masing-masing menyertakan subkumpulan dimensi yang Anda perlukan:
![Struktur kunci 1 dan struktur kunci 2.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/key-structure-1-key-stru-f5313e8766cd6.png?authuser=7&hl=id)
Anda membagi setiap struktur kunci ini menjadi dua jenis kunci untuk mendukung dua sasaran pengukuran.
- Jenis sasaran pengukuran = 0, yang Anda tentukan sebagai jumlah pembelian.
- Jenis sasaran pengukuran = 1, yang Anda putuskan untuk ditentukan sebagai nilai pembelian.
Anda akan memiliki empat jenis kunci:
- Jenis kunci I-0: Struktur kunci I, jumlah pembelian.
- Jenis kunci I-1: Struktur kunci I, nilai pembelian.
- Jenis kunci II-0: Struktur kunci II, jumlah pembelian.
- Jenis kunci II-1: Struktur kunci II, nilai pembelian.
Laporan ringkasan akan terlihat seperti berikut:
![Ringkasan strategi laporan B.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/summary-report-strategy-b-a402cebbf58ca.png?authuser=7&hl=id)
Anda dapat menganggap strategi B sebagai strategi "dua pohon dangkal":
- Nilai ringkasan dalam laporan ringkasan dipetakan ke salah satu dari dua kumpulan kecil dimensi.
- Anda dapat menggabungkan nilai ringkasan ini di samping setiap dimensi dalam kumpulan ini—ini berarti penggabungan ini tidak sedalam opsi A, karena dimensi yang dapat digabungkan menjadi lebih sedikit.
Dengan strategi B, Anda akan menjawab pertanyaan Anda sebagai berikut:
Pertanyaan | Jawaban |
---|---|
Kategori produk mana yang paling bernilai di setiap wilayah? | Mengakses langsung jumlah dan nilai pembelian ringkasan yang ada di laporan ringkasan. |
Manakah strategi kampanye yang paling efektif di setiap wilayah? | Mengakses langsung jumlah dan nilai pembelian ringkasan yang ada di laporan ringkasan. |
Keputusan: Strategi A
Strategi A lebih sederhana; semua data mengikuti struktur kunci yang sama, yang juga berarti Anda hanya memiliki satu struktur kunci untuk dipertahankan.
Namun, dengan strategi A, Anda harus menjumlahkan nilai ringkasan yang diterima dalam laporan ringkasan untuk menjawab sebagian pertanyaan Anda. Setiap nilai ringkasan ini bermasalah. Dengan menjumlahkan data tersebut, Anda juga menjumlahkan derau.
Hal ini tidak berlaku untuk strategi B, karena nilai ringkasan yang ditampilkan dalam laporan ringkasan sudah memberikan informasi yang Anda butuhkan. Artinya, strategi B cenderung akan menghasilkan dampak yang lebih kecil dari derau daripada strategi A.
Bagaimana sebaiknya Anda menentukan strategi yang akan digunakan? Untuk pengiklan atau kampanye lama, Anda dapat mengandalkan data historis untuk menentukan apakah volume konversi lebih cocok untuk strategi A atau strategi B. Namun, untuk pengiklan atau kampanye baru, Anda dapat memutuskan untuk:
- Mengumpulkan data selama sebulan dengan kunci terperinci (Strategi A). Karena Anda memperpanjang durasi pengumpulan data, nilai ringkasan akan lebih tinggi dan derau akan relatif lebih rendah.
- Menilai jumlah konversi dan nilai pembelian mingguan dengan akurasi yang wajar.
Dalam contoh ini, anggaplah jumlah pembelian dan nilai pembelian mingguan cukup tinggi sehingga strategi A akan menghasilkan persentase derau yang Anda anggap dapat diterima untuk kasus penggunaan Anda.
Karena strategi A lebih sederhana dan menghasilkan dampak derau yang tidak memengaruhi kemampuan Anda untuk mengambil keputusan, Anda memutuskan untuk menggunakan strategi A.
Memilih algoritma hashing
Anda memutuskan untuk menggunakan pendekatan berbasis hash untuk membuat kunci. Untuk melakukannya, Anda perlu memilih algoritma {i>hashing <i} untuk mendukung pendekatan tersebut.
Anggaplah Anda telah memilih SHA-256. Anda juga dapat menggunakan algoritma yang lebih sederhana dan kurang aman, seperti MD5.
Di browser: setel kunci dan nilai
Setelah menentukan struktur kunci dan algoritma hashing, Anda siap untuk mendaftarkan kunci dan nilai saat pengguna mengklik atau melihat iklan, lalu melakukan konversi.
Selanjutnya adalah ringkasan header yang akan Anda tetapkan untuk mendaftarkan kunci dan nilai di browser:
![Daftarkan kunci dan nilai untuk tampilan atau klik.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/register-keys-values-a-59763f86a1f19.png?authuser=7&hl=id)
![Daftarkan kunci dan nilai untuk konversi.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/register-keys-values-a-155f081dc7bca.png?authuser=7&hl=id)
Menetapkan bagian kunci sisi sumber
Saat pengguna mengklik atau melihat iklan, tetapkan kunci agregasi di
header Attribution-Reporting-Register-Aggregatable-Source
.
Pada tahap ini, untuk setiap kunci, Anda hanya dapat menetapkan bagian kunci, atau
bagian kunci, yang diketahui pada waktu penayangan iklan.
Mari kita buat bagian utama:
Bagian kunci sisi sumber untuk ID kunci... | String yang berisi nilai dimensi yang ingin Anda tetapkan | Hash string ini sebagai heksadesimal, yang dipangkas menjadi 64 bit pertama (64/4 = 16 karakter1) | Hash heksadesimal dengan tambahan angka nol untuk menyederhanakan XOR-ing. Ini adalah bagian kunci sisi sumber. |
---|---|---|---|
key_purchaseCount |
COUNT, CampaignID=12, GeoID=7 |
0x3cf867903fbb73ec | 0x3cf867903fbb73ec0000000000000000 |
key_purchaseValue |
VALUE, CampaignID=12, GeoID=7 |
0x245265f432f16e73 | 0x245265f432f16e730000000000000000 |
Sekarang mari kita tetapkan bagian penting:
// Upon receiving the request from the publisher site
res.set(
"Attribution-Reporting-Register-Aggregatable-Source",
JSON.stringify([
{
"id": "key_purchaseCount",
"key_piece": "0x3cf867903fbb73ec0000000000000000"
},
{
"id": "key_purchaseValue",
"key_piece": "0x245265f432f16e730000000000000000"
}
])
);
Perhatikan bahwa ID kunci tidak akan muncul dalam laporan akhir. Kunci ini hanya digunakan saat menyetel kunci di browser sehingga bagian kunci sisi sumber dan sisi pemicu dapat dipetakan satu sama lain dan digabungkan menjadi kunci penuh.
Opsional: laporan tingkat peristiwa
Jika Anda perlu menggunakan laporan tingkat peristiwa bersama laporan agregat, pastikan data tingkat peristiwa (ID peristiwa sumber dan data pemicu) dan kunci agregasi dapat dicocokkan.
Anda dapat menggunakan kedua laporan tersebut jika, misalnya, Anda berencana menggunakan laporan tingkat peristiwa untuk menjalankan model mengenai jenis iklan yang cenderung menghasilkan jumlah pembelian terbesar.
Pengguna melakukan konversi
Saat pengguna melakukan konversi, permintaan piksel biasanya dikirim ke server teknologi iklan. Setelah menerima permintaan ini:
- Tetapkan bagian kunci sisi konversi (sisi pemicu) untuk menyelesaikan kunci.
Anda akan menetapkan bagian kunci ini melalui header
Attribution-Reporting-Register-Aggregatable-Trigger-Data
. - Tetapkan nilai agregat untuk konversi tersebut, melalui header
Attribution-Reporting-Register-Aggregatable-Values
.
Tetapkan bagian kunci sisi pemicu untuk menyelesaikan kunci
Mari kita buat bagian utama:
Bagian kunci sisi pemicu untuk ID kunci... | String yang berisi nilai dimensi yang ingin Anda tetapkan | Hash string ini sebagai heksadesimal, yang dipangkas menjadi 64 bit pertama (64/4 = 16 karakter1) | Hash heksadesimal dengan tambahan angka nol untuk simplify XOR-ing. Ini adalah bagian kunci sisi sumber. |
---|---|---|---|
key_purchaseCount |
ProductCategory=25 |
0x1c7ce88c4904bbe2 | 0x0000000000000000f9e491fe37e55a0c |
key_purchaseValue |
(sama) | (sama) | (sama) |
Sekarang mari kita tetapkan bagian penting:
// Upon receiving the pixel request from the advertiser site
res.set(
"Attribution-Reporting-Register-Aggregatable-Trigger-Data",
JSON.stringify([
// Each dictionary independently adds pieces to multiple source keys
{
"key_piece": "0x0000000000000000f9e491fe37e55a0c",
"source_keys": ["key_purchaseCount", "key_purchaseValue"]
},
])
);
Perhatikan cara Anda menambahkan bagian kunci yang sama ke beberapa kunci, dengan mencantumkan beberapa ID kunci di source_keys
—bagian kunci tersebut akan ditambahkan ke kedua kunci.
Menetapkan nilai agregat
Sebelum menetapkan nilai agregat, Anda harus meningkatkan skalanya untuk mengurangi derau.
Anggaplah satu pembelian dilakukan untuk tipe produk 25 seharga $52.
Anda tidak akan menetapkannya secara langsung sebagai nilai agregat:
key_purchaseCount
: 1 konversikey_purchaseValue
: $52
Sebelum mendaftarkan nilai agregat ini, Anda harus menskalakan nilai tersebut untuk meminimalkan derau.
Anda memiliki dua sasaran untuk membelanjakan anggaran kontribusi, sehingga Anda dapat memutuskan untuk membagi anggaran kontribusi menjadi dua.
Dalam hal ini, setiap sasaran dialokasikan maksimum CONTRIBUTION_BUDGET/2
(=65.536/2=32.768).
Anggaplah nilai pembelian maksimum untuk satu pengguna, berdasarkan histori pembelian untuk semua pengguna situs, adalah $1.500. Mungkin ada pencilan, misalnya sangat sedikit pengguna yang membelanjakan uang di atas jumlah tersebut, tetapi Anda dapat memutuskan untuk mengabaikan pencilan ini.
Faktor penskalaan Anda untuk nilai pembelian adalah:
((CONTRIBUTION_BUDGET
/2) / 1.500) = 32.768/1.500 = 21,8 ≈ 22
Faktor penskalaan untuk jumlah pembelian adalah 32.768/1 = 32.768, karena Anda memutuskan untuk melacak maksimal satu pembelian per klik atau penayangan iklan (peristiwa sumber).
Sekarang Anda dapat menetapkan nilai berikut:
key_purchaseCount
: 1 × 32.768 = 32.768key_purchaseValue
: 52 × 22 = 1.144
Dalam praktiknya, Anda akan menetapkannya sebagai berikut, menggunakan header khusus Attribution-Reporting-Register-Aggregatable-Values
:
// Instruct the browser to schedule-send a report
res.set(
"Attribution-Reporting-Register-Aggregatable-Values",
JSON.stringify({
"key_purchaseCount": 32768,
"key_purchaseValue": 1144,
})
);
Laporan agregat dibuat
Browser mencocokkan konversi dengan tampilan atau klik sebelumnya, lalu menghasilkan laporan agregat yang mencakup payload terenkripsi di samping metadata laporan.
Berikut adalah contoh data yang dapat ditemukan dalam payload laporan agregat, jika dapat dibaca di cleartext:
[
{
key: 0x3cf867903fbb73ecf9e491fe37e55a0c, // = source-side key piece XOR conversion-side key piece for the key key_purchaseCount
value: 32768 // the scaled value for 1 conversion, in the context of [CONTRIBUTION_BUDGET/2]
},
{
key: 0x245265f432f16e73f9e491fe37e55a0c, // source-side key piece XOR conversion-side key piece for the key key_purchaseValue
value: 1144 // the scaled value for $52, in the context of [CONTRIBUTION_BUDGET/2]
},
]
Di sini, Anda dapat melihat dua kontribusi terpisah dalam satu laporan agregat.
Meminta laporan ringkasan
- Batch laporan agregat. Ikuti saran yang ditawarkan dalam Pengelompokan.
- Buat kunci yang datanya ingin Anda lihat. Misalnya, untuk melihat data ringkasan
COUNT
(jumlah total pembelian) danVALUE
(total nilai pembelian) untuk ID Kampanye 12 × ID Geografi 7 × Kategori produk 25:- Buat bagian kunci sisi sumber, seperti yang Anda lakukan saat menyetelnya di browser.
- Buat bagian kunci sisi pemicu, seperti yang Anda lakukan saat menyetelnya di browser.
Metrik yang ingin Anda minta1 | Bagian kunci sisi sumber | Bagian kunci sisi pemicu | Kunci untuk meminta ke layanan agregasi2 |
---|---|---|---|
Jumlah total pembelian (COUNT ) |
0x3cf867903fbb73ec 0000000000000000 |
0x00000000000000 00f9e491fe37e55a0c |
0x3cf867903fbb73 ecf9e491fe37e55a0c |
Total nilai pembelian (VALUE ) |
0x245265f432f16e73 0000000000000000 |
0x0000000000000000 f9e491fe37e55a0c |
0x245265f432f16e73 f9e491fe37e55a0c |
- Minta data ringkasan ke layanan agregasi untuk kunci ini.
Menangani laporan ringkasan
Pada akhirnya, Anda akan menerima laporan ringkasan yang mungkin terlihat seperti ini:
[
{"bucket": "00111100111110000110011110010000001111111011101101110011111011001111100111100100100100011111111000110111111001010101101000001100",
"value": "2558500"},
{"bucket": "00100100010100100110010111110100001100101111000101101110011100111111100111100100100100011111111000110111111001010101101000001100",
"value": "687060"},
…
]
Bucket pertama adalah kunci COUNT
dalam biner. Bucket kedua adalah kunci VALUE
dalam biner.
Perlu diketahui bahwa meskipun kunci tersebut bersifat heterogen (COUNT
versus VALUE
), kunci tersebut terdapat
dalam laporan yang sama.
Menurunkan skala nilai
- 2.558.500 mengacu pada jumlah pembelian untuk kunci ini, yang ditingkatkan skalanya berdasarkan faktor penskalaan yang telah dihitung sebelumnya. Faktor penskalaan untuk jumlah pembelian adalah 32.768. Bagi 2.558.500 dengan anggaran kontribusi sasaran: 2.558.500/32.768 = 156,15 pembelian.
- 687.060 → 687.060/22 = $31.230 total nilai pembelian.
Hasilnya, laporan ringkasan memberi Anda insight berikut:
- Dalam jangka waktu pelaporan, kampanye #12 yang berjalan di Eropa mendorong sekitar 156 pembelian (± derau) untuk kategori produk #25.
- Dalam jangka waktu pelaporan, kampanye #12 yang berjalan di Eropa menghasilkan $31.230 pembelian (± derau) untuk kategori produk #25.