Memahami kunci agregasi untuk Pelaporan Atribusi

Apa itu 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 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 memverifikasi bahwa hasil ringkasan sudah mendetail dan akurat untuk peristiwa penting ini.

Untuk melakukannya, Anda harus memikirkan pertanyaan yang ingin Anda jawab sebelum data dikumpulkan.

Dimensi, kunci, dan nilai

Untuk menjawab pertanyaan ini, mari kita lihat dimensi, kunci, dan nilai.

Dimensi

Untuk memahami cara kampanye Anda menghasilkan pendapatan, seperti yang dijelaskan di sini, Anda harus melacak dimensi berikut:

  • ID kampanye iklan: ID untuk kampanye tertentu.
  • ID Geografi: wilayah geografis tempat iklan ditayangkan.
  • Kategori produk: jenis produk sebagaimana yang telah Anda tetapkan.

Meskipun dimensi ID Kampanye dan ID Geografi diketahui saat iklan ditayangkan (waktu penayangan iklan), Kategori produk akan diketahui dari peristiwa pemicu, saat pengguna menyelesaikan konversi (waktu konversi).

Dimensi yang ingin Anda lacak untuk contoh ini adalah seperti yang ditunjukkan pada gambar berikut:

ID kampanye, ID geografi, dan kategori produk.
Dimensi yang akan dilacak

Apa yang dimaksud dengan kunci penggabungan (bucket)?

Kunci dan bucket agregasi istilah mengacu pada hal yang sama. Kunci agregasi digunakan di API browser yang digunakan untuk mengonfigurasi laporan. Istilah bucket digunakan dalam laporan agregasi dan ringkasan, serta dalam API layanan agregasi.

Kunci penggabungan (atau disingkat kunci) adalah bagian data yang mewakili nilai dimensi yang dilacak. Data kemudian diagregasikan di sepanjang setiap kunci agregasi.

Misalnya, anggaplah 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 pada gambar berikut:

Kunci agregasi untuk konversi.
Kunci agregasi untuk konversi.

Anda akan melihat nanti bahwa kunci agregasi tidak persis seperti ini dalam praktiknya, tetapi untuk saat ini, mari kita fokus pada informasi yang ada dalam kunci.

Apa yang dimaksud dengan nilai yang dapat diagregasi?

Untuk menjawab pertanyaan Anda terkait dimensi yang telah kami uraikan, Anda perlu mengetahui:

  • Jumlah pembelian (jumlah pembelian). Setelah digabungkan dan tersedia dalam laporan ringkasan, ini akan menjadi total jumlah pembelian (nilai ringkasan).
  • Pendapatan untuk setiap pembelian (nilai pembelian). Setelah digabungkan dan tersedia dalam laporan ringkasan, ini akan menjadi total pendapatan (nilai ringkasan).

Setiap nilai ini—jumlah pembelian untuk satu konversi dan nilai pembelian untuk satu konversi—adalah nilai yang dapat diagregasi. Anda dapat menganggap nilai yang dapat diagregasi sebagai nilai tujuan pengukuran Anda.

Pertanyaan Nilai yang dapat digabungkan = Sasaran pengukuran
Berapa banyak pembelian Jumlah pembelian
Berapa banyak pendapatan Nilai pembelian

Saat pengguna yang berada di ID Geografi 7 melihat iklan untuk ID Kampanye 12, dan kemudian melakukan konversi dengan membeli produk kategori Produk 25 seharga $120 (dengan asumsi mata uang Anda adalah USD), Anda dapat menetapkan kunci agregasi dan nilai yang dapat diagregasi yang terlihat seperti ini:

Kunci dan nilai agregasi.
Kunci agregasi dan nilai yang dapat diagregasi. Perhatikan bahwa nilai yang dapat diagregasi ditampilkan dengan huruf tebal pada latar belakang biru.

Nilai yang dapat diagregasi dijumlahkan per kunci di banyak pengguna untuk menghasilkan insight gabungan, dalam bentuk nilai ringkasan dalam laporan ringkasan.

Membuat insight gabungan.
Membuat insight gabungan.

Nilai yang dapat diagregasi dijumlahkan untuk menghasilkan insight gabungan untuk sasaran pengukuran Anda.

Perhatikan bahwa diagram ini tidak menyertakan dekripsi dan menampilkan contoh sederhana tanpa derau yang diterapkan. Di bagian berikutnya, kita akan menguraikan contoh ini dengan derau.

