Pencocokan cookie

Pada tingkat tinggi, pencocokan cookie adalah proses saat pengiklan atau vendor mengaitkan cookie di domain mereka dengan cookie di domain Google. Dengan mencocokkan cookie ini, Anda dapat menghubungkan data pihak pertama yang Anda miliki dengan data iklan Google (dilacak melalui Display & Video 360 dan Campaign Manager 360) pada pengguna yang sama, sehingga Anda dapat menggabungkan data CRM dan lebih memahami perilaku pengguna. Dengan menggabungkan data ini melalui penggabungan yang berfokus pada privasi, Anda dapat:

  • Menargetkan audiens berdasarkan item tertentu yang diabaikan di keranjang belanja, jika pengguna tersebut telah berinteraksi dengan iklan dan domain Anda.
  • Tentukan iklan yang menghasilkan sesi yang lebih lama di domain Anda.
  • Analisis histori pembelian yang digabungkan ke data pasca-kampanye.

Batasan dan privasi pengguna akhir

Meskipun efektif, pencocokan cookie memiliki beberapa batasan:

  • Gabungan antara tabel *_match dan non-*_match dilarang.
  • Pekerjaan ini memerlukan pekerjaan teknis dari Anda dan Google.
  • Anda kemungkinan tidak dapat mencocokkan semua data iklan Google Anda. Rasio kecocokan bergantung pada sejumlah faktor, dan bervariasi menurut kasus penggunaan dan penyiapan sisi klien. Rasio kecocokan sering kali lebih rendah dari yang diharapkan pengguna. Pengguna hanya memenuhi syarat untuk pencocokan cookie jika mereka telah berinteraksi dengan domain Anda dan iklan Anda.
  • Google akan mulai mengisi tabel pencocokan Anda saat tabel tersebut disiapkan. Bergantung pada frekuensi pengguna mengunjungi situs Anda dan menerima piksel yang cocok, mungkin perlu waktu beberapa bulan sebelum tabel pencocokan berisi data menyeluruh dan stabil tentang pengguna Anda.
  • Anda tidak akan dapat mengaitkan pengguna satu per satu ke beberapa perangkat, kecuali jika Anda memiliki cara untuk menghubungkan pengguna di seluruh perangkat.
  • Anda tidak dapat mencocokkan satu pengguna menggunakan beberapa cookie, seperti yang terjadi saat pengguna menghapus cookie mereka.
  • Tugas yang dijalankan di tabel pencocokan tunduk pada persyaratan agregasi yang sama dengan tugas lain di Ads Data Hub. Tingkat kecocokan yang rendah serta kunjungan yang jarang ke domain Anda dapat menyebabkan kesulitan dalam memperoleh data. Hal ini karena efek gabungan dari tingkat kecocokan dan persyaratan agregasi1.
  • Sesuai dengan kebijakan Google tentang privasi pengguna akhir, Anda:
    • Dilarang mencocokkan data login dan logout pengguna tertentu.
    • Tidak dapat mencocokkan data dengan pengguna yang memilih tidak ikut personalisasi iklan.
  • Untuk peristiwa iOS, Anda hanya dapat mencocokkan data yang berasal dari aplikasi di iOS 14.5+ dari pengguna yang telah memberikan izin berdasarkan framework App Tracking Transparency Apple.

Agar dapat menggunakan data pihak pertama Anda di Ads Data Hub, Anda harus mengonfirmasi bahwa Anda telah memperoleh izin yang tepat untuk membagikan data dari pengguna akhir EEA kepada Google sesuai dengan Kebijakan izin pengguna Uni Eropa dan kebijakan Ads Data Hub. Persyaratan ini berlaku untuk setiap akun Ads Data Hub, dan harus diperbarui setiap kali Anda mengupload data pihak pertama yang baru. Setiap satu pengguna dapat melakukan konfirmasi ini atas nama seluruh akun.

Perhatikan bahwa aturan kueri layanan Google yang sama yang berlaku untuk kueri analisis juga berlaku untuk kueri pencocokan cookie. Misalnya, Anda tidak dapat menjalankan kueri lintas layanan pada pengguna di EEA saat membuat tabel pencocokan.

