Memahami kunci agregasi untuk Pelaporan Atribusi

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:

  1. Berapa banyak pembelian dari setiap kategori produk yang dihasilkan oleh setiap kampanye saya di setiap wilayah geografis?
  2. 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:

ID Kampanye, ID Geografi, dan kategori produk.
Dimensi yang akan dilacak

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:

Kunci agregasi untuk konversi.

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:

Kunci dan nilai agregasi.
Kunci agregasi dan nilai agregat. Perlu diketahui, nilai agregat dicetak tebal dengan latar belakang biru.

Nilai agregat dijumlahkan per kunci dari banyak pengguna untuk menghasilkan insight gabungan, dalam bentuk nilai ringkasan dalam laporan ringkasan.

Membuat insight gabungan.

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).

Membuat dua kontribusi.

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:

Hasil 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.
Laporan agregat serta hasil agregasi, dekripsi, dan derau dalam laporan 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.

Struktur kunci.

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.
Sasaran pengukuran dan jenis sasaran pengukuran.

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:

  1. Anda akan menetapkan satu bagian kunci—ID Kampanye x ID Geografi—pada waktu klik atau lihat.
  2. 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.

XORing bagian penting.

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:

Peta struktur kunci.

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
ALT_TEXT_HERE

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:

  1. Pilih algoritma hashing.
  2. 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.
  3. 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")>
  4. 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>
  5. 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"))
    • 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>

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:

Satu struktur kunci terperinci

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:

Laporan ringkasan Strategi.

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:

Struktur kunci 1 dan struktur kunci 2.

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:

Strategi laporan ringkasan B.

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:

Daftarkan kunci dan nilai untuk tampilan atau klik.
Daftarkan kunci dan nilai untuk konversi.

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
1Setiap digit heksadesimal mewakili empat bit (digit biner).

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)
1Setiap digit heksadesimal mewakili empat bit (digit biner).

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 konversi
  • key_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.768
  • key_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:
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
1Metrik yang ingin Anda minta (untuk ID Kampanye 12 x ID Geografi 7 x Kategori Produk 25). 2Kunci untuk meminta ke layanan agregasi = Bagian kunci sisi sumber XOR Bagian kunci sisi pemicu.
  • 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.