Dari kunci dan nilai hingga laporan

Sekarang mari kita bahas bagaimana kunci dan nilai yang dapat diagregasi terkait dengan laporan.

Laporan agregat

Saat pengguna mengklik atau melihat iklan dan kemudian melakukan konversi, Anda menginstruksikan browser untuk menyimpan pasangan {kunci agregasi, nilai yang dapat diagregasi}.

Dalam contoh kami, saat pengguna mengklik atau melihat iklan, lalu melakukan konversi, Anda menginstruksikan browser untuk menghasilkan dua kontribusi (satu per sasaran pengukuran).

Membuat dua kontribusi.
Membuat dua kontribusi.

Anda akan melihat nanti bahwa laporan yang dapat diagregasi {kunci agregasi, nilai yang dapat diagregasi} tidak terlihat persis seperti ini—tetapi untuk saat ini, mari kita fokus pada informasi yang ada dalam laporan.

Saat Anda menginstruksikan browser untuk membuat dua kontribusi, browser akan membuat laporan yang dapat diagregasi (jika dapat mencocokkan konversi dengan tampilan atau klik sebelumnya).

Laporan yang dapat digabungkan berisi:

Hasil laporan agregat.
Laporan gabungan yang dihasilkan.

Laporan yang dapat diagregasi diformat dalam JSON dan mencakup, antara lain, kolom payload yang akan digunakan sebagai input data untuk laporan ringkasan akhir.

Payload berisi daftar kontribusi, yang masing-masing merupakan pasangan {kunci agregasi, nilai yang dapat diagregasi}:

  • bucket: kunci agregasi, dienkode sebagai string byte.
  • value: nilai yang dapat diagregasi untuk sasaran pengukuran tersebut, dienkode sebagai string byte.

Berikut contohnya:

{
  "data": [
    {
      "bucket": "111001001",
      "value": "11111010000",
    }
  ],
  "operation": "histogram"
}

Dalam praktiknya, laporan yang dapat diagregasi dienkode sedemikian rupa sehingga bucket dan nilai akan terlihat berbeda dari contoh sebelumnya (yaitu, bucket mungkin terlihat seperti \u0000\u0000\x80\u0000). Bucket dan nilai keduanya adalah string byte.

Laporan ringkasan

Laporan agregat digabungkan di banyak browser dan perangkat (pengguna) sebagai berikut:

  • Teknologi iklan meminta laporan ringkasan untuk sekumpulan kunci tertentu, dan sekumpulan laporan gabungan tertentu yang berasal dari banyak browser (pengguna) yang berbeda.
  • Laporan gabungan didekripsi oleh layanan agregasi.
  • Untuk setiap kunci, nilai yang dapat diagregasi dari laporan agregat dijumlahkan.
  • Derau ditambahkan ke nilai ringkasan.
Laporan gabungan ditambah hasil agregasi, dekripsi, dan derau dalam laporan ringkasan.
Laporan yang dapat digabungkan ditambah agregasi, dekripsi, dan hasil derau menghasilkan laporan ringkasan.

Hasilnya adalah laporan ringkasan yang berisi serangkaian pasangan {kunci agregasi, nilai ringkasan}.

Laporan ringkasan berisi kumpulan pasangan nilai-kunci gaya kamus JSON. Setiap pasangan berisi:

  • bucket: kunci agregasi, dienkode sebagai string byte.
  • value: nilai ringkasan dalam desimal untuk tujuan pengukuran tertentu, yang dijumlahkan dari semua laporan yang dapat digabungkan yang tersedia, dengan tingkat derau tambahan.

Contoh:

[
  {"bucket": "111001001", "value": "2558500"},
  {"bucket": "111101001", "value": "3256211"},
  {...}
]

Dalam praktiknya, laporan ringkasan dienkode sedemikian rupa sehingga bucket dan nilai akan terlihat berbeda dari yang dinyatakan dalam contoh (yaitu, bucket mungkin terlihat seperti \u0000\u0000\x80\u0000). Bucket dan nilai keduanya adalah string byte.

Penerapan kunci agregasi

Kunci agregasi (bucket) ditentukan oleh perusahaan teknologi iklan, biasanya dalam dua langkah: saat iklan diklik atau dilihat, dan saat pengguna melakukan konversi.