Untuk mempelajari cara menyetujui izin di Ads Data Hub, lihat Persyaratan izin untuk Wilayah Ekonomi Eropa.

Agar Google dapat mengisi tabel pencocokan, Anda harus menayangkan tag pencocokan di setiap halaman domain tempat Anda ingin mencocokkan data iklan. Lokasi penempatan piksel bergantung pada sasaran iklan. Misalnya, Anda dapat berupaya mencocokkan setiap pengguna yang mengunjungi domain (memerlukan piksel pada hampir semua halaman), atau mencocokkan pengguna yang berkonversi (memerlukan piksel pada halaman konversi). Biasanya, piksel yang lebih luas akan menghasilkan rasio kecocokan yang lebih tinggi.

Tag pencocokan adalah piksel 1x1 transparan, yang berisi ID profil pencocokan cookie dan ID pengguna atau cookie yang dienkode:

<img src="https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm=Q29va2llIG51bWJlciAxIQ" />

Tag pencocokan ini adalah yang memulai komunikasi antara Anda dan layanan pencocokan cookie Google.

Ringkasan langkah demi langkah

  1. Pengguna mengunjungi halaman dengan tag pencocokan.
  2. Tag pencocokan memulai serangkaian pengalihan ke layanan pencocokan Google Marketing Platform, Google Ads, dan YouTube. Permintaan berisi ID atau cookie pengguna tersebut dari situs Anda, ditambah cookie Google di setiap ruang ID layanan yang cocok.
  3. Piksel 1x1 transparan ditampilkan ke browser untuk mengonfirmasi bahwa permintaan telah dipenuhi.

Proses ini ditampilkan dalam diagram berikut:

Gambar yang menggambarkan serangkaian pengalihan antara browser dan layanan
yang cocok

Penyiapan

Proses untuk menyiapkan pencocokan cookie di Ads Data Hub adalah sebagai berikut:

  1. Hubungi perwakilan akun Anda dan sampaikan minat Anda terhadap pencocokan cookie. Mereka akan mendiskusikan sasaran Anda dan memberi Anda informasi lebih lanjut tentang cara men-deploy piksel pelacakan di domain Anda.
  2. Spesialis Ads Data Hub akan memulai percakapan lain untuk membahas persyaratan teknis dan kasus penggunaan.
  3. Saat Anda men-deploy piksel pelacakan dan endpoint error, Google akan membuat tabel pencocokan.

Setelah Anda menyelesaikan langkah-langkah ini, Anda tidak perlu segera melakukan tindakan apa pun. Google akan mengisi tabel pencocokan setiap hari2, jadi Anda harus memberikan cukup waktu untuk berlalu sebelum tabel berisi data yang cukup untuk memberikan pencocokan yang bermakna dan memenuhi persyaratan agregasi. Hal ini bergantung pada frekuensi pengguna mengunjungi situs Anda; situs dengan pengunjung harian akan mencapai titik ini jauh lebih cepat daripada situs dengan pengunjung bulanan. Seiring dengan melambatnya jumlah kecocokan bersih-baru, tabel pencocokan Anda akan berisi data yang lebih komprehensif.

Membuat kueri tabel pencocokan

Jika tabel pencocokan berisi data yang cukup untuk memenuhi pemeriksaan privasi, Anda siap menjalankan kueri terhadap tabel tersebut.

Tabel asli untuk data pihak pertama (1PD) direpresentasikan oleh my_data. Informasi ini mencakup Informasi Identitas Pribadi (PII) dan data non-PII. Menggunakan tabel asli dapat meningkatkan kualitas laporan Anda dengan lebih banyak insight, karena mewakili semua data pihak pertama dalam cakupan, jika dibandingkan dengan tabel _match.

Setiap tabel dalam skema Ads Data Hub yang berisi kolom user_id disertai dengan tabel *_match. Misalnya, untuk tabel adh.google_ads_impressions, Ads Data Hub juga membuat tabel pencocokan bernama adh.google_ads_impressions_match yang berisi ID pengguna Anda. Tabel pencocokan terpisah dibuat untuk tabel yang dipisahkan berdasarkan kebijakan. Misalnya, untuk tabel adh.google_ads_impressions_policy_isolated_youtube, Ads Data Hub juga akan membuat tabel pencocokan yang disebut adh.google_ads_impressions_policy_isolated_youtube_match yang berisi ID pengguna Anda.

