Ở cấp độ cao, hoạt động so khớp cookie là quy trình mà theo đó, nhà quảng cáo hoặc nhà cung cấp liên kết cookie trong miền của họ với cookie trong miền của Google. Việc so khớp các cookie này cho phép bạn kết nối dữ liệu của bên thứ nhất mà bạn sở hữu với dữ liệu quảng cáo của Google (được theo dõi thông qua Display & Video 360 và Campaign Manager 360) trên cùng một người dùng đó, cho phép bạn kết hợp dữ liệu CRM và hiểu rõ hơn về hành vi của người dùng. Bằng cách kết hợp dữ liệu này thông qua các phép kết hợp đảm bảo quyền riêng tư, bạn có thể:
- Nhắm đến đối tượng dựa trên các mặt hàng cụ thể bị bỏ qua trong giỏ hàng, nếu những người dùng đó đã tương tác với quảng cáo và miền của bạn.
- Xác định những quảng cáo dẫn đến các phiên hoạt động dài hơn trên miền của bạn.
- Phân tích nhật ký mua hàng được kết hợp với dữ liệu sau chiến dịch.
Các hạn chế và quyền riêng tư của người dùng cuối
Mặc dù mạnh mẽ, nhưng tính năng so khớp cookie vẫn có một số hạn chế:
- Bạn không được kết hợp giữa các bảng
*_match
và bảng không phải*_match
. - Bạn và Google đều phải thực hiện công việc kỹ thuật.
- Bạn khó có thể so khớp tất cả dữ liệu quảng cáo của mình trên Google. Tỷ lệ trùng khớp phụ thuộc vào một số yếu tố và thay đổi theo trường hợp sử dụng cũng như chế độ thiết lập phía máy khách. Tỷ lệ khớp thường thấp hơn so với dự kiến của người dùng. Người dùng chỉ đủ điều kiện để so khớp cookie nếu họ đã tương tác với miền của bạn và quảng cáo của bạn.
- Google bắt đầu điền dữ liệu vào các bảng so khớp khi bạn thiết lập các bảng này. Tuỳ thuộc vào tần suất người dùng truy cập vào trang web của bạn và nhận được pixel khớp, có thể mất nhiều tháng trước khi bảng khớp chứa dữ liệu toàn diện, ổn định về người dùng của bạn.
- Bạn sẽ không thể liên kết từng người dùng với nhiều thiết bị, trừ phi bạn có cách kết nối người dùng trên các thiết bị.
- Bạn không thể so khớp một người dùng bằng nhiều cookie, như trường hợp người dùng xoá cookie.
- Những công việc chạy trên bảng so khớp phải tuân theo cùng một yêu cầu về việc tổng hợp như những công việc khác trong Ads Data Hub. Tỷ lệ khớp thấp kết hợp với tần suất truy cập không thường xuyên vào miền của bạn có thể dẫn đến khó khăn trong việc thu thập dữ liệu. Điều này là do tác động kết hợp của tỷ lệ khớp và các yêu cầu về việc tổng hợp 1.
- Theo chính sách của Google về quyền riêng tư của người dùng cuối, bạn:
- Không được phép so khớp dữ liệu đã đăng nhập và đã đăng xuất của một người dùng nhất định.
- Không thể so khớp dữ liệu với những người dùng đã chọn không sử dụng tính năng cá nhân hoá quảng cáo.
- Đối với các sự kiện trên iOS, bạn chỉ có thể so khớp dữ liệu bắt nguồn từ các ứng dụng trên iOS 14.5 trở lên của những người dùng đã cấp quyền theo khuôn khổ Minh bạch về việc theo dõi ứng dụng của Apple.
Xác nhận sự đồng ý của bên thứ nhất
Để đảm bảo có thể sử dụng dữ liệu của bên thứ nhất trong Ads Data Hub, bạn phải xác nhận rằng bạn đã nhận được sự đồng ý hợp lệ để chia sẻ dữ liệu của người dùng cuối ở Khu vực kinh tế Châu Âu (EEA) với Google theo Chính sách về sự đồng ý của người dùng ở Liên minh Châu Âu và Chính sách về Ads Data Hub. Yêu cầu này áp dụng cho từng tài khoản Ads Data Hub và bạn phải cập nhật yêu cầu này mỗi khi tải dữ liệu mới của bên thứ nhất lên. Bất kỳ người dùng nào cũng có thể thay mặt toàn bộ tài khoản đưa ra lời xác nhận này.
Xin lưu ý rằng các quy tắc truy vấn dịch vụ của Google áp dụng cho truy vấn phân tích cũng áp dụng cho truy vấn so khớp cookie. Ví dụ: bạn không thể chạy các truy vấn trên nhiều dịch vụ đối với người dùng ở EEA khi tạo bảng khớp.
Để tìm hiểu cách xác nhận sự đồng ý trong Ads Data Hub, hãy xem bài viết Yêu cầu về sự đồng ý đối với Khu vực kinh tế Châu Âu.
Cách hoạt động của tính năng so khớp cookie
Để Google điền sẵn thông tin vào các bảng so khớp, bạn phải phân phát một thẻ so khớp trên mọi trang trong miền mà bạn muốn so khớp dữ liệu quảng cáo. Vị trí đặt pixel sẽ tuỳ thuộc vào mục tiêu quảng cáo của bạn. Ví dụ: bạn có thể muốn cố gắng so khớp mọi người dùng truy cập vào miền của bạn (yêu cầu pixel trên hầu hết các trang) hoặc bạn có thể so khớp những người dùng chuyển đổi (yêu cầu pixel trên trang chuyển đổi). Nhìn chung, một pixel được triển khai rộng rãi hơn sẽ dẫn đến tỷ lệ trùng khớp cao hơn.
Thẻ so khớp là một pixel trong suốt có kích thước 1x1, chứa mã nhận dạng hồ sơ so khớp cookie và mã nhận dạng người dùng hoặc cookie được mã hoá:
<img src="https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm=Q29va2llIG51bWJlciAxIQ" />
Thẻ so khớp này là thẻ khởi tạo quá trình giao tiếp giữa bạn và các dịch vụ so khớp cookie của Google.
Tổng quan từng bước
- Người dùng truy cập vào một trang có thẻ so khớp.
- Thẻ so khớp sẽ bắt đầu một loạt các lệnh chuyển hướng đến Google Marketing Platform, Google Ads và các dịch vụ so khớp của YouTube. Các yêu cầu này chứa mã nhận dạng hoặc cookie của người dùng đó trên trang web của bạn, cộng với cookie của Google trong từng khoảng nhận dạng của dịch vụ so khớp.
- Một pixel 1x1 trong suốt sẽ được trả về trình duyệt để xác nhận rằng yêu cầu đã được thực hiện.
Quy trình này được minh hoạ trong sơ đồ sau:
Thiết lập
Quy trình thiết lập tính năng so khớp cookie trong Ads Data Hub như sau:
- Hãy liên hệ với người đại diện tài khoản của bạn và cho họ biết rằng bạn quan tâm đến tính năng so khớp cookie. Họ sẽ thảo luận về mục tiêu của bạn và cung cấp thêm thông tin về việc triển khai pixel theo dõi trên miền của bạn.
- Các chuyên gia của Ads Data Hub sẽ bắt đầu một cuộc trò chuyện khác để thảo luận về các yêu cầu kỹ thuật và trường hợp sử dụng.
- Trong khi bạn triển khai pixel theo dõi và điểm cuối lỗi, Google sẽ tạo các bảng so khớp.
Sau khi hoàn tất các bước này, bạn không cần làm gì ngay lập tức. Google sẽ điền sẵn dữ liệu vào các bảng khớp hằng ngày2, vì vậy, bạn cần chờ đủ thời gian để bảng của bạn có đủ dữ liệu nhằm cung cấp các kết quả khớp có ý nghĩa và đáp ứng các yêu cầu về việc tổng hợp. Điều này phụ thuộc vào tần suất người dùng truy cập vào trang web của bạn; một trang web có khách truy cập hằng ngày sẽ đạt đến điểm này nhanh hơn nhiều so với một trang web có khách truy cập hằng tháng. Khi số lượng kết quả trùng khớp mới giảm xuống, các bảng trùng khớp sẽ chứa dữ liệu toàn diện hơn.
Truy vấn bảng so khớp
Khi các bảng khớp chứa đủ dữ liệu để đáp ứng các quy trình kiểm tra quyền riêng tư, bạn đã sẵn sàng chạy các truy vấn đối với các bảng.
Bảng ban đầu cho dữ liệu của bên thứ nhất (1PD) được biểu thị bằng my_data
.
Điều này bao gồm cả Thông tin nhận dạng cá nhân (PII) và dữ liệu không phải là PII.
Việc sử dụng bảng gốc có thể cải thiện báo cáo của bạn bằng nhiều thông tin chi tiết hơn, vì bảng này thể hiện tất cả dữ liệu bên thứ nhất trong phạm vi, khi so sánh với bảng khớp.
Mỗi bảng trong giản đồ Ads Data Hub chứa một trường user_id
đều đi kèm với một bảng so khớp. Ví dụ: đối với bảng adh.google_ads_impressions
, Ads Data Hub cũng tạo một bảng so khớp có tên là adh.google_ads_impressions_match
chứa mã nhận dạng người dùng của bạn.
Các bảng so khớp riêng biệt được tạo cho các bảng mạng bị cô lập theo chính sách. Ví dụ: đối với bảng adh.google_ads_impressions_policy_isolated_network
, Ads Data Hub cũng tạo một bảng so khớp có tên là adh.google_ads_impressions_policy_isolated_network_match
chứa mã nhận dạng người dùng của bạn.
Các bảng này chứa một nhóm nhỏ người dùng có trong các bảng ban đầu, trong đó có một giá trị trùng khớp trên user_id
. Ví dụ: nếu bảng ban đầu chứa dữ liệu cho Người dùng A và Người dùng B, nhưng chỉ Người dùng A được so khớp, thì Người dùng B sẽ không có trong bảng so khớp.
Các bảng khớp chứa một cột bổ sung có tên là external_cookie
, lưu trữ giá trị nhận dạng người dùng dưới dạng BYTES.
Bạn nên xem xét loại trường khi viết các truy vấn. Các toán tử so sánh SQL giả định rằng các giá trị cố định mà bạn đang so sánh phải có cùng một loại. Tuỳ thuộc vào cách user_id
được lưu trữ trong bảng dữ liệu của bên thứ nhất, bạn có thể cần mã hoá các giá trị trong bảng trước khi so khớp dữ liệu.
Bạn cần truyền khoá kết hợp vào BYTES để có kết quả khớp thành công:
JOIN ON
adh.google_ads_impressions_match.external_cookie = CAST(my_data.user_id AS BYTES)
Ngoài ra, các phép so sánh chuỗi trong SQL có phân biệt chữ hoa chữ thường, vì vậy, bạn có thể cần mã hoá các chuỗi ở cả hai phía của phép so sánh để đảm bảo rằng bạn có thể so sánh chính xác các chuỗi đó.
Mã hoá mã nhận dạng người dùng
Mã hoá mã nhận dạng người dùng phía ứng dụng
Để đảm bảo có thể truyền các định dạng mã nhận dạng khác nhau một cách an toàn qua URL, bạn cần mã hoá tất cả mã nhận dạng bằng Base64 an toàn cho URL trước khi gửi. Mã nhận dạng được giải mã Base64 an toàn cho URL sẽ có trong trường external_cookie
của Ads Data Hub, vì vậy, bạn cần huỷ mọi phép biến đổi mà bạn đã áp dụng trước khi mã hoá để lấy mã nhận dạng ban đầu.
Nếu mã nhận dạng của bạn luôn có 24 ký tự (hoặc byte) trở xuống, bạn có thể thêm mã nhận dạng được mã hoá Base64 an toàn với URL vào một pixel, như minh hoạ trong ví dụ 1. Nếu mã nhận dạng của bạn dài hơn 24 ký tự (hoặc byte), thì bạn sẽ cần chuyển đổi mã nhận dạng đó thành một giá trị đại diện có độ dài tối đa là 24 byte. Trong một số trường hợp (chẳng hạn như GUID trong ví dụ 2), bạn chỉ cần chuyển đổi sang biểu thị byte. Trong các trường hợp khác, bạn có thể cần gửi cho Google một phần (hoặc một hàm băm) của giấy tờ tuỳ thân. Xin lưu ý rằng trong mọi trường hợp, bạn cần đảm bảo rằng bạn có thể viết một câu lệnh SQL JOIN sẽ chuyển đổi mã nhận dạng trong bảng của bên thứ nhất theo cách tương tự.
Ví dụ 1
Giá trị user ID của bạn sẽ luôn nằm trong giới hạn độ dài 24 byte. Ads Data Hub khuyên bạn chỉ cần gửi trực tiếp Mã nhận dạng người dùng đến ADH (sau khi mã hoá mã nhận dạng đó dưới dạng Base64 an toàn cho URL nhằm mục đích truyền 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);
Ví dụ 2
Bạn chỉ định một giá trị mã nhận dạng riêng biệt chung (UUID) làm mã nhận dạng người dùng, chẳng hạn như:
123e4567-e89b-12d3-a456-426655440000
.
Ads Data Hub đề xuất các phép biến đổi sau khi so khớp:
- UUID được định dạng dưới dạng một chuỗi gồm 36 ký tự.
- Giải mã UUID thập lục phân.
- UUID được định dạng dưới dạng byte.
- Mã hoá Base64 an toàn cho URL.
- UUID được định dạng dưới dạng một chuỗi.
Bạn có thể triển khai việc này bằng mã sau:
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)
Nếu có một giá trị khớp với mã nhận dạng người dùng Google, thì trường external_cookie
sẽ chứa mã nhận dạng của bạn dưới dạng giá trị byte. Để tạo lại mã nhận dạng ban đầu, bạn cần thực hiện quy trình chuyển đổi sau:
external_cookie
được định dạng dưới dạng byte.- Mã hoá thập lục phân
external_cookie
. external_cookie
có định dạng là một chuỗi.
Mã hoá mã nhận dạng người dùng trong Ads Data Hub
Nếu lưu trữ chuỗi UUID trong một trường trong dữ liệu của bên thứ nhất, bạn cần chuyển đổi chuỗi đó thành byte (như trong ví dụ trên) để kết hợp dữ liệu thành công.
Ví dụ sau đây cho thấy cách mã hoá UUID và kết hợp UUID đó trên trường cookie bên ngoài:
JOIN my_data ON imp.external_cookie = FROM_HEX(REPLACE(my_data.uuid, '-', ''))
Xin lưu ý rằng bạn không thể truyền một số nguyên thành byte. Nếu mã nhận dạng người dùng của bạn là một số nguyên (như trong ví dụ 1 ở trên), thì trước tiên, bạn cần phải truyền dưới dạng một chuỗi:
JOIN my_data ON imp.external_cookie = CAST(CAST(my_data.user_id AS STRING) AS BYTES)
Hãy nhớ rằng phương thức mã hoá cần thiết để so khớp dữ liệu của bạn sẽ phụ thuộc vào cách bạn lưu trữ và mã hoá dữ liệu đó trước khi gửi đến Ads Data Hub.
Tìm hiểu thêm về các hàm chuỗi trong BigQuery SQL.
Cụm từ tìm kiếm mẫu
Ví dụ sau đây kết hợp dữ liệu của bên thứ nhất với google_ads_impressions_match
, sau đó kết hợp các kết quả này với adh_google_ads_impressions
trong một truy vấn thứ hai.
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
Với kết quả của truy vấn trước được lưu dưới dạng previous_results
, giờ đây, bạn có thể kết hợp google_ads_impressions
. Thao tác này sẽ thêm dữ liệu về những chiến dịch có 0 lượt hiển thị vào kết quả của bạn.
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)