Pengertian kunci agregasi, cara penggunaannya 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 banyak 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 tersebut, 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.
- Nomor Geografi: kawasan geografis tempat iklan ditayangkan.
- Kategori produk: jenis produk seperti yang telah Anda tentukan.
Meskipun dimensi ID Kampanye dan ID Geografi diketahui kapan 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 ditampilkan dalam gambar berikut:
Apa yang dimaksud dengan kunci agregasi (bucket)?
Istilah kunci agregasi dan bucket mengacu 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 (singkatan dari kunci) adalah bagian data yang mewakili nilai dimensi yang dilacak. Data kemudian diagregasi bersama setiap kunci agregasi.
Misalnya, asumsikan Anda melacak dimensi Kategori Produk, ID Geografi, dan ID Kampanye.
Jika pengguna yang berada di ID Geografi 7 melihat iklan untuk ID Kampanye 12, kemudian melakukan konversi dengan membeli produk dalam kategori Produk 25, Anda dapat menetapkan kunci agregasi yang terlihat seperti yang ada pada gambar berikut:
Anda akan melihat nanti bahwa kunci agregasi tidak terlihat persis seperti ini dalam praktiknya, tetapi untuk saat ini mari kita fokus pada informasi yang terdapat dalam kunci tersebut.
Apa yang dimaksud dengan nilai agregat?
Untuk menjawab pertanyaan Anda terkait dimensi yang telah kami uraikan, Anda ingin mengetahui:
- Jumlah pembelian (jumlah pembelian). Setelah digabungkan dan tersedia dalam laporan ringkasan, nilai ini akan menjadi jumlah total pembelian (nilai ringkasan).
- Pendapatan untuk setiap pembelian (nilai pembelian). Setelah digabungkan dan tersedia dalam laporan ringkasan, nilai ini akan menjadi total pendapatan (nilai ringkasan).
Masing-masing—jumlah pembelian untuk satu konversi dan nilai pembelian untuk satu konversi—adalah nilai gabungan. Anda dapat menganggap nilai gabungan sebagai nilai sasaran pengukuran.
Pertanyaan | Nilai gabungan = Sasaran pengukuran |
---|---|
Berapa banyak pembelian... | Jumlah pembelian |
Berapa banyak pendapatan... | Nilai pembelian |
Jika pengguna yang berada di ID Geografi 7 melihat iklan untuk ID Kampanye 12, kemudian 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 gabungan yang terlihat seperti berikut:
Nilai agregat dijumlahkan per kunci dari banyak pengguna untuk menghasilkan insight gabungan, dalam bentuk nilai ringkasan dalam laporan ringkasan.
Nilai agregat dijumlahkan untuk menghasilkan insight gabungan untuk sasaran pengukuran Anda.
Perhatikan bahwa diagram ini menghilangkan dekripsi dan mewakili contoh yang disederhanakan tanpa penerapan derau. Di bagian berikutnya, kita akan menguraikan contoh ini dengan noise.
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 memerintahkan browser untuk menyimpan pasangan {aggregation key, aggregatable value}.
Dalam contoh kami, saat pengguna mengklik atau melihat iklan, lalu melakukan konversi, Anda memerintahkan browser untuk membuat dua kontribusi (satu kontribusi per sasaran pengukuran).
Anda akan melihat nanti bahwa laporan gabungan {aggregation key, aggregatable value} tidak terlihat persis seperti ini—tetapi untuk saat ini, mari kita fokus pada informasi yang terdapat dalam laporan tersebut.
Saat Anda menginstruksikan browser untuk membuat dua kontribusi, browser akan menghasilkan laporan gabungan (jika dapat mencocokkan konversi dengan tampilan atau klik sebelumnya).
Laporan gabungan berisi:
- Kontribusi yang telah Anda konfigurasi.
- Metadata tentang peristiwa klik atau tampilan dan peristiwa konversi: situs tempat konversi terjadi, dan lainnya. Lihat semua kolom dalam laporan gabungan.
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 {aggregation key, aggregatable value}:
- bucket: kunci agregasi yang dienkode sebagai bytestring.
- value: nilai gabungan untuk sasaran pengukuran tersebut, 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 (artinya, 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 gabungan tertentu yang berasal dari berbagai browser (pengguna).
- Laporan gabungan didekripsi oleh layanan agregasi.
- Untuk setiap kunci, nilai gabungan dari laporan agregat dijumlahkan.
- Derau ditambahkan ke nilai ringkasan.
Hasilnya adalah laporan ringkasan yang berisi kumpulan pasangan {aggregation key, summary value}.
Laporan ringkasan berisi kumpulan key-value pair bergaya kamus JSON. Setiap pasangan berisi:
- bucket: kunci agregasi yang dienkode sebagai bytestring.
- nilai: nilai ringkasan dalam desimal untuk sasaran pengukuran tertentu, yang dijumlahkan 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.
Kunci agregasi dalam praktik
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 x GeoID x Kategori produk adalah struktur utama.
Jenis kunci
Nilai agregat dijumlahkan untuk kunci tertentu di beberapa pengguna/browser. Namun, kita telah melihat bahwa nilai gabungan dapat melacak sasaran pengukuran yang berbeda-beda, 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 tersebut—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 kami 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.
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—jumlah angka nol dan satu dalam biner untuk membuat kunci lengkap. API memungkinkan panjang kunci adalah 128 bit.
Ukuran ini memungkinkan kunci yang sangat terperinci, tetapi kunci yang lebih terperinci cenderung menghasilkan nilai yang lebih berisik. Anda dapat membaca derau lebih lanjut di Memahami derau.
Seperti yang diperkenalkan sebelumnya, dimensi dienkode ke kunci agregasi. Setiap dimensi memiliki kardinalitas tertentu—yaitu, jumlah nilai berbeda yang dapat diambil dimensi. Bergantung pada kardinalitasnya, setiap dimensi perlu diwakili oleh sejumlah 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 yang berbeda, yang kurang dari 200 yang diperlukan.
8 bit akan menyimpan 28 =256 opsi berbeda yang melebihi 200 yang diperlukan, sehingga Anda dapat menggunakan n=8 bit untuk mengenkode dimensi ini.
Encoding kunci
Saat Anda menyetel kunci di 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 lengkap
Anggaplah Anda menggunakan kunci untuk melacak dimensi berikut:
- ID kampanye
- ID Geografi
- Kategori produk
Meskipun dimensi ID Kampanye dan ID Geografi diketahui kapan iklan ditayangkan (waktu penayangan iklan), kategori produk akan diketahui dari peristiwa pemicu, saat pengguna menyelesaikan konversi (waktu konversi).
Dalam praktiknya, ini berarti Anda akan menetapkan kunci dalam dua langkah:
- Anda akan menetapkan satu bagian kunci—ID Kampanye x ID Geografi—pada waktu klik atau lihat.
- Anda perlu menetapkan bagian kedua dari kunci—Kategori produk—pada waktu konversi.
Bagian-bagian kunci yang berbeda-beda ini disebut bagian kunci.
Kunci dihitung dengan mengambil XOR (^) dari setiap bagian kuncinya.
Contoh:
- Bagian kunci sisi sumber =
0x159
- Bagian kunci sisi pemicu =
0x400
- Kunci =
0x159 ^ 0x400 = 0x559
Menyelaraskan bagian-bagian kunci
Dengan dua potongan kunci 64-bit yang diperluas hingga 128 bit menggunakan pengisi/offset 64-bit yang ditempatkan dengan hati-hati (enam belas nol), potongan kunci XOR-ing setara dengan menyambungkannya, yang lebih mudah untuk dipikirkan 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 x ID Kampanye.
- Kunci lain yang melacak Jenis Materi Iklan x ID Kampanye.
Lihat Strategi B untuk mengetahui contoh lainnya.
Mengenkode dimensi ke dalam kunci
Saat meminta laporan ringkasan, Anda harus memberi tahu layanan agregasi metrik apa yang ingin diakses, dengan meminta laporan ringkasan untuk kumpulan kunci agregasi tertentu.
Laporan ringkasan berisi pasangan {key, summary value} mentah, dan tidak ada informasi tambahan tentang kunci tersebut. Ini berarti:
- Saat menyetel kunci saat pengguna melihat atau mengklik iklan, lalu melakukan konversi, Anda perlu menetapkan kunci dengan 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 ke dalam kunci, Anda dapat membuat dan mengelola peta struktur utama terlebih dahulu, saat menentukan kunci (sebelum waktu penayangan iklan).
Peta struktur kunci mewakili setiap dimensi Anda dan posisinya dalam kunci.
Dalam praktiknya, membuat dan mengelola peta struktur utama berarti Anda harus mengimplementasikan dan mengelola logika decoder. Jika Anda mencari metode yang tidak mengharuskan Anda melakukan hal tersebut, 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 berupa dimensi di kunci Anda. Selain itu, karena Anda ingin melacak dua sasaran pengukuran yang berbeda—jumlah pembelian dan nilai pembelian—Anda harus menambahkan satu dimensi dalam kunci yang melacak jenis kunci. Hal ini memungkinkan Anda menentukan apa yang sebenarnya diwakili oleh nilai gabungan 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 kita asumsikan untuk kasus penggunaan Anda bahwa Anda perlu melacak hal berikut:
- 29 kategori produk yang berbeda.
- 8 wilayah geografis berbeda: Amerika Utara, Amerika Tengah, Amerika Selatan, Eropa, Afrika, Asia, Karibia, dan Oseania.
- 16 kampanye yang berbeda.
Berikut adalah jumlah bit yang Anda perlukan untuk mengenkode setiap dimensi dalam kunci Anda:
- Kategori produk: 5 bit (2^5 = 32 > 29).
- Jenis sasaran pengukuran: 1 bit. Tujuan pengukuran adalah jumlah pembelian atau nilai pembelian, yang berarti dua kemungkinan yang berbeda; oleh karena itu, satu bit sudah cukup untuk menyimpan ini.
ID Geografi: 3 bit (2^3 = 8). Anda juga akan menentukan peta dimensi untuk ID Geografi untuk mengetahui wilayah geografis mana yang diwakili oleh setiap nilai biner. Peta dimensi untuk dimensi ID Geografi 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)
Kunci yang mengikuti struktur ini akan memiliki panjang 13 bit (5 + 1 + 3 + 4).
Untuk contoh ini, peta struktur kunci untuk kunci ini akan terlihat seperti ini:
Anda bebas menentukan urutan dimensi dalam kunci.
Untuk menggambarkan bagaimana dimensi membentuk struktur kunci, kami 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 yang 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 kunci contoh arbitrer, dan asumsikan Anda memiliki cara untuk mengetahui bahwa kunci ini mengikuti peta struktur kunci dalam ilustrasi sebelumnya.
Menurut peta struktur kunci, kunci ini akan didekode menjadi:
11001 0 011 1100
Jadi, kunci 0b1100100111100 mewakili jumlah pembelian kategori Produk 25, untuk ID Kampanye 12 yang diluncurkan di Eropa.
Mengenkode dimensi menggunakan fungsi hash
Daripada menggunakan peta struktur kunci, Anda dapat menggunakan fungsi hashing untuk menghasilkan kunci secara dinamis dengan cara yang konsisten dan andal.
Cara kerjanya adalah sebagai berikut:
- Pilih algoritma hashing.
- Pada waktu penayangan iklan, buat string yang menyertakan semua dimensi yang ingin Anda lacak, dan nilainya. Untuk membuat bagian kunci sisi sumber,
hash string ini dan pertimbangkan untuk menambahkan akhiran angka nol 64-bit untuk menyelaraskannya
dengan bagian kunci sisi pemicu dan membuat XOR lebih mudah untuk dipahami.
- Bagian kunci sisi sumber
= < hash hex 64-bit("COUNT, campaignID=12, geoID=7"))><64-bit 00000000...> - Perhatikan bahwa COUNT mengenkode hal yang sama seperti measurementGoalType=0 dalam pendekatan peta struktur utama. COUNT sedikit lebih ramping dan eksplisit.
- Bagian kunci sisi sumber
- Pada waktu konversi, buat string yang berisi semua dimensi yang ingin dilacak, dan
nilainya. Untuk membuat bagian kunci sisi pemicu, hash string ini dan tambahkan awalan nol 64-bit:
- Bagian kunci sisi pemicu = <64-bit 00000000...>< Hash hex 64-bit("productCategory=25")>
- Browser melakukan XOR bagian-bagian kunci ini untuk membuat kunci.
- Kunci agregasi 128-bit
= <Hash potongan kunci sisi sumber hex 64-bit><hash potongan kunci sisi sumber hex 64-bit>
- Kunci agregasi 128-bit
- Nanti, jika Anda 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
= < hash hex 64-bit("COUNT, campaignID=12, geoID=7"))><64-bit 00000000...> - Bagian kunci sisi pemicu
= <64-bit 00000000...>< Hash hex 64-bit("productCategory=25")> - bagian kunci sisi pemicu = toHex(hash("productCategory=25"))
- Bagian kunci sisi sumber
- Sama seperti browser, lakukan XOR potongan kunci ini untuk menghasilkan kunci yang sama dengan yang telah dibuat browser sebelumnya.
- Kunci agregasi 128-bit
= <hash bagian kunci sisi sumber 64-bit><Hash potongan kunci sisi sumber 64-bit>
- Kunci agregasi 128-bit
- Berdasarkan dimensi yang Anda minati, buat bagian kunci sisi sumber dan sisi pemicu seperti yang Anda lakukan sebelumnya.
Berikut beberapa tips praktis jika Anda menggunakan pendekatan berbasis hash ini:
- Selalu gunakan urutan dimensi yang sama. Dengan begitu, hash Anda dapat dibuat ulang dengan akurat. ("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 untuk fakta bahwa kita akan selalu menjadikan COUNT atau VALUE sebagai item pertama dalam dimensi—ini adalah pilihan keterbacaan, karena COUNT atau VALUE mengenkode informasi yang secara konseptual sedikit berbeda dari semua dimensi lainnya.
- Pantau kumpulan dimensi yang Anda gunakan dalam kunci. Anda ingin menghindari pembuatan kunci berdasarkan kumpulan dimensi yang belum pernah digunakan.
- Tabrakan {i>hash<i} jarang terjadi jika fungsi {i>hash<i} yang sesuai digunakan, tetapi memeriksa {i>hash<i} yang telah digunakan sebelumnya (yang harus disimpan untuk menafsirkan hasil dari layanan agregasi) dapat menghindari masuknya kunci baru yang bertabrakan dengan kunci lama.
Lihat cara menggunakan kunci berbasis hash dalam praktik di satu konversi per klik atau contoh tampilan.
Dalam praktiknya nilai agregat
Perusahaan teknologi iklan menetapkan nilai agregat saat pengguna melakukan konversi.
Untuk melindungi privasi pengguna, kontribusi dari setiap pengguna memiliki batas atas. Di semua nilai gabungan yang dikaitkan dengan satu sumber (klik atau penayangan iklan), tidak ada nilai yang boleh lebih tinggi daripada 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, anggaplah 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, Anda memerlukan insight mingguan.
Anda juga perlu melacak hal berikut:
- 16 kampanye yang berbeda.
- 8 wilayah geografis 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 mendetail dan akurat untuk peristiwa konversi penting ini. Bahkan, makin banyak metrik yang Anda ukur, makin kecil anggaran kontribusi per metrik, dan oleh karena itu, makin besar kemungkinan error yang terjadi pada setiap nilai. Oleh karena itu, Anda perlu memilih apa yang akan diukur.
Dalam contoh ini, kita akan berfokus pada penyiapan kampanye yang hanya mengukur satu konversi per klik atau tampilan: pembelian.
Anda tetap akan mengukur jumlah pembelian dan nilai pembelian, serta mengakses berbagai statistik gabungan yang penting seperti nilai pembelian total dan perincian geografis. Hal ini membuat derau tetap wajar dan memastikan pendekatan penskalaan yang sederhana untuk anggaran kontribusi Anda.
Bagaimana dengan mata uang?
Menjalankan kampanye di berbagai wilayah menunjukkan bahwa mata uang harus diperhitungkan. Anda dapat:
- Jadikan mata uang sebagai dimensi khusus dalam kunci agregasi.
- Atau, tentukan mata uang dari ID kampanye, lalu konversikan semua mata uang ke mata uang referensi.
Pada contoh ini, kami akan mengasumsikan bahwa Anda dapat menyimpulkan mata uang dari ID kampanye. Hal ini memungkinkan Anda 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 item.
Dengan teknik ini, semua nilai gabungan berada dalam mata uang referensi yang sama, sehingga dapat dijumlahkan untuk menghasilkan total nilai pembelian gabungan, yaitu nilai pembelian ringkasan.
Menerjemahkan sasaran menjadi kunci
Dengan sasaran dan metrik pengukuran, Anda memiliki sejumlah opsi untuk strategi utama. Mari kita fokus pada dua strategi berikut:
- Strategi A: satu struktur kunci yang terperinci.
- Strategi B: dua struktur kunci yang umum.
Strategi A: satu deep tree (satu struktur kunci terperinci)
Dalam strategi A, Anda menggunakan satu struktur kunci terperinci yang mencakup semua dimensi yang Anda perlukan:
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 putuskan untuk ditentukan sebagai jumlah pembelian.
- Jenis kunci 1: jenis sasaran pengukuran = 1, yang Anda putuskan untuk ditentukan sebagai nilai pembelian.
Laporan ringkasan terlihat sebagai berikut:
Anda dapat menganggap strategi A sebagai strategi "satu pohon dalam":
- Setiap nilai ringkasan dalam laporan ringkasan dikaitkan dengan semua dimensi yang Anda lacak.
- Anda dapat menggabungkan nilai ringkasan ini di samping setiap dimensi tersebut, 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 dalam laporan
ringkasan, di semua kampanye. Ini menunjukkan jumlah dan nilai pembelian per ID Geografis x Kategori Produk. Untuk setiap wilayah, bandingkan nilai pembelian dan jumlah berbagai kategori produk. |
Manakah strategi kampanye yang paling efektif di setiap wilayah? | Jumlahkan nilai dan jumlah pembelian ringkasan yang ada dalam laporan
ringkasan, di semua kategori produk. Dengan demikian, Anda dapat mengetahui jumlah dan nilai pembelian per ID Kampanye x ID Geografis. Untuk setiap wilayah, bandingkan nilai pembelian dan jumlah untuk kampanye yang berbeda. |
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 memiliki derau, Anda dapat menentukan kapan perbedaan nilai yang diukur di antara setiap kampanye bukan karena 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 subset dimensi yang Anda butuhkan:
Anda membagi masing-masing struktur utama ini menjadi dua jenis utama untuk mendukung dua sasaran pengukuran.
- Jenis sasaran pengukuran = 0, yang Anda putuskan untuk ditentukan sebagai jumlah pembelian.
- Jenis sasaran pengukuran = 1, yang Anda tentukan untuk ditentukan sebagai nilai pembelian.
Anda akan mendapatkan empat jenis utama:
- 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 terlihat sebagai berikut:
Anda dapat menganggap strategi B sebagai strategi "dua pohon dangkal":
- Nilai ringkasan dalam laporan ringkasan memetakan ke salah satu dari dua kumpulan kecil dimensi.
- Anda dapat menggabungkan nilai ringkasan ini di samping setiap dimensi dalam kumpulan ini—ini berarti penggabungan tersebut tidak sedalam di opsi A, karena lebih sedikit dimensi untuk digabungkan.
Dengan strategi B, Anda akan menjawab pertanyaan sebagai berikut:
Pertanyaan | Jawaban |
---|---|
Kategori produk mana yang paling bernilai di setiap wilayah? | Akses langsung jumlah dan nilai pembelian ringkasan yang ada dalam laporan ringkasan. |
Manakah strategi kampanye yang paling efektif di setiap wilayah? | Akses langsung jumlah dan nilai pembelian ringkasan yang ada dalam 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 dikelola.
Namun, dengan strategi A, Anda harus menjumlahkan nilai ringkasan yang diterima dalam laporan ringkasan untuk menjawab beberapa pertanyaan. Masing-masing nilai ringkasan ini berisi noise. Dengan menjumlahkan data tersebut, Anda juga menjumlahkan derau.
Hal ini tidak terjadi dengan strategi B, karena nilai ringkasan yang diekspos dalam laporan ringkasan sudah memberi Anda informasi yang dibutuhkan. Artinya strategi B kemungkinan akan menghasilkan dampak yang lebih rendah dari derau daripada strategi A.
Bagaimana sebaiknya Anda menentukan strategi mana yang akan digunakan? Untuk pengiklan atau kampanye lama, Anda mungkin 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:
- Kumpulkan 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, asumsikan 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 menimbulkan dampak derau yang tidak memengaruhi kemampuan Anda dalam mengambil keputusan, Anda memutuskan untuk menggunakan strategi A.
Pilih algoritma hashing
Anda memutuskan untuk menggunakan pendekatan berbasis hash untuk membuat kunci. Untuk melakukannya, Anda harus memilih algoritma hashing 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: menyetel 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.
Berikutnya adalah ringkasan header yang akan Anda tetapkan untuk mendaftarkan kunci dan nilai di browser:
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-bagian penting:
Bagian kunci sisi sumber untuk ID kunci... | String 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 angka nol ditambahkan 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 atur bagian-bagian pentingnya:
// 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 lengkap.
Opsional: laporan tingkat peristiwa
Jika Anda perlu menggunakan laporan tingkat peristiwa bersama laporan agregat, pastikan bahwa untuk sumber tertentu, data tingkat peristiwa (ID peristiwa sumber dan data pemicu) dan kunci agregasi dapat dicocokkan.
Anda dapat menggunakan kedua laporan tersebut, misalnya, jika berencana menggunakan laporan tingkat peristiwa untuk menjalankan model tentang 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-bagian penting ini melalui header
Attribution-Reporting-Register-Aggregatable-Trigger-Data
. - Tetapkan nilai agregat untuk konversi tersebut, melalui header
Attribution-Reporting-Register-Aggregatable-Values
.
Menetapkan bagian kunci sisi pemicu untuk menyelesaikan kunci
Mari kita buat bagian-bagian penting:
Bagian kunci sisi pemicu untuk ID kunci... | String berisi nilai dimensi yang ingin Anda tetapkan | Hash string ini dalam bentuk heksadesimal, yang dipangkas menjadi 64 bit pertama (64/4 = 16 karakter1) | Hash hex dengan angka nol yang ditambahkan untuk simplify XOR-ing. Ini adalah bagian kunci sisi sumber. |
---|---|---|---|
key_purchaseCount | KategoriProduk=25 | 0x1c7ce88c4904bbe2 | 0x0000000000000000f9e491fe37e55a0c |
key_purchaseValue | (sama) | (sama) | (sama) |
Sekarang mari kita atur bagian-bagian pentingnya:
// 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 gabungan
Sebelum menetapkan nilai agregat, Anda perlu 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
: Rp520.000
Sebagai gantinya, sebelum mendaftarkan nilai agregat ini, Anda harus menskalakannya untuk meminimalkan derau.
Anda memiliki dua sasaran untuk membelanjakan anggaran kontribusi, jadi 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 di semua pengguna situs, adalah $1.500. Mungkin ada pencilan, misalnya sangat sedikit pengguna yang membelanjakan lebih dari jumlah tersebut, tetapi Anda mungkin memutuskan untuk mengabaikan pencilan ini.
Faktor penskalaan Anda untuk nilai pembelian seharusnya:
((CONTRIBUTION_BUDGET
/2) / 1.500) = 32.768/1.500 = 21,8~ 22
Faktor penskalaan Anda untuk jumlah pembelian adalah 32.768/1 = 32.768, karena Anda memutuskan untuk melacak maksimal satu pembelian per klik iklan atau penayangan (peristiwa sumber).
Sekarang Anda dapat menetapkan nilai-nilai ini:
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 gabungan dibuat
Browser mencocokkan konversi dengan tampilan atau klik sebelumnya dan menghasilkan laporan gabungan, yang menyertakan payload terenkripsi di samping metadata laporan.
Berikut contoh data yang dapat ditemukan dalam payload laporan agregat, jika dapat dibaca dalam 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
- Mengelompokkan laporan agregat. Ikuti saran yang ditawarkan dalam Pengelompokan.
- Buat kunci yang datanya ingin Anda lihat. Misalnya, untuk melihat data ringkasan
untuk COUNT (jumlah total pembelian) dan VALUE (total nilai pembelian)
untuk ID Kampanye 12 x ID Geografi 7 x 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 layanan agregasi2 |
---|---|---|---|
Total jumlah pembelian (COUNT) | 0x3cf867903fbb73ec 0000000000000000 |
0x00000000000000 00f9e491fe37e55a0c |
0x3cf867903fbb73 ecf9e491fe37e55a0c |
Nilai pembelian total (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. Perhatikan bahwa meskipun kunci bersifat heterogen (COUNT vs VALUE), kunci tersebut berada pada laporan yang sama.
Menurunkan skala nilai
- 2.558.500 mengacu pada jumlah pembelian untuk kunci ini, yang ditingkatkan skalanya berdasarkan faktor penskalaan yang telah Anda hitung sebelumnya. Faktor penskalaan untuk jumlah pembelian adalah 32.768. Bagilah 2.558.500 dengan anggaran kontribusi sasaran: 2.558.500/32.768 = 156,15 pembelian.
- 687.060 → 687.060/22 = total nilai pembelian sebesar $31.230.
Oleh karena itu, laporan ringkasan memberi Anda insight berikut:
Within the reporting time period, campaign #12
run in Europe drove about 156 purchases (± noise)
for the product category #25.
Within the reporting time period, campaign #12
run in Europe drove $31,230 of purchases (± noise)
for the product category #25.