Tabel ini berisi subset pengguna yang tersedia di tabel asli, yang memiliki kecocokan pada user_id. Misalnya, jika tabel asli berisi data untuk Pengguna A dan Pengguna B, tetapi hanya Pengguna A yang cocok, Pengguna B tidak akan berada di tabel pencocokan.

Tabel pencocokan berisi kolom tambahan yang disebut external_cookie, yang menyimpan cookie sebagai myactivity.

Sebaiknya pertimbangkan jenis kolom saat menulis kueri Anda. Operator perbandingan SQL mengharapkan bahwa literal yang Anda bandingkan memiliki jenis yang sama. Bergantung pada cara user_id disimpan dalam tabel data pihak pertama, Anda mungkin perlu mengenkode nilai dalam tabel sebelum mencocokkan data. Anda harus mentransmisikan kunci gabungan ke myactivity agar berhasil mendapatkan kecocokan:

JOIN ON
  adh.google_ads_impressions_match.external_cookie = CAST(my_data.user_id AS BYTES)

Selain itu, perbandingan string di SQL sensitif terhadap kapitalisasi, sehingga Anda mungkin perlu mengenkode string di kedua sisi perbandingan untuk memastikan string tersebut dapat dibandingkan secara akurat.

Mengenkode ID pengguna

Mengenkode ID pengguna sisi klien

Untuk memastikan berbagai format ID dapat dikirim dengan aman melalui URL, semua ID harus dienkode Base64 yang aman untuk URL sebelum dikirim. ID yang didekode Base64 yang aman untuk URL akan tersedia di Ads Data Hub di kolom external_cookie, sehingga Anda harus mengurungkan transformasi apa pun yang diterapkan sebelum encoding untuk mendapatkan ID asli.

Jika ID Anda selalu terdiri dari 24 karakter (atau byte) atau kurang, Anda dapat menyertakan ID berenkode Base64 yang aman untuk URL dalam satu piksel, seperti yang ditunjukkan pada contoh 1. Jika ID Anda lebih besar dari 24 karakter (atau byte), maka Anda perlu mengubahnya ke representasi 24 byte atau kurang. Dalam beberapa kasus (seperti GUID di contoh 2), Anda perlu mengonversi ke representasi byte. Dalam kasus lain, Anda mungkin perlu mengirimkan subkumpulan (atau hash) ID Anda kepada Google. Perhatikan bahwa, dalam kasus apa pun, Anda harus memastikan bahwa Anda dapat menulis JOIN SQL yang akan mengonversi ID di tabel pihak pertama dengan cara yang sama.

Contoh 1

Nilai User-ID Anda akan selalu berada di bawah batas panjang 24 byte. Ads Data Hub merekomendasikan agar Anda cukup mengirimkan User-ID langsung ke ADH (setelah mengenkodenya sebagai Base64 yang aman untuk URL untuk tujuan transportasi URL).

var userId = 'abcdef123456789';
// Encode the string (or number) in normal base64.
var userIdBase64 = btoa(userId);