Struktur kunci

Kita akan menggunakan istilah struktur kunci untuk menunjukkan kumpulan dimensi yang dienkode ke dalam kunci.

Misalnya, ID Kampanye × GeoID × Kategori produk adalah struktur utama.

Struktur kunci.
Struktur kunci.

Jenis kunci

Nilai yang dapat diagregasi dijumlahkan untuk kunci tertentu di beberapa pengguna/browser. Namun, kami telah melihat bahwa nilai yang dapat diagregasi dapat melacak berbagai sasaran pengukuran, seperti nilai pembelian atau jumlah pembelian. Anda ingin memverifikasi bahwa layanan agregasi akan menjumlahkan nilai yang dapat diagregasi dari jenis yang sama.

Untuk melakukannya, dalam setiap kunci, encoding sepotong data yang memberi tahu Anda apa yang diwakili oleh nilai ringkasan—tujuan pengukuran yang dirujuk oleh kunci ini. Salah satu caranya adalah dengan membuat dimensi tambahan untuk kunci yang mewakili jenis sasaran pengukuran.

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

Jika Anda memiliki n tujuan pengukuran, jenis tujuan 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 nol dan satu dalam biner untuk membuat kunci lengkap. API memungkinkan panjang kunci 128 bit.

Ukuran ini memungkinkan kunci yang sangat terperinci, tetapi kunci yang lebih terperinci lebih cenderung menghasilkan nilai yang lebih berisik. Anda dapat membaca selengkapnya tentang derau di Memahami derau.

Seperti yang diperkenalkan sebelumnya, dimensi dienkode ke dalam kunci agregasi. Setiap dimensi memiliki kardinalitas tertentu—yaitu, jumlah nilai berbeda yang dapat diambil oleh dimensi. Bergantung pada kardinalitasnya, setiap dimensi perlu direpresentasikan oleh sejumlah bit tertentu. Dengan n bit, Anda dapat mengekspresikan 2n opsi berbeda.

Misalnya, dimensi Negara dapat 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 diperlukan.

8 bit akan menyimpan 28 = 256 opsi berbeda yang lebih banyak dari 200 yang diperlukan, sehingga Anda dapat menggunakan n=8 bit untuk mengenkode dimensi ini.

Encoding kunci

Saat Anda menetapkan kunci di browser, kunci tersebut harus dienkode dalam heksadesimal. Dalam laporan ringkasan, kunci akan muncul dalam format biner (dan diberi nama bucket).

Menetapkan dua bagian kunci untuk kunci lengkap

Misalkan 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:

  1. Anda akan menetapkan satu bagian kunci—ID Kampanye × ID Geografi—pada waktu klik atau penayangan.
  2. Anda akan menetapkan bagian kedua kunci—Kategori produk—pada waktu konversi.

Bagian-bagian kunci yang berbeda ini disebut potongan kunci.

Kunci dihitung dengan mengambil OR (v) dari bagian kuncinya.

Menggabungkan bagian utama dengan OR.
Menggabungkan bagian-bagian penting.

Contoh:

  • Bagian kunci sisi sumber = 0x159
  • Bagian kunci sisi pemicu = 0x400
  • Kunci = 0x159 v 0x400 = 0x559

Menyelaraskan bagian penting

