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 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 ringkasannya mendetail dan akurat untuk peristiwa penting ini.
Untuk melakukannya, Anda harus memikirkan pertanyaan yang ingin dijawab sebelum data dikumpulkan.
Dimensi, kunci, dan nilai
Untuk menjawab pertanyaan ini, mari kita lihat dimensi, kunci, dan nilai.
Dimensi
Untuk memahami cara kampanye menghasilkan pendapatan, seperti yang dijelaskan di sini, Anda sebaiknya melacak dimensi berikut:
- ID kampanye iklan: ID untuk kampanye tertentu.
- ID Geografi: wilayah geografis tempat iklan ditayangkan.
- Kategori produk: jenis produk seperti yang Anda tentukan.
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:
Apa itu 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 (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:
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.
Apa itu 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 total jumlah 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 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 |
Saat pengguna yang berada di ID Geografi 7 melihat iklan untuk ID Kampanye 12, lalu melakukan konversi dengan membeli produk dari Kategori produk 25 seharga $120 (dengan asumsi mata uang Anda adalah USD), Anda dapat menetapkan kunci agregasi dan nilai agregat yang terlihat seperti ini:
Nilai gabungan dijumlahkan per kunci di banyak pengguna untuk menghasilkan insight gabungan, dalam bentuk nilai ringkasan dalam laporan ringkasan.
Nilai yang dapat digabungkan dijumlahkan untuk menghasilkan insight gabungan bagi 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 ke 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).
Nanti Anda akan melihat bahwa laporan agregat {aggregation key, aggregatable value} tidak terlihat persis seperti ini—tetapi untuk saat ini, 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 gabungan 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 gabungan.
Laporan gabungan diformat dalam 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, yang 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.
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, 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 dalam kunci.
Misalnya, ID Kampanye × GeoID × Kategori produk adalah struktur utama.
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.
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 berbeda yang dapat diambil dimensi. Bergantung pada kardinalitas, setiap dimensi harus direpresentasikan 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 berbeda, yang kurang dari 200 yang dibutuhkan.
8 bit akan menyimpan 28 = 256 opsi berbeda yang lebih dari 200 yang diperlukan, 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, ini berarti Anda akan menetapkan kunci dalam dua langkah:
- Anda akan menetapkan satu bagian kunci—ID Kampanye × ID Geografi—pada waktu klik atau penayangan.
- Anda perlu menetapkan bagian kedua dari kunci—Kategori produk—saat konversi.
Bagian kunci yang berbeda ini disebut bagian kunci.
Kunci dihitung dengan mengambil OR (v
) dari bagian kuncinya.
Contoh:
- Bagian kunci sisi sumber =
0x159
- Bagian kunci sisi pemicu =
0x400
- Kunci =
0x159 v 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 angka nol), potongan kunci OR-ing setara dengan menggabungkannya, yang lebih mudah untuk digunakan dan diverifikasi:
- Bagian kunci sisi sumber =
0xa7e297e7c8c8d0540000000000000000
- Bagian kunci sisi pemicu =
0x0000000000000000674fbe308a597271
- Kunci =
0xa7e297e7c8c8d0540000000000000000 v 0x0000000000000000674fbe308a597271 = 0xa7e297e7c8c8d054674fbe308a597271
Beberapa kunci per klik atau penayangan iklan
Dalam praktiknya, Anda dapat menetapkan beberapa kunci per peristiwa sumber atribusi (tampilan atau klik iklan). 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 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. Hal ini berarti:
- Saat menetapkan kunci saat pengguna melihat atau mengklik iklan, lalu melakukan konversi, Anda harus 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.
Mengenkode dimensi menggunakan peta struktur kunci
Untuk mengenkode dimensi ke dalam 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 memelihara 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 berupa 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 yang melacak jenis kunci. Hal 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 yang berbeda.
Berikut jumlah bit yang diperlukan untuk mengenkode setiap dimensi dalam kunci Anda:
- Kategori produk: 5 bit (25 = 32 > 29).
- Jenis sasaran pengukuran: 1 bit. Sasaran pengukuran adalah jumlah pembelian atau nilai pembelian, yang berarti dua kemungkinan berbeda; oleh karena itu, satu bit sudah cukup untuk menyimpannya.
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:
Anda bebas menentukan urutan dimensi dalam kunci.
Untuk mengilustrasikan cara dimensi membentuk struktur kunci, kita akan menggunakan representasi biner, itulah sebabnya ID Kampanye (bit pertama) adalah bit paling kanan, dan kategori produk (bit terakhir) adalah bit paling kiri.
Dalam setiap dimensi, bit 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 menggunakan peta struktur kunci untuk mendekode kunci.
Mari kita ambil 0b1100100111100 sebagai contoh kunci 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 mendekode menjadi:
`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 sebagai berikut:
- Pilih algoritma hashing.
- 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 OR lebih mudah untuk dipertimbangkan.
- Bagian kunci sisi sumber
=<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
- Perhatikan bahwa
COUNT
mengenkode hal yang sama denganmeasurementGoalType=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, dan 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 OR menggunakan bagian-bagian penting 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
- Kemudian, 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, ATAU potongan kunci ini akan menghasilkan kunci yang sama dengan yang telah dihasilkan 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 pengurutan dimensi yang sama. Hal ini memastikan bahwa hash Anda dapat dibuat ulang dengan andal. (
"COUNT, CampaignID=12, GeoID=7"
tidak akan menghasilkan hash yang sama dengan"COUNT, GeoID=7, CampaignID=12"
). Salah satu cara mudah untuk melakukannya adalah dengan mengurutkan dimensi secara alfanumerik. Hal ini yang akan kita lakukan dalam contoh, kecuali fakta bahwa kita akan selalu menjadikanCOUNT
atauVALUE
sebagai 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 digunakan sebelumnya (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 praktiknya di contoh satu konversi per klik atau penayangan.
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 Anda ingin menjawab pertanyaan berikut:
- Kategori produk mana yang paling bernilai di setiap wilayah?
- Strategi kampanye mana 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 mendetail dan akurat untuk peristiwa konversi penting ini. Bahkan, makin banyak metrik yang Anda ukur, makin kecil anggaran kontribusi Anda per metrik, dan oleh karena itu, makin besar kemungkinan munculnya setiap nilai. Oleh karena itu, Anda perlu memilih dengan cermat apa yang akan diukur.
Dalam contoh ini, kita akan berfokus pada penyiapan kampanye yang hanya mengukur satu konversi per klik atau penayangan: 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 wajar 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 kunci kasar.
Strategi A: satu hierarki mendalam (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 menentukan sebagai jumlah pembelian.
- Jenis kunci 1: jenis sasaran pengukuran = 1, yang Anda tentukan sebagai nilai pembelian.
Laporan ringkasan terlihat seperti berikut:
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? | Menjumlahkan jumlah dan nilai pembelian ringkasan yang ada dalam laporan ringkasan di seluruh kampanye. Opsi ini memberi Anda jumlah dan nilai pembelian per ID Geografis × Kategori produk. Untuk setiap wilayah, bandingkan nilai pembelian dan jumlah kategori produk yang berbeda. |
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 memberi Anda 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 berisi derau, Anda dapat menentukan kapan perbedaan nilai yang diukur antara setiap kampanye bukan hanya karena derau. Pelajari cara melakukannya di Memahami derau.
Strategi B: dua hierarki dangkal (dua struktur kunci kasar)
Dalam strategi B, Anda menggunakan dua struktur kunci kasar, yang masing-masing menyertakan subset dimensi yang Anda perlukan:
Anda membagi setiap struktur utama ini menjadi dua jenis utama untuk mendukung dua sasaran pengukuran.
- Jenis sasaran pengukuran = 0, yang Anda tentukan sebagai jumlah pembelian.
- Jenis sasaran pengukuran = 1, yang Anda tentukan sebagai nilai pembelian.
Anda akan mendapatkan 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 terlihat seperti berikut:
Anda dapat menganggap strategi B sebagai strategi "dua hierarki dangkal":
- Nilai ringkasan dalam laporan ringkasan dipetakan ke salah satu dari dua kumpulan dimensi kecil.
- Anda dapat menggabungkan nilai ringkasan ini bersama setiap dimensi dalam set ini—artinya penggabungan ini tidak sedalam opsi A, karena ada lebih sedikit dimensi yang akan digabungkan.
Dengan strategi B, Anda akan menjawab pertanyaan 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? | 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 sebagian pertanyaan Anda. Masing-masing nilai ringkasan ini berisik. 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 cara menentukan strategi yang akan digunakan? Untuk pengiklan atau kampanye yang sudah ada, 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:
- 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, mari kita asumsikan bahwa 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 membuat 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: menetapkan 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.
Berikut 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 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 OR-ing. Hash ini adalah bagian kunci sisi sumber. |
---|---|---|---|
key_purchaseCount |
COUNT, CampaignID=12, GeoID=7 |
0x3cf867903fbb73ec | 0x3cf867903fbb73ec000000000000000 |
key_purchaseValue |
VALUE, CampaignID=12, GeoID=7 |
0x245265f432f16e73 | 0x245265f432f16e730000000000000000 |
Sekarang, mari kita tetapkan bagian-bagian utamanya:
// 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 menetapkan 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 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 tentang jenis iklan yang cenderung menghasilkan jumlah pembelian terbanyak.
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
.
Menetapkan potongan kunci sisi pemicu untuk menyelesaikan kunci
Mari kita buat bagian-bagian penting:
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 nol yang ditambahkan untuk menyederhanakan operasi OR. 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 perlu menskalakannya untuk mengurangi derau.
Anggaplah satu pembelian dilakukan untuk jenis 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 outlier, misalnya sangat sedikit pengguna yang membelanjakan lebih dari jumlah tersebut, tetapi Anda dapat memutuskan untuk mengabaikan outlier 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 penayangan atau klik sebelumnya dan membuat laporan gabungan, yang menyertakan 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 OR 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 OR 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 di 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 |
---|---|---|---|
Total jumlah 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.
Perhatikan bahwa meskipun kunci bersifat heterogen (COUNT
versus VALUE
), kunci tersebut terdapat
dalam laporan yang sama.
Perkecil skala nilai
- 2.558.500 mengacu pada jumlah pembelian untuk kunci ini, yang diskalakan dengan faktor penskalaan yang 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:
- Within the reporting time period, campaign #12
run in Europe drove about 156 purchases (± noise)
for the product category #25
```
```text
- Within the reporting time period, campaign #12
run in Europe drove $31,230 of purchases (± noise)
for the product category #25.