Secara umum, 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 menyertakan data CRM dan lebih memahami perilaku pengguna. Dengan menggabungkan data ini melalui gabungan yang berfokus pada privasi, Anda dapat:
- Menargetkan audiens berdasarkan item tertentu yang ditinggalkan di keranjang belanja, jika pengguna tersebut telah berinteraksi dengan iklan dan domain Anda.
- Menentukan iklan mana yang menyebabkan sesi lebih lama di domain Anda.
- Menganalisis histori pembelian yang digabungkan dengan data pascakampanye.
Batasan dan privasi pengguna akhir
Meskipun canggih, pencocokan cookie memiliki beberapa batasan:
- Penggabungan antara tabel
*_matchdan non-*_matchdilarang. - Pencocokan cookie memerlukan pekerjaan teknik dari Anda dan Google.
- Kemungkinan Anda tidak akan dapat mencocokkan semua data iklan Google Anda. Rasio kecocokan tunduk 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 mulai mengisi tabel kecocokan Anda saat tabel tersebut disiapkan. Bergantung pada frekuensi pengguna mengunjungi situs Anda dan menerima piksel pencocokan Anda, mungkin perlu waktu berbulan-bulan sebelum tabel kecocokan Anda berisi data holistik dan stabil tentang pengguna Anda.
- Anda tidak akan dapat mengaitkan pengguna individual ke beberapa perangkat, kecuali jika Anda memiliki cara untuk menghubungkan pengguna di berbagai perangkat.
- Anda tidak dapat mencocokkan satu pengguna menggunakan beberapa cookie, seperti yang terjadi saat pengguna menghapus cookie mereka.
- Pekerjaan yang dijalankan di tabel kecocokan tunduk pada persyaratan agregasi yang sama dengan pekerjaan lain di Ads Data Hub. Rasio kecocokan yang rendah dikombinasikan dengan kunjungan yang jarang ke domain Anda dapat menyebabkan kesulitan dalam mendapatkan data. Hal ini disebabkan oleh efek gabungan dari rasio kecocokan dan persyaratan agregasi 1.
- Sesuai dengan kebijakan Google tentang privasi pengguna akhir, Anda:
- Dilarang mencocokkan data pengguna yang login dan logout.
- Tidak dapat mencocokkan data dengan pengguna yang telah 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.
Konfirmasi izin pihak pertama
Untuk memastikan Anda dapat menggunakan data pihak pertama di Ads Data Hub, Anda harus mengonfirmasi bahwa Anda telah memperoleh izin yang sesuai 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 baru. Satu pengguna dapat membuat 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 kecocokan.
Untuk mempelajari cara mengonfirmasi izin di Ads Data Hub, lihat Persyaratan izin untuk Wilayah Ekonomi Eropa.
Cara kerja pencocokan cookie
Agar Google dapat mengisi tabel kecocokan Anda, Anda harus menayangkan tag kecocokan di setiap halaman domain Anda tempat Anda ingin mencocokkan data iklan. Tempat Anda menempatkan piksel akan bergantung pada sasaran iklan Anda. Misalnya, Anda mungkin ingin mencoba mencocokkan setiap pengguna yang mengunjungi domain Anda (memerlukan piksel di hampir semua halaman), atau Anda dapat mencocokkan pengguna yang melakukan konversi (memerlukan piksel di halaman konversi). Umumnya, piksel yang lebih luas akan menghasilkan rasio kecocokan yang lebih tinggi.
Tag kecocokan adalah piksel 1x1 transparan, yang berisi ID profil pencocokan cookie Anda dan ID pengguna atau cookie yang dienkode:
<img src="https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm=Q29va2llIG51bWJlciAxIQ" />
Tag kecocokan ini adalah yang memulai komunikasi antara Anda dan layanan pencocokan cookie Google.
Ringkasan langkah demi langkah
- Pengguna mengunjungi halaman dengan tag kecocokan.
- Tag kecocokan 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 pencocokan.
- Piksel 1x1 transparan ditampilkan ke browser untuk mengonfirmasi bahwa permintaan telah dipenuhi.
Proses ini ditampilkan dalam diagram berikut:
Penyiapan
Proses penyiapan pencocokan cookie di Ads Data Hub adalah sebagai berikut:
- Hubungi perwakilan akun Anda dan sampaikan minat Anda dalam pencocokan cookie. Perwakilan akun Anda akan membahas sasaran Anda dan memberi Anda informasi selengkapnya tentang cara men-deploy piksel pelacakan di domain Anda.
- Spesialis Ads Data Hub akan memulai percakapan lain untuk membahas persyaratan teknis dan kasus penggunaan.
- Saat Anda men-deploy piksel pelacakan dan endpoint error, Google akan membuat tabel kecocokan Anda.
Setelah Anda menyelesaikan langkah-langkah ini, Anda tidak perlu melakukan tindakan langsung. Google akan mengisi tabel kecocokan Anda setiap hari2, jadi Anda harus memberi waktu yang cukup sebelum tabel Anda berisi data yang cukup untuk memberikan kecocokan 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. Saat jumlah kecocokan baru bersih melambat, tabel kecocokan Anda akan berisi data yang lebih komprehensif.
Membuat kueri tabel kecocokan
Jika tabel kecocokan Anda 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.
Hal ini mencakup data Informasi Identitas Pribadi (PII) dan non-PII.
Menggunakan tabel asli dapat meningkatkan kualitas laporan Anda dengan lebih banyak insight, karena tabel tersebut merepresentasikan semua data 1PD dalam cakupan, jika dibandingkan dengan tabel kecocokan.
Setiap tabel dalam skema Ads Data Hub yang berisi kolom user_id disertai dengan tabel kecocokan. Misalnya, untuk tabel
adh.google_ads_impressions, Ads Data Hub juga membuat tabel kecocokan
yang disebut adh.google_ads_impressions_match yang berisi ID pengguna Anda.
Tabel kecocokan terpisah dibuat untuk tabel jaringan yang terisolasi kebijakan. Misalnya, untuk tabel adh.google_ads_impressions_policy_isolated_network, Ads
Data Hub juga membuat tabel kecocokan yang disebut
adh.google_ads_impressions_policy_isolated_network_match yang berisi
ID pengguna Anda.
Tabel ini berisi subset pengguna yang tersedia di tabel asli, tempat ada kecocokan di user_id. Misalnya, jika tabel asli berisi data untuk Pengguna A dan Pengguna B, tetapi hanya Pengguna A yang cocok, maka Pengguna B tidak akan ada di tabel kecocokan.
Tabel kecocokan berisi kolom tambahan yang disebut external_cookie, yang menyimpan ID pengguna sebagai BYTES.
Penting untuk mempertimbangkan jenis kolom saat menulis kueri. Operator perbandingan SQL mengharapkan literal yang Anda bandingkan memiliki jenis yang sama. Bergantung pada cara user_id disimpan dalam tabel data pihak pertama Anda, Anda mungkin perlu mengenkode nilai dalam tabel sebelum mencocokkan data.
Anda harus melakukan transmisi kunci gabungan ke BYTES agar kecocokan berhasil:
JOIN ON
adh.google_ads_impressions_match.external_cookie = CAST(my_data.user_id AS BYTES)
Selain itu, perbandingan string di SQL peka terhadap huruf besar/kecil, 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 ditransmisikan 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 yang Anda terapkan sebelum mengenkode untuk mendapatkan ID asli Anda.
Jika ID Anda selalu 24 karakter (atau byte) atau kurang, Anda dapat menyertakan ID yang dienkode Base64 yang aman untuk URL dalam piksel, seperti yang ditunjukkan dalam contoh 1. Jika ID Anda lebih dari 24 karakter (atau byte), Anda harus mengubahnya menjadi representasi yang berukuran 24 byte atau kurang. Dalam beberapa kasus (seperti GUID dalam contoh 2), Anda hanya perlu mengonversi ke representasi byte. Dalam kasus lain, Anda mungkin perlu mengirimkan subset (atau hash) ID Anda ke Google. Perhatikan bahwa, dalam kasus apa pun, Anda harus memastikan bahwa Anda dapat menulis SQL JOIN yang akan mengonversi ID dalam tabel pihak pertama Anda dengan cara yang sama.
Contoh 1
Nilai ID pengguna Anda akan selalu berada di bawah batas panjang 24 byte. Ads Data Hub merekomendasikan agar Anda cukup mengirimkan ID Pengguna Anda langsung ke ADH (setelah mengenkode ID tersebut 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 mencocokkan:
- UUID diformat sebagai string 36 karakter.
- Dekode heksadesimal UUID.
- UUID diformat sebagai byte.
- Enkode Base64 yang aman untuk URL.
- 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:
external_cookiediformat sebagai byte.- Enkode heksadesimal
external_cookie. external_cookiediformat sebagai string.
Mengenkode ID pengguna di Ads Data Hub
Jika Anda menyimpan string UUID di kolom dalam data pihak pertama Anda, Anda harus mengonversinya ke byte, seperti dalam contoh di atas, agar dapat menggabungkan data Anda dengan berhasil.
Contoh berikut menunjukkan cara mengenkode UUID Anda dan menggabungkannya di kolom cookie eksternal:
JOIN my_data ON imp.external_cookie = FROM_HEX(REPLACE(my_data.uuid, '-', ''))
Perhatikan bahwa Anda tidak dapat melakukan transmisi bilangan bulat ke byte. Jika ID pengguna Anda adalah bilangan bulat (seperti dalam 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)
Ingatlah bahwa encoding yang diperlukan untuk mencocokkan data Anda akan spesifik untuk cara Anda menyimpannya, dan cara Anda mengenkode data tersebut sebelum mengirimkannya ke Ads Data Hub.
Pelajari lebih lanjut fungsi string di SQL BigQuery.
Contoh kueri
Contoh berikut menggabungkan data pihak pertama dengan google_ads_impressions_match, lalu menggabungkan hasil ini 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 kini dapat menggabungkan 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)