Dengan dua potongan kunci 64-bit yang diperluas menjadi 128 bit menggunakan pengisi atau offset 64-bit yang ditempatkan dengan cermat (enam belas nol), operasi OR pada potongan kunci setara dengan menggabungkannya, yang lebih mudah dipahami 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 (klik atau lihat 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.

Meng-encode dimensi ke dalam kunci

Saat meminta laporan ringkasan, Anda harus memberi tahu layanan agregasi metrik yang ingin Anda akses, dengan meminta laporan ringkasan untuk serangkaian kunci agregasi tertentu.

Laporan ringkasan berisi pasangan {kunci, nilai ringkasan} mentah, dan tidak ada informasi tambahan tentang kunci. Hal ini berarti:

  • Saat menetapkan kunci saat pengguna melihat atau mengklik iklan dan kemudian 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 kunci yang sama secara andal dan langsung seperti kunci yang ditetapkan saat pengguna melihat atau mengklik iklan dan melakukan konversi, berdasarkan nilai dimensi yang datanya ingin Anda lihat dalam bentuk gabungan.

Mengodekan dimensi menggunakan peta struktur kunci

Untuk mengenkode dimensi ke dalam kunci, Anda dapat membuat dan mempertahankan peta struktur kunci terlebih dahulu, saat menentukan kunci (sebelum waktu penayangan iklan).

Peta struktur kunci menampilkan setiap dimensi Anda dan posisinya dalam kunci.

Dalam praktiknya, membuat dan memelihara peta struktur kunci berarti Anda harus menerapkan dan memelihara logika dekoder. Jika Anda mencari metode yang tidak mengharuskan Anda melakukannya, pertimbangkan untuk menggunakan pendekatan berbasis hash.

Berikut contohnya:

Misalkan Anda berencana melacak pembelian dan nilai pembelian untuk kampanye, wilayah geografis, dan produk tertentu.

Kategori produk, ID geografi, dan ID kampanye harus menjadi 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. Dengan begitu, Anda dapat menentukan apa yang sebenarnya diwakili oleh nilai yang dapat diagregasi setelah menerima pasangan {kunci, nilai yang dapat diagregasi} 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 yang berbeda: Amerika Utara, Amerika Tengah, Amerika Selatan, Eropa, Afrika, Asia, Karibia, dan Oseania.
  • 16 kampanye yang berbeda.

Berikut jumlah bit yang Anda perlukan untuk mengenkode setiap dimensi dalam kunci:

  • Kategori produk: 5 bit (25 = 32 > 29).
  • Jenis sasaran pengukuran: 1 bit. Tujuan pengukuran adalah jumlah pembelian atau nilai pembelian, yang berarti ada dua kemungkinan berbeda; oleh karena itu, satu bit sudah cukup untuk menyimpan hal ini.
  • ID Geografi: 3 bit (23 = 8). Anda juga akan menentukan peta dimensi untuk ID Geografi agar 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)

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.
Peta struktur kunci.

Urutan dimensi dalam kunci terserah Anda.

Untuk menggambarkan cara dimensi membentuk struktur kunci, kita akan menggunakan representasi biner, itulah sebabnya ID Kampanye (bit pertama) berada di paling kanan, dan kategori produk (bit terakhir) berada di paling kiri.

Dalam setiap dimensi, bit yang paling signifikan—yang membawa nilai numerik terbesar—adalah bit paling kiri. Bit yang paling tidak signifikan—yang membawa nilai numerik terkecil—adalah bit paling kanan.

Mari kita lihat cara 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 didekode menjadi:

`11001 0 011 1100`

Jadi, kunci 0b1100100111100 mewakili jumlah pembelian Kategori produk 25, untuk ID Kampanye 12 yang diluncurkan di Eropa.

Mengodekan dimensi 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:

  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, lakukan hashing pada string ini dan pertimbangkan untuk menambahkan akhiran nol 64-bit untuk menyelaraskannya dengan bagian kunci sisi pemicu dan mempermudah penalaran OR.
    • Bagian kunci sisi sumber
      = <64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
    • Perhatikan bahwa COUNT mengenkode hal yang sama dengan measurementGoalType=0 dalam pendekatan peta struktur kunci. COUNT sedikit lebih ramping dan lebih eksplisit.
  3. Pada waktu konversi, buat string yang menyertakan semua dimensi yang ingin Anda lacak, dan nilainya. Untuk membuat bagian kunci sisi pemicu, buat hash string ini dan tambahkan awalan nol 64-bit:
    • Bagian kunci sisi pemicu = <64-bit 00000000…><64-bit hex hash("productCategory=25")>
  4. Browser akan melakukan operasi OR pada potongan kunci ini untuk menghasilkan kunci.
    • Kunci agregasi 128-bit
      = <64-bit hex source-side key piece hash><64-bit hex source-side key piece hash>
  5. Nanti, saat Anda siap meminta laporan ringkasan untuk kunci ini, buat laporan tersebut secara langsung:
    • 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"))
    • Sama seperti browser, OR potongan kunci ini untuk menghasilkan kunci yang sama dengan yang dihasilkan browser sebelumnya.
      • Kunci agregasi 128-bit
        = <64-bit source-side key piece hash><64-bit source-side key piece hash>

