So khớp cookie

Nhìn chung, so khớp cookie là quá trình 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. Khi so khớp các cookie này, bạn có thể 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 qua Display & Video 360 và Campaign Manager 360) trên cùng một người dùng. Điều này giú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 quy trình liên kết chú trọng 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 quảng cáo nào dẫn đến các phiên dài hơn trên miền của bạn.
  • Phân tích nhật ký mua đượ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ù có tác động mạnh mẽ nhưng tính năng so khớp cookie vẫn có một số hạn chế:

  • Nghiêm cấm việc kết hợp giữa các bảng *_match và các bảng không phải *_match.
  • Để sử dụng phương pháp này, cả bạn và Google đều phải thực hiện các bước kỹ thuật.
  • Bạn sẽ không thể so khớp tất cả dữ liệu quảng cáo của Google của mình. Tỷ lệ 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ư cách thiết lập phía máy khách. Tỷ lệ khớp thường thấp hơn mong đợi 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 quảng cáo của bạn.
  • Google bắt đầu điền 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 phù hợp, có thể mất nhiều tháng trước khi bảng so 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ó một số 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 xảy ra 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 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ể dẫn đến khó khăn trong việc thu thập dữ liệu. Điều này là do hiệu ứ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:
    • Cấm so khớp dữ liệu đăng nhập và đăng xuất của một người dùng cụ thể.
    • 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 từ 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.

Để đả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 ý phù hợp để chia sẻ dữ liệu từ người dùng cuối ở Khu vực kinh tế Châu Âu với Google theo Chính sách về sự đồng ý của người dùng ở Liên minh Châu Âuchính sách của 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ể xác nhận điều này thay mặt cho toàn bộ tài khoản.

Xin lưu ý rằng các quy tắc truy vấn dịch vụ của Google áp dụng cho các truy vấn phân tích cũng áp dụng cho các 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ụ cho người dùng ở 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 ý đối với Khu vực kinh tế Châu Âu.

Để Google điền sẵn bảng so khớp, bạn phải phân phát một thẻ so khớp trên mọi trang của miền mà bạn muốn so khớp dữ liệu quảng cáo. Vị trí bạn đặt pixel sẽ tùy thuộc vào mục tiêu quảng cáo của bạn. Ví dụ: bạn có thể muốn tìm cách khớp tất cả 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ể khớp với người dùng chuyển đổi (yêu cầu pixel trên trang chuyển đổi). Nói chung, pixel rộng hơn sẽ dẫn đến tỷ lệ khớp cao hơn.

Thẻ so khớp là một pixel 1x1 trong suốt, chứa ID hồ sơ so khớp cookie và ID người dùng hoặc ID cookie được mã hóa:

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

Thẻ so khớp này là thẻ bắt đầu hoạt động 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

  1. Người dùng truy cập vào một trang có thẻ so khớp.
  2. Thẻ so khớp 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 sẽ chứa mã nhận dạng hoặc cookie của người dùng đó từ trang web của bạn, cùng với cookie của Google trong không gian mã nhận dạng của từng dịch vụ so khớp.
  3. Một pixel 1x1 trong suốt được trả về trình duyệt để xác nhận rằng yêu cầu đã được thực hiện.

Quá trình này được thể hiện trong sơ đồ dưới đây:

Hình ảnh mô tả một loạt các lần chuyển hướng giữa trình duyệt và dịch vụ trùng khớp

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:

  1. Hãy liên hệ với nhân viên đại diện khách hàng và cho biết bạn quan tâm đến tính năng so khớp cookie. Họ sẽ thảo luận về các 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.
  2. Các chuyên gia 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à các trường hợp sử dụng.
  3. 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 cho bạn.

Sau khi hoàn tất những bước này, bạn không cần phải làm gì ngay. Google sẽ điền dữ liệu vào bảng so khớp hằng ngày2, vì vậy, bạn cần đợi đủ thời gian để bảng chứa đủ dữ liệu để cung cấp kết quả khớp phù hợp và đáp ứng các yêu cầu 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; 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 trang web có khách truy cập hằng tháng. Vì số lượng kết quả trùng khớp hoàn toàn mới giảm dần, nên 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 quy trình kiểm tra quyền riêng tư, bạn đã sẵn sàng chạy truy vấn dựa trên 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. Dữ liệu này bao gồm cả dữ liệu Thông tin nhận dạng cá nhân (PII) và dữ liệu không phải là thông tin nhận dạng cá nhân. Việc sử dụng bảng gốc có thể cải thiện báo cáo nhờ có 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 của bên thứ nhất trong phạm vi (so với bảng _match).

