Nói một cách tổng quát, so khớp cookie là quy trình mà 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 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 nối tập trung và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 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.
Giới hạn và quyền riêng tư của người dùng cuối
Mặc dù hiệu quả, nhưng tính năng so khớp cookie cũng có một số hạn chế:
- Không được phép nối giữa bảng
*_match
và bảng không phải*_match
. - Việc này đòi hỏi cả bạn và Google 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 trên Google. Tỷ lệ khớp phụ thuộc vào một số yếu tố và thay đổi tuỳ theo trường hợp sử dụng và chế độ thiết lập phía máy khách. Tỷ lệ khớp thường thấp hơn người dùng mong đợi. 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 sẽ bắt đầu điền dữ liệu vào 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 so khớp, có thể mất vài tháng thì bảng so khớp mới chứa dữ liệu toàn diện và ổn định về người dùng.
- 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 nào đó để 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, chẳng hạn như khi người dùng xoá cookie.
- Các công việc chạy trên bảng so khớp phải tuân theo các yêu cầu về tổng hợp giống như các công việc khác trong Ads Data Hub. Tỷ lệ khớp thấp kết hợp với số lượt truy cập không thường xuyên vào miền của bạn có thể khiến bạn gặp khó khăn khi 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 tổng hợp1.
- Tuân thủ các 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 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 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 khung 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 bạn 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 ý thích hợp để 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à phải được cập nhật mỗi khi bạn 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 xác nhận điều này.
Xin lưu ý rằng các quy tắc cụm từ tìm kiếm dịch vụ của Google áp dụng cho cụm từ tìm kiếm phân tích cũng áp dụng cho cụm từ tìm kiếm so khớp cookie. Ví dụ: bạn không thể chạy truy vấn trên nhiều dịch vụ đối với người dùng ở Khu vực kinh tế Châu Âu (EEA) khi tạo bảng so 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 ý cho 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 bảng so khớp, bạn phải phân phá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ẽ phụ 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 mình (yêu cầu pixel trên gần như tất cả các trang) hoặc bạn có thể so khớp người dùng chuyển đổi (yêu cầu pixel trên trang chuyển đổi). Nhìn chung, pixel càng phổ biến thì tỷ lệ khớp càng cao.
Thẻ so khớp là một pixel 1x1 trong suốt, 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 đã mã hoá:
<img src="https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm=Q29va2llIG51bWJlciAxIQ" />
Thẻ so khớp này là yếu tố 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ẻ trùng khớp.
- Thẻ so khớp sẽ bắt đầu một loạt lệnh chuyển hướng đến các dịch vụ so khớp của Google Marketing Platform, Google Ads và 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 mỗi không gian mã nhận dạng của dịch vụ so khớp.
- Một pixel 1x1 trong suốt sẽ được trả về cho 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 thể hiện 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 bạn muốn 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ề cách triển khai pixel theo dõi trên miền của bạn.
- Các chuyên gia về 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 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. Google sẽ điền sẵn bảng so khớp của bạn 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 kết quả so khớp có ý nghĩa và đáp ứng các yêu cầu về 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 nội dung trùng khớp mới giảm, bảng so khớp của bạn sẽ chứa dữ liệu toàn diện hơn.
Truy vấn bảng so khớp
Khi bảng so khớp chứa đủ dữ liệu để đáp ứng các bước kiểm tra quyền riêng tư, bạn có thể chạy truy vấn trên các bảng đó.
Bảng gốc 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 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 đại diện cho tất cả dữ liệu 1PD trong phạm vi, so với bảng so khớp.
Mỗi bảng trong giản đồ Ads Data Hub chứa trường user_id
sẽ đ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 tách biệt với chính sách. Ví dụ: đối với bảng adh.google_ads_impressions_policy_isolated_youtube
, Ads Data Hub cũng tạo một bảng so khớp có tên là adh.google_ads_impressions_policy_isolated_youtube_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 tập hợp con người dùng có trong các bảng ban đầu, trong đó có một kết quả 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.
Bảng so khớp chứa một cột bổ sung có tên là external_cookie
. Cột này lưu trữ giá trị nhận dạng người dùng dưới dạng BYTES.
Bạn cần xem xét loại của trường khi viết truy vấn. Toán tử so sánh SQL yêu cầu các giá trị cố định mà bạn đang so sánh phải thuộ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 bên thứ nhất, bạn có thể cần phải 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 để so 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, việc so sánh chuỗi trong SQL sẽ phân biệt chữ hoa chữ thường, vì vậy, bạn có thể cần phải mã hoá chuỗi ở cả hai bên của phép so sánh để đảm bảo rằng các chuỗi đó có thể được so sánh chính xác.
Mã hoá mã nhận dạng người dùng
Mã hoá mã nhận dạng người dùng phía máy khách
Để đảm bảo có thể truyền an toàn các định dạng mã nhận dạng qua URL, tất cả mã nhận dạng cần được mã hoá 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 cung cấp trong Ads Data Hub trong trường external_cookie
. Vì vậy, bạn cần huỷ mọi phép biến đổi đã á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ó tối đa 24 ký tự (hoặc byte), bạn có thể đưa mã nhận dạng được mã hoá Base64 an toàn cho URL vào một pixel, như 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 cần chuyển đổi mã nhận dạng đó thành một mã nhận dạng có kích thước 24 byte trở xuống. 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 cách biểu thị bằng 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 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 SQL JOIN để 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ị mã nhận dạng người dùng của bạn sẽ luôn nằm trong giới hạn độ dài 24 byte. 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 người dùng dưới dạng Base64 an toàn cho URL cho 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 giá trị nhận dạng duy nhấ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 đây khi so khớp:
- UUID được định dạng là một chuỗi gồm 36 ký tự.
- Giải mã UUID ở hệ thập lục phân.
- UUID được định dạng dưới dạng byte.
- Các byte được mã hoá Base64 an toàn cho URL.
- UUID được định dạng dưới dạng 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ó kết quả trùng khớp với mã nhận dạng người dùng của Google, 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 phép biến đổi sau:
external_cookie
được định dạng là byte.- Mã hoá thập lục phân
external_cookie
. external_cookie
có định dạng là 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, để có thể kết hợp dữ liệu thành công.
Ví dụ sau đây cho biết 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 sang byte. Nếu mã nhận dạng người dùng là một số nguyên (như trong ví dụ 1 ở trên), trước tiên, bạn cần truyền dưới dạng 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ẽ tuỳ 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.
Truy vấn 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 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ể tham gia 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ả.
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)