Berikut beberapa tips praktis jika Anda menggunakan pendekatan berbasis hash ini:

  • Selalu gunakan urutan 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 mencapainya adalah dengan mengurutkan dimensi secara alfanumerik. Inilah yang akan kita lakukan dalam contoh, kecuali fakta bahwa kita akan selalu menjadikan COUNT atau VALUE sebagai item pertama dalam dimensi—ini adalah pilihan untuk 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 sebaiknya menghindari pembuatan kunci berdasarkan serangkaian dimensi yang belum pernah Anda gunakan.
  • 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 pengenalan kunci baru yang bertabrakan dengan kunci lama.

Lihat cara menggunakan kunci berbasis hash dalam praktik di contoh satu konversi per klik atau penayangan.

Nilai yang dapat diagregasi dalam praktiknya

Perusahaan teknologi iklan menetapkan nilai yang dapat diagregasi saat pengguna melakukan konversi.

Untuk melindungi privasi pengguna, kontribusi dari setiap pengguna memiliki batas atas. Di semua nilai yang dapat diagregasi yang terkait dengan satu sumber (klik atau penayangan iklan), tidak ada nilai yang dapat lebih tinggi dari batas kontribusi tertentu.

Kami akan menyebut batas ini sebagai CONTRIBUTION_BUDGET. Dalam penjelasan, batas ini disebut anggaran L1, tetapi sama dengan CONTRIBUTION_BUDGET.

Untuk pembahasan mendalam tentang anggaran kontribusi, lihat Anggaran kontribusi untuk laporan ringkasan.

Contoh: satu konversi per klik atau penayangan

Untuk contoh ini, asumsikan bahwa Anda ingin menjawab pertanyaan berikut:

  • Kategori produk mana yang paling berharga di setiap wilayah?
  • Strategi kampanye mana yang paling efektif di setiap wilayah?

Asumsikan juga bahwa untuk kasus penggunaan Anda, Anda memerlukan insight mingguan.

Anda juga perlu melacak hal berikut:

  • 16 kampanye yang 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 memverifikasi bahwa hasil gabungan sudah mendetail dan akurat untuk peristiwa konversi penting ini. Memang, semakin banyak metrik yang Anda ukur, semakin kecil anggaran kontribusi per metrik, dan oleh karena itu, semakin besar kemungkinan setiap nilai akan bervariasi. Oleh karena itu, Anda harus 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 akan mengukur jumlah pembelian dan nilai pembelian, serta mengakses berbagai statistik gabungan penting seperti total nilai pembelian dan perincian geografis. Hal ini mengelola kebisingan secara efektif sekaligus mengonfirmasi metode penskalaan yang mudah untuk anggaran kontribusi Anda.

Bagaimana dengan mata uang?

Menjalankan kampanye di berbagai wilayah berarti mata uang harus diperhitungkan. Anda dapat:

  • Jadikan mata uang sebagai dimensi khusus dalam kunci agregasi.
  • Atau, inferensi mata uang dari ID kampanye, dan konversi semua mata uang ke mata uang referensi.

Dalam contoh ini, kita 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 secara langsung, saat pengguna membeli item.

Dengan teknik ini, semua nilai yang dapat diagregasi berada dalam mata uang referensi yang sama, sehingga dapat dijumlahkan untuk menghasilkan total nilai pembelian yang diagregasi—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 terperinci.
  • Strategi B: dua struktur kunci kasar.

Strategi A: pohon dengan satu tingkat (struktur kunci granular)

Dalam strategi A, Anda menggunakan satu struktur kunci terperinci, yang mencakup semua dimensi yang Anda butuhkan:

Satu struktur kunci terperinci
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 utama 0: jenis sasaran pengukuran = 0, yang Anda putuskan untuk ditetapkan sebagai jumlah pembelian.
  • Jenis utama 1: jenis sasaran pengukuran = 1, yang Anda putuskan untuk ditetapkan sebagai nilai pembelian.

Laporan ringkasan terlihat seperti berikut:

Laporan ringkasan Strategi A.
Laporan ringkasan Strategi A

Anda dapat menganggap strategi A sebagai strategi "pohon satu tingkat":

  • Setiap nilai ringkasan dalam laporan ringkasan dikaitkan dengan semua dimensi yang Anda lacak.
  • Anda dapat menggabungkan nilai ringkasan ini bersama setiap dimensi tersebut, sehingga penggabungan ini dapat dilakukan sedalam jumlah dimensi yang Anda miliki.