Mỗi bảng trong giản đồ Ads Data Hub chứa trường user_id sẽ có bảng *_match đi kèm. 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. Hệ thống sẽ tạo các bảng so khớp riêng biệt 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 các 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ó sẵn trong các bảng gốc, trong đó có kết quả trùng khớp trên user_id. Ví dụ: nếu bảng gốc chứa dữ liệu của Người dùng A và Người dùng B, nhưng chỉ có 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ữ cookie của bạn dưới dạng LiveData.

Điều quan trọng là phải xem xét loại trường khi viết truy vấn của bạn. Các toán tử so sánh SQL kỳ vọng rằng các giá trị cố định mà bạn đang so sánh có cùng một kiểu. 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á tham gia thành ImageView để tìm được cá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, việc so sánh chuỗi trong SQL rất nhạy cảm với cách viết hoa, vì vậy, bạn có thể cần mã hoá các chuỗi ở cả hai bên của phép so sánh để đảm bảo có thể 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 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 đều phải được mã hoá Base64 an toàn cho URL trước khi gửi. Mã đượ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 sẽ phải huỷ mọi quy tắc chuyể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ể bao gồm mã nhận dạng Base64 được mã hoá an toàn cho URL trong một pixel, như minh hoạ trong ví dụ 1. Nếu ID của bạn lớn hơn 24 ký tự (hoặc byte) thì bạn sẽ cần chuyển đổi mã đó thành một giá trị biểu diễn có 24 byte trở xuống. Trong một số trường hợp (như GUID trong ví dụ 2), bạn cần chuyển đổi sang cách biểu diễn byte. Trong các trường hợp khác, bạn có thể cần phải gửi cho Google một tập hợp con (hoặc một hàm băm) giấy tờ tuỳ thân của bạn. Lưu ý rằng trong mọi trường hợp, bạn cần phải đảm bảo rằng bạn có thể viết SQL JOIN, lệnh này 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ị mã nhận dạng người dùng của bạn sẽ luôn nhỏ hơn giới hạn độ dài 24 byte. Ads Data Hub khuyên bạn chỉ cần gửi Mã nhận dạng người dùng trực tiếp đến ADH (sau khi mã hoá mã này thành Base64 an toàn về URL cho mục đích truyền tải 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 duy nhất (UUID) chung 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 hành động biến đổi sau đây khi so khớp:

  1. UUID được định dạng dưới dạng chuỗi gồm 36 ký tự.
  2. Mã nhận dạng duy nhất (UUID) giải mã thập lục phân.
  3. UUID được định dạng là byte.
  4. Các byte mã hoá Base64 an toàn cho URL.
  5. 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 khớp với mã nhận dạng người dùng 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 những hành động biến đổi sau:

  1. external_cookie được định dạng dưới dạng byte.
  2. Mã hoá thập lục phân external_cookie.
  3. external_cookie được định dạng dưới dạng chuỗi.

Mã hoá mã nhận dạng người dùng trong Trung tâm dữ liệu quảng cáo

Nếu lưu trữ chuỗi UUID trong một trường thuộc dữ liệu của bên thứ nhất, bạn sẽ cần chuyển đổi chuỗi đó thành byte, như trong ví dụ trên để kết hợp thành công dữ liệu của bạn.

Ví dụ sau cho thấy cách mã hoá UUID và kết hợp mã đó trên trường cookie bên ngoài:

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

Lưu ý rằng bạn không thể chuyể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), 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)

Xin lưu ý rằng phương thức mã hoá cần thiết để khớp với dữ liệu của bạn sẽ phụ thuộc vào cách bạn lưu trữ và cách bạn mã hoá dữ liệu trước khi gửi đến Ads Data Hub.

Tìm hiểu thêm về 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, bạn hiện có thể tham gia google_ads_impressions. Nhờ đó, bạn sẽ thêm dữ liệu về những chiến dịch không có lượt hiển thị nào vào kết quả của mình.

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. Ví dụ: tỷ lệ khớp 20% có nghĩa là bạn cần 250 người dùng mỗi hàng để đáp ứng ngưỡng tổng hợp 50 người dùng, chẳng hạn như 50 / 0,2 = 250. 

  2. Các kết quả trùng khớp được thực hiện trong một ngày cụ thể có thể phải chờ đến 48 giờ trước khi chúng xuất hiện trong bảng của bạn.