// Ensure that the uploaded user IDs use web-safe Base64 encoding.
userIdBase64 = userIdBase64.replace(/\+/g, '-').replace(/\//g, '_')
    .replace(/=+$/, '');

// After encoding the UUID correctly, you can create the request tag and
// insert it into the DOM.
var imgElement = Document.createElement('img');
imgElement.src =
    'https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm='
    + userIdBase64;
document.body.appendChild(imgElement);
Contoh 2

Anda menetapkan nilai ID unik universal (UUID) sebagai ID pengguna, seperti: 123e4567-e89b-12d3-a456-426655440000.

Ads Data Hub merekomendasikan transformasi berikut saat pencocokan:

  1. UUID diformat sebagai string 36 karakter.
  2. UUID dekode heksadesimal.
  3. UUID diformat sebagai byte.
  4. Byte mengenkode Base64 yang aman untuk URL.
  5. UUID diformat sebagai string.

Hal ini dapat diterapkan dengan kode berikut:

JavaScript

var userId = '123e4567-e89b-12d3-a456-426655440000';

// A helper function for converting a hex string to a byte array.
function strToBytes(str) {
        for (var bytes = [], i = 0; i < str.length; i += 2) {
          bytes.push(parseInt(str.substr(i, 2), 16));
        }
        return bytes;
}

// Remove the formatting dashes from the UUID.
userId = userId.replace(/-/g, '');

// Encode the hex string as a byte array.
var userIdBytes = strToBytes(userId);

// Encode the byte array in normal base64.
var userIdBase64 = btoa(String.fromCharCode(...new Uint8Array(userIdBytes)));

// Ensure that the uploaded user IDs use web-safe Base64 encoding.
userIdBase64 = userIdBase64.replace(/\+/g, '-').replace(/\//g, '_').replace(
    /=+$/, '');

// After encoding the UUID correctly, you can create the request tag and
// insert it into the DOM.
var imgElement = Document.createElement('img');
imgElement.src =
    'https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm='
    + userIdBase64;
document.body.appendChild(imgElement);

Python

import base64

user_id = '123e4567-e89b-12d3-a456-426655440000'
user_id_as_bytes = bytes.fromhex(user_id.replace('-', ''))
base64.urlsafe_b64encode(user_id_as_bytes)

Jika ada kecocokan dengan ID pengguna Google, kolom external_cookie akan berisi ID Anda sebagai nilai byte. Untuk merekonstruksi ID asli Anda, transformasi berikut diperlukan:

  1. external_cookie diformat sebagai byte.
  2. Enkode heksadesimal external_cookie.
  3. external_cookie diformat sebagai string.

Mengenkode ID pengguna di Ads Data Hub

Jika Anda menyimpan string UUID dalam kolom pada data pihak pertama, Anda harus mengonversinya ke byte, seperti pada contoh di atas, agar berhasil menggabungkan data.

Contoh berikut menunjukkan cara mengenkode UUID dan menggabungkannya di kolom cookie eksternal:

JOIN my_data ON imp.external_cookie = FROM_HEX(REPLACE(my_data.uuid, '-', ''))

Perhatikan bahwa Anda tidak dapat mentransmisikan bilangan bulat ke byte. Jika User-ID Anda berupa integer (seperti pada contoh 1 di atas), Anda harus melakukan transmisi sebagai string terlebih dahulu:

JOIN my_data ON imp.external_cookie = CAST(CAST(my_data.user_id AS STRING) AS BYTES)

Ingat bahwa encoding yang diperlukan untuk mencocokkan data akan spesifik terkait cara Anda menyimpannya, dan cara Anda mengenkodenya sebelum mengirimkannya ke Ads Data Hub.

Pelajari lebih lanjut fungsi string di BigQuery SQL.

Contoh kueri

Contoh berikut menggabungkan data pihak pertama dengan google_ads_impressions_match, lalu menggabungkan hasil ini dengan adh_google_ads_impressions di kueri kedua.

SELECT
  imp.campaign_id as campaign_id,
  sum(my_data.recent_orders) as orders,
  average(my_data.lifetime_value) as ltv
FROM
  adh.google_ads_impressions_match as imp
LEFT JOIN
  my_data ON imp.external_cookie = my_data.company_guest_id_bytes
GROUP BY
  campaign_id

Dengan hasil kueri sebelumnya yang disimpan sebagai previous_results, Anda kini dapat bergabung dengan google_ads_impressions. Tindakan ini akan menambahkan data tentang kampanye dengan 0 tayangan iklan ke hasil Anda.

SELECT
  campaign_id,
  COALESCE(orders, 0) as orders,
  COALESCE(ltv, 0) as ltv,
FROM (SELECT DISTINCT campaign_id
   FROM adh.google_ads_impressions)
LEFT JOIN previous_results USING (campaign_id)

  1. Contoh: tingkat kecocokan 20% secara efektif berarti Anda memerlukan 250 pengguna per baris untuk memenuhi nilai minimum gabungan 50 pengguna, karena 50 / 0,2 = 250. 

  2. Kecocokan yang dibuat pada hari tertentu mungkin mengalami penundaan hingga 48 jam sebelum muncul di tabel Anda.