Dengan strategi A, Anda akan menjawab pertanyaan Anda sebagai berikut:

Pertanyaan Jawaban
Kategori produk mana yang paling berharga di setiap wilayah? Jumlahkan jumlah dan nilai pembelian ringkasan yang ada dalam laporan ringkasan, di semua kampanye.
Tindakan ini akan memberi Anda jumlah dan nilai pembelian per ID Geografis × Kategori produk.
Untuk setiap wilayah, bandingkan nilai pembelian dan jumlah kategori produk yang berbeda.
Strategi kampanye mana yang paling efektif di setiap wilayah? Jumlahkan jumlah dan nilai pembelian ringkasan yang ada dalam laporan ringkasan, di semua kategori produk.
Hal ini memberi Anda jumlah dan nilai pembelian per ID Kampanye × ID Geo.
Untuk setiap wilayah, bandingkan nilai dan jumlah pembelian 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 terpengaruh oleh derau, Anda dapat menentukan kapan perbedaan nilai yang diukur antara setiap kampanye tidak hanya disebabkan oleh derau. Pelajari cara melakukannya di Memahami kebisingan.

Strategi B: dua pohon dangkal (dua struktur kunci kasar)

Dalam strategi B, Anda menggunakan dua struktur kunci kasar, yang masing-masing mencakup subset dimensi yang Anda butuhkan:

Struktur kunci 1 dan struktur kunci 2.
Struktur kunci 1 dan struktur kunci 2

Anda membagi setiap 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 putuskan untuk ditetapkan 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:

Strategi laporan ringkasan B.
Strategi laporan ringkasan B

Anda dapat menganggap strategi B sebagai strategi "dua pohon dangkal":

  • Nilai ringkasan dalam laporan ringkasan dipetakan ke salah satu dari dua set kecil dimensi.
  • 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 Anda sebagai berikut:

Pertanyaan Jawaban
Kategori produk mana yang paling berharga di setiap wilayah? Akses langsung jumlah dan nilai pembelian ringkasan yang ada dalam laporan ringkasan.
Strategi kampanye mana 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 yang harus dikelola.

Namun, dengan strategi A, Anda perlu menjumlahkan nilai ringkasan yang Anda terima dalam laporan ringkasan untuk menjawab beberapa pertanyaan Anda. Setiap nilai ringkasan ini berisi noise. Dengan menjumlahkan data tersebut, Anda juga menjumlahkan kebisingan.

Hal ini tidak terjadi pada strategi B, yang nilai ringkasannya di laporan ringkasan sudah memberikan informasi yang Anda butuhkan. Artinya, strategi B kemungkinan akan menghasilkan dampak yang lebih kecil dari derau dibandingkan 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, 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 kebisingan 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 perlu 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: menetapkan kunci dan nilai

Setelah memutuskan struktur kunci dan algoritma hashing, Anda siap mendaftarkan kunci dan nilai saat pengguna mengklik atau melihat iklan dan kemudian melakukan konversi.

Berikut adalah ringkasan header yang akan Anda tetapkan untuk mendaftarkan kunci dan nilai di browser:

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

Menetapkan bagian utama 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 potongan kunci, yang diketahui pada waktu penayangan iklan.

Mari kita buat bagian-bagian pentingnya:

Bagian kunci sisi sumber untuk ID kunci… String yang berisi nilai dimensi yang ingin Anda tetapkan Hash string ini sebagai hex, dipangkas ke 64 bit pertama (64/4 = 16 karakter1) Hash hex dengan angka nol yang ditambahkan untuk menyederhanakan OR. 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 tetapkan bagian-bagian penting:

// Upon receiving the request from the publisher site
res.set(
  "Attribution-Reporting-Register-Aggregatable-Source",
  JSON.stringify([
    {
      "id": "key_purchaseCount",
      "key_piece": "0x3cf867903fbb73ec0000000000000000"
    },
    {
      "id": "key_purchaseValue",
      "key_piece": "0x245265f432f16e730000000000000000"
    }
  ])
);

Perhatikan bahwa ID utama tidak akan muncul dalam laporan akhir. Keduanya 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 gabungan, 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 jika, misalnya, Anda berencana menggunakan laporan tingkat peristiwa untuk menjalankan model tentang jenis iklan mana 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 melengkapi kunci. Anda akan menyetel bagian penting ini menggunakan header Attribution-Reporting-Register-Aggregatable-Trigger-Data.
  • Tetapkan nilai yang dapat diagregasi untuk konversi tersebut, menggunakan header Attribution-Reporting-Register-Aggregatable-Values.

Menetapkan potongan kunci sisi pemicu untuk melengkapi kunci

Mari kita buat bagian-bagian pentingnya:

Bagian kunci sisi pemicu untuk ID kunci… String yang berisi nilai dimensi yang ingin Anda tetapkan Hash string ini sebagai hex, dipangkas ke 64 bit pertama (64/4 = 16 karakter1) Hash hex dengan angka nol yang ditambahkan untuk menyederhanakan ORing. Ini adalah bagian kunci sisi sumber.
key_purchaseCount ProductCategory=25 0x1c7ce88c4904bbe2 0x0000000000000000f9e491fe37e55a0c
key_purchaseValue (sama) (sama) (sama)
1Setiap digit heksadesimal mewakili empat bit (digit biner).

Sekarang mari kita tetapkan bagian-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 akan ditambahkan ke kedua kunci.

Menetapkan nilai yang dapat diagregasi

Sebelum menetapkan nilai yang dapat diagregasi, Anda harus menskalakannya untuk mengurangi derau.

Misalkan satu pembelian dilakukan untuk jenis produk 25 sebesar $52.

Anda tidak akan menyetelnya secara langsung sebagai nilai yang dapat diagregasi:

  • key_purchaseCount: 1 konversi
  • key_purchaseValue: $52

Sebagai gantinya, sebelum mendaftarkan nilai yang dapat diagregasi ini, Anda perlu menskalakan nilai tersebut 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).

Misalkan nilai pembelian maksimum untuk satu pengguna, berdasarkan histori pembelian di semua pengguna situs, adalah Rp15.000.000. Mungkin ada pencilan, misalnya sangat sedikit pengguna yang membelanjakan lebih dari jumlah tersebut, tetapi Anda dapat memutuskan untuk mengabaikan pencilan ini.

Faktor penskalaan untuk nilai pembelian Anda 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 paling banyak satu pembelian per klik atau penayangan iklan (peristiwa sumber).

Sekarang Anda dapat menetapkan nilai ini:

  • key_purchaseCount: 1 × 32.768 = 32.768
  • key_purchaseValue: 52 × 22 = 1.144

Dalam praktiknya, Anda akan menyetelnya 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 yang dapat diagregasi dibuat

Browser mencocokkan konversi dengan tampilan atau klik sebelumnya dan membuat laporan yang dapat diagregasi, yang mencakup payload terenkripsi di samping metadata laporan.

Berikut adalah contoh data yang dapat ditemukan dalam payload laporan yang dapat diagregasi, jika dapat dibaca dalam teks biasa:

[
  {
    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 yang dapat diagregasi.

Meminta laporan ringkasan

  • Mengelompokkan laporan agregat. Ikuti saran yang diberikan di Pengelompokan.
  • Buat kunci yang datanya ingin Anda lihat. Misalnya, untuk melihat data ringkasan untuk COUNT (total jumlah pembelian) dan VALUE (total nilai pembelian) untuk ID Kampanye 12 × ID Geografi 7 × Kategori produk 25:
Metrik yang ingin Anda minta1 Bagian kunci sisi sumber Bagian kunci sisi pemicu Kunci untuk permintaan ke layanan agregasi2
Total jumlah pembelian (COUNT) 0x3cf867903fbb73ec
0000000000000000
0x00000000000000
00f9e491fe37e55a0c
0x3cf867903fbb73
ecf9e491fe37e55a0c
Total nilai pembelian (VALUE) 0x245265f432f16e73
0000000000000000
0x0000000000000000
f9e491fe37e55a0c
0x245265f432f16e73
f9e491fe37e55a0c
1Metrik yang ingin Anda minta (untuk ID Kampanye 12 × ID Geografi 7 × Kategori produk 25). 2Kunci untuk permintaan ke layanan agregasi = Bagian kunci sisi sumber OR 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 kuncinya heterogen (COUNT versus VALUE), kunci tersebut ada dalam laporan yang sama.

Perkecil nilai

  • 2.558.500 merujuk pada jumlah pembelian untuk kunci ini, yang ditingkatkan 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.

Dengan demikian, laporan ringkasan memberikan 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.