Pencocokan cookie

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Pada tingkat tinggi, pencocokan cookie adalah proses yang digunakan pengiklan atau vendor untuk 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 join 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.
  • Menentukan iklan yang mengarah ke sesi yang lebih lama di domain Anda.
  • Menganalisis histori pembelian yang digabungkan dengan data pasca-kampanye.

Batasan dan privasi pengguna akhir

Meskipun canggih, pencocokan cookie memiliki beberapa keterbatasan:

  • Menggabungkan antara tabel *_match dan non-*_match dilarang.
  • Akun ini memerlukan pekerjaan teknis dari Anda dan Google.
  • Anda tidak mungkin dapat mencocokkan semua data iklan Google. Tingkat kecocokan bergantung pada sejumlah faktor, dan bervariasi menurut kasus penggunaan dan penyiapan sisi klien. Rasio kecocokan sering kali lebih rendah daripada yang diharapkan pengguna. Pengguna hanya memenuhi syarat untuk pencocokan cookie jika mereka berinteraksi dengan domain Anda dan iklan Anda.
  • Google mulai mengisi tabel pencocokan Anda saat tabel disiapkan. Bergantung pada frekuensi pengguna mengunjungi situs dan menerima piksel yang cocok, mungkin perlu waktu berbulan-bulan sebelum tabel pencocokan Anda berisi data menyeluruh yang stabil tentang pengguna.
  • Anda tidak akan dapat mengaitkan masing-masing pengguna ke beberapa perangkat, kecuali jika pengguna tersebut login, atau Anda memiliki cara untuk menghubungkan pengguna di seluruh perangkat.
  • Anda tidak dapat mencocokkan satu pengguna menggunakan beberapa cookie, seperti yang akan terjadi saat pengguna menghapus cookie mereka.
  • Pekerjaan yang dijalankan di tabel pencocokan tunduk pada persyaratan agregasi yang sama seperti pekerjaan lain di Ads Data Hub. Tingkat kecocokan yang rendah dan sedikit kunjungan ke domain Anda dapat menyebabkan kesulitan mendapatkan data. Hal ini disebabkan oleh 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 yang digunakan untuk login yang mencakup beberapa akun.
    • Tidak dapat mencocokkan data untuk pengguna yang telah memilih untuk tidak ikut dalam 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 Google mengisi tabel pencocokan, Anda harus menayangkan tag pencocokan pada setiap halaman domain tempat Anda tertarik untuk mencocokkan data iklan. Tempat Anda menempatkan piksel akan bergantung pada sasaran iklan. Misalnya, Anda mungkin ingin mencoba mencocokkan setiap pengguna yang mengunjungi domain Anda (memerlukan piksel di hampir semua halaman), atau Anda dapat mencocokkan pengguna yang berkonversi (memerlukan piksel pada halaman konversi). Umumnya, piksel yang lebih luas akan menghasilkan tingkat kecocokan yang lebih tinggi.

Tag pencocokan adalah piksel transparan 1x1, 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 tersebut 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 terpenuhi.

Proses ini ditampilkan dalam diagram berikut:

Gambar yang menunjukkan 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 pada pencocokan cookie. Sasaran tersebut akan mendiskusikan sasaran Anda dan memberikan informasi lebih lanjut tentang cara menerapkan piksel pelacakan pada 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 Anda.

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

Membuat kueri tabel pencocokan

Setelah tabel pencocokan berisi data yang komprehensif, Anda siap untuk menjalankan kueri terhadap tabel tersebut. Setiap tabel di 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 yang disebut adh.google_ads_impressions_match yang berisi ID pengguna Anda. Tabel ini berisi subkumpulan baris yang tersedia pada tabel awal, yang memiliki kecocokan pada user_id.

Tabel kecocokan berisi kolom tambahan:

  • external_cookie: Cookie Anda, disimpan sebagai byte.

Penting untuk mempertimbangkan jenis kolom saat menulis kueri Anda. Operator perbandingan SQL mengharapkan literal yang Anda bandingkan memiliki jenis yang sama. Karena Anda mungkin tidak menyimpan cookie sebagai byte, Anda mungkin perlu mengenkode data agar perbandingan dapat berfungsi. Selain itu, perbandingan string dalam SQL peka terhadap kapitalisasi, sehingga Anda mungkin perlu mengenkode string pada kedua sisi perbandingan untuk memastikan bahwa string tersebut dapat dibandingkan secara akurat.

Mengenkode ID pengguna

Mengenkode ID pengguna sisi klien

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

Jika ID selalu 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 menjadi representasi 24 byte atau kurang. Dalam beberapa kasus (seperti GUID dalam contoh 2), masalah dalam konversi ke representasi byte. Dalam kasus lain, Anda mungkin perlu mengirim subset (atau hash) ID Anda kepada Google. Perhatikan bahwa, dalam kasus apa pun, Anda harus memastikan bahwa Anda dapat menulis SQL JOIN yang akan mengonversi ID di tabel pihak pertama dengan cara yang sama.

Contoh 1

Nilai User-ID Anda akan selalu di bawah batas panjang 24 byte. Ads Data Hub merekomendasikan agar Anda cukup mengirimkan ID Pengguna langsung ke ADH (setelah mengenkodenya sebagai Base64 yang aman untuk URL untuk tujuan transpor 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 mencocokkan:

  1. UUID diformat sebagai string 36 karakter.
  2. UUID dekode heksadesimal.
  3. UUID diformat sebagai byte.
  4. Byte encoding 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. Encoding heksadesimal external_cookie.
  3. external_cookie diformat sebagai string.

Mengenkode ID pengguna di Ads Data Hub

Jika Anda menyimpan string UUID dalam kolom di 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 pada 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 ID pengguna Anda adalah bilangan bulat (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 agar cocok dengan data akan spesifik untuk cara Anda menyimpannya, dan cara Anda mengenkodenya sebelum mengirimkannya ke Ads Data Hub.

Pelajari fungsi string di BigQuery SQL lebih lanjut.

Contoh kueri

Contoh berikut menggabungkan data pihak pertama dengan google_ads_impressions_match, lalu menggabungkan hasil tersebut dengan adh_google_ads_impressions dalam 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 sekarang dapat bergabung ke google_ads_impressions. Tindakan ini akan menambahkan data pada kampanye dengan 0 tayangan ke hasil Anda.

SELECT
  campaign_id,
  COALESCE(orders, 0) as orders,
  COALESCE(ltv, 0) as ltv,
FROM (SELECT DISTINCT campaign_id
   FROM adhgoogle_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 ambang batas agregasi 50 pengguna, karena 50/0,2 = 250. 

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