Tính năng so khớp dữ liệu do người dùng cung cấp (UPDM) kết hợp dữ liệu của bên thứ nhất mà bạn đã thu thập được về một người dùng (chẳng hạn như thông tin trên các trang web, ứng dụng hoặc cửa hàng thực tế của bạn) với hoạt động đăng nhập của người dùng đó trên tất cả dữ liệu quảng cáo của Google, bao gồm cả dữ liệu do Google sở hữu và vận hành. Điều này bao gồm cả dữ liệu được mua thông qua các sản phẩm của Google Marketing Platform (GMP), chẳng hạn như YouTube được mua bằng Display & Video 360. Các sản phẩm khác của GMP không thuộc quyền sở hữu và vận hành của Google sẽ không được hỗ trợ.
Để đủ điều kiện so khớp dữ liệu do người dùng cung cấp, sự kiện quảng cáo phải được liên kết với một người dùng đã đăng nhập trong dữ liệu quảng cáo của Google.
Tài liệu này mô tả tính năng so khớp dữ liệu do người dùng cung cấp và hướng dẫn cách thiết lập cũng như sử dụng.
Tổng quan về tính năng So khớp trên đám mây riêng tư
Để thu thập thông tin chi tiết có giá trị về quảng cáo, bạn thường phải kết hợp dữ liệu từ nhiều nguồn. Việc tự xây dựng giải pháp cho vấn đề về quy trình dữ liệu này đòi hỏi bạn phải đầu tư đáng kể về thời gian và kỹ thuật. Tính năng So khớp trên đám mây riêng tư trong Ads Data Hub giúp đơn giản hoá quy trình này bằng cách cung cấp mẫu truy vấn Ads Data Hub để tạo bảng so khớp trong BigQuery. Sau đó, bạn có thể sử dụng bảng này trong các truy vấn Ads Data Hub để so khớp dữ liệu quảng cáo với dữ liệu của bên thứ nhất. Việc làm phong phú các truy vấn bằng dữ liệu của bên thứ nhất có thể mang lại trải nghiệm phong phú hơn cho khách hàng và có khả năng chống lại những thay đổi về hoạt động theo dõi quảng cáo trên toàn ngành.
Vì tính năng so khớp dữ liệu do người dùng cung cấp chỉ có trên khoảng không quảng cáo do Google sở hữu và điều hành dành cho người dùng đã đăng nhập, nên tính năng này không bị ảnh hưởng bởi việc ngừng sử dụng cookie của bên thứ ba trong thời gian tới. Vì thích ứng với những thay đổi của ngành tốt hơn so với dữ liệu của bên thứ ba, nên dữ liệu này có thể cung cấp thông tin chi tiết phong phú hơn, từ đó giúp tăng mức độ tương tác của khách hàng.
Tóm tắt quy trình
- Thiết lập tính năng nhập và so khớp dữ liệu
- Đảm bảo dữ liệu của bên thứ nhất nằm trong BigQuery và tài khoản dịch vụ của bạn có quyền đọc dữ liệu đó. Xem bài viết Thiết lập quy trình tiếp nhận dữ liệu.
- Nhập và so khớp dữ liệu của bên thứ nhất
- Bạn định dạng và tải dữ liệu của bên thứ nhất lên tập dữ liệu BigQuery.
- Bạn bắt đầu yêu cầu so khớp dữ liệu bằng cách tạo một truy vấn phân tích Private Cloud Match và đặt lịch biểu.
- Google kết hợp dữ liệu giữa dự án của bạn và dữ liệu thuộc sở hữu của Google có chứa mã nhận dạng người dùng của Google và dữ liệu do người dùng cung cấp đã băm để tạo và cập nhật bảng so khớp.
- Xem phần Nhập dữ liệu của bên thứ nhất
- Các truy vấn đang diễn ra trong Ads Data Hub, dựa trên dữ liệu được so khớp
- Bạn chạy truy vấn dựa trên các bảng so khớp theo cách tương tự như khi chạy truy vấn thông thường trong Ads Data Hub. Xem phần Truy vấn dữ liệu được so khớp.
Tìm hiểu về các yêu cầu về quyền riêng tư
Thu thập dữ liệu khách hàng
Khi sử dụng tính năng so khớp dữ liệu do người dùng cung cấp, bạn phải tải dữ liệu của bên thứ nhất lên. Đây có thể là thông tin mà bạn thu thập được từ các trang web, ứng dụng, cửa hàng thực tế của bạn hoặc bất kỳ thông tin nào mà khách hàng trực tiếp chia sẻ với bạn.
Bạn phải:
- Đảm bảo rằng chính sách quyền riêng tư của bạn nêu rõ việc bạn chia sẻ dữ liệu khách hàng với các bên thứ ba để họ thay mặt bạn thực hiện các dịch vụ, đồng thời bạn nhận được sự đồng ý của khách hàng cho việc chia sẻ dữ liệu đó khi pháp luật yêu cầu
- Chỉ sử dụng API hoặc giao diện được phê duyệt của Google để tải dữ liệu khách hàng lên
- Tuân thủ tất cả các luật và quy định hiện hành, bao gồm cả mọi bộ luật tự quản lý hay bộ luật ngành có thể áp dụng
Xác nhận về 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ụ tương tự 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 UPDM. 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 ở 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 ý đối với Khu vực kinh tế Châu Âu.
Kích thước dữ liệu
Để bảo vệ quyền riêng tư của người dùng cuối, tính năng so khớp dữ liệu do người dùng cung cấp sẽ thực thi các yêu cầu sau đây về quy mô dữ liệu của bạn:
- Bạn phải tải lên ít nhất 1.000 bản ghi trong danh sách người dùng.
Thiết lập quy trình nhập dữ liệu
Trước khi bắt đầu, hãy đảm bảo rằng:
- Dữ liệu của bên thứ nhất phải nằm trong BigQuery. Nếu bạn có một ranh giới VPC-SC, thì dữ liệu của bên thứ nhất này phải nằm trong VPC-SC của bạn.
- Tài khoản dịch vụ Ads Data Hub của bạn phải có quyền đọc đối với dữ liệu của bên thứ nhất.
- Bạn phải định dạng và băm dữ liệu của bên thứ nhất một cách chính xác. Hãy xem phần tiếp theo để biết thêm chi tiết.
Ngoài ra, Private Cloud Match không có quy trình tham gia bổ sung. Nếu có thể chạy một truy vấn phân tích, bạn có thể chạy một truy vấn Private Cloud Match.
Nhập và so khớp dữ liệu của bên thứ nhất
Định dạng dữ liệu để nhập
Dữ liệu của bạn phải tuân thủ các yêu cầu về định dạng sau đây để được so khớp chính xác:
- Khi được chỉ ra trong phần mô tả trường nhập sau đây, bạn phải tải lên bằng cách sử dụng thuật toán băm SHA256.
- Các trường đầu vào phải được định dạng dưới dạng chuỗi. Ví dụ: nếu bạn đang sử dụng hàm băm SHA256 của BigQuery với hàm mã hoá Base64 (TO_BASE64), hãy sử dụng phép biến đổi sau:
TO_BASE64(SHA256(user_data))
. - UPDM hỗ trợ phương thức mã hoá Base64. Bạn phải điều chỉnh việc mã hoá dữ liệu của bên thứ nhất cho phù hợp với việc giải mã được dùng trong truy vấn Ads Data Hub. Nếu thay đổi phương thức mã hoá dữ liệu của bên thứ nhất, bạn phải cập nhật truy vấn Ads Data Hub để giải mã từ cùng một cơ sở. Các ví dụ sau đây sử dụng phương thức mã hoá Base64.
User ID
- Văn bản thuần túy
- Băm: Không có
- Xoá khoảng trắng ở đầu và ở cuối
- Chữ thường tất cả ký tự
- Cung cấp tên miền của tất cả các địa chỉ email (như gmail.com hoặc hotmail.co.jp)
- Xoá dấu – ví dụ: thay đổi è, é, ê hoặc ë thành e
- Xoá tất cả dấu chấm (.) đứng trước tên miền trong địa chỉ email
gmail.com
vàgooglemail.com
- Băm: SHA256 được mã hoá theo chuẩn Base64
Có hiệu lực: TO_BASE64(SHA256("jeffersonloveshiking@gmail.com"))
Không hợp lệ: TO_BASE64(SHA256(" Jéfferson.Lôves.Hiking@gmail.com "))
Điện thoại
- Xoá khoảng trắng
- Định dạng theo định dạng E.164 – Ví dụ ở Hoa Kỳ: +14155552671, ví dụ ở Vương quốc Anh: +442071838750
- Xoá tất cả ký tự đặc biệt, ngoại trừ dấu "+" trước mã quốc gia
- Băm: SHA256 được mã hoá theo chuẩn Base64
Có hiệu lực: TO_BASE64(SHA256("+18005550101"))
Không hợp lệ: TO_BASE64(SHA256("(800) 555-0101"))
Tên
- Xoá khoảng trắng
- Chữ thường tất cả ký tự
- Xoá tất cả tiền tố, ví dụ: Bà, Ông, Cô, Tiến sĩ
- Không xoá dấu – ví dụ: è, é, ê hoặc ë
- Băm: SHA256 được mã hoá theo chuẩn Base64
Có hiệu lực: TO_BASE64(SHA256("daní"))
Không hợp lệ: TO_BASE64(SHA256("Mrs. Daní"))
Họ
- Xoá khoảng trắng
- Chữ thường tất cả ký tự
- Xoá tất cả hậu tố, ví dụ: Jr., Sr., 2nd, 3rd, II, III, PHD, MD
- Không xoá dấu – ví dụ: è, é, ê hoặc ë
- Băm: SHA256 được mã hoá theo chuẩn Base64
Có hiệu lực: TO_BASE64(SHA256("délacruz"))
Không hợp lệ: TO_BASE64(SHA256("dé la Cruz, Jr."))
Quốc gia
- Cung cấp mã quốc gia ngay cả khi tất cả dữ liệu khách hàng của bạn đến từ cùng một quốc gia
- Không băm dữ liệu quốc gia
- Sử dụng mã quốc gia theo ISO 3166-1 alpha-2
- Băm: Không có
Có hiệu lực: US
Không hợp lệ: United States of America
hoặc USA
Mã vùng
- Không băm dữ liệu mã bưu chính
- Có thể sử dụng cả mã bưu chính của Mỹ và mã bưu chính quốc tế
- Đối với Hoa Kỳ:
- Có thể sử dụng mã 5 chữ số, ví dụ: 94043
- Bạn cũng có thể sử dụng mã bưu chính gồm 5 chữ số kèm theo 4 số mở rộng phía sau, ví dụ: 94043-1351 hoặc 940431351
- Đối với tất cả các quốc gia khác:
- Không cần định dạng (Không cần viết thường hoặc xoá dấu cách và ký tự đặc biệt)
- Bỏ phần mở rộng mã bưu chính
- Băm: Không có
Xác thực hàm băm và mã hoá dữ liệu
Bạn có thể sử dụng các tập lệnh xác thực hàm băm sau đây để đảm bảo dữ liệu của bạn được định dạng chính xác.
JavaScript
/**
* @fileoverview Provides the hashing algorithm, as well as some valid hashes of
* sample data for testing.
*/
async function hash(token) {
// Removes leading or trailing spaces and converts all characters to lowercase.
const formattedToken = token.trim().toLowerCase();
// Hashes the formatted string using the SHA-256 hashing algorithm.
const hashBuffer = await crypto.subtle.digest(
'SHA-256', (new TextEncoder()).encode(formattedToken));
// Converts the hash buffer to a base64-encoded string and returns it.
const base64Str = btoa(String.fromCharCode(...new Uint8Array(hashBuffer)));
return base64Str;
}
function main() {
// Expected hash for test@gmail.com:
// h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
hash('test@gmail.com').then(result => console.log(result));
// Expected hash for +18005551212:
// YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
hash('+18005551212').then(result => console.log(result));
// Expected hash for John: ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
hash('John').then(result => console.log(result));
// Expected hash for Doe: eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
hash('Doe').then(result => console.log(result));
}
main()
Python
"""Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
Supports: Python 2, Python 3
Sample hashes:
- Email 'test@gmail.com': h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
- Phone '+18005551212': YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
- First name 'John': ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
- Last name 'Doe': eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
"""
import base64
import hashlib
def hash(token):
# Generates a base64-encoded SHA-256 hash of a normalized input string.
return base64.b64encode(
hashlib.sha256(
token.strip().lower().encode('utf-8')).digest()).decode('utf-8')
def print_hash(token, expected=None):
# Computes and displays the hash of a token, with optional validation.
hashed = hash(token)
if expected is not None and hashed != expected:
print(
'ERROR: Incorrect hash for token "{}". Expected "{}", got "{}"'.format(
token, expected, hashed))
return
print('Hash: "{}"\t(Token: {})'.format(hashed, token))
def main():
# Tests the hash function with sample tokens and expected results.
print_hash(
'test@gmail.com', expected='h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=')
print_hash(
'+18005551212', expected='YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=')
print_hash('John', expected='ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=')
print_hash('Doe', expected='eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=')
if __name__ == '__main__':
main()
Go
/*
Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
Sample hashes:
- Email 'test@gmail.com': h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
- Phone '+18005551212': YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
- First name 'John': ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
- Last name 'Doe': eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
*/
package main
import (
"crypto/sha256"
"encoding/base64"
"fmt"
"strings"
)
// Hash hashes an email, phone, first name, or last name into the correct format.
func Hash(token string) string {
formatted := strings.TrimSpace(strings.ToLower(token))
hashed := sha256.Sum256([]byte(formatted))
encoded := base64.StdEncoding.EncodeToString(hashed[:])
return encoded
}
// PrintHash prints the hash for a token.
func PrintHash(token string) {
fmt.Printf("Hash: \"%s\"\t(Token: %s)\n", Hash(token), token)
}
func main() {
PrintHash("test@gmail.com")
PrintHash("+18005551212")
PrintHash("John")
PrintHash("Doe")
}
Java
package updm.hashing;
import static java.nio.charset.StandardCharsets.UTF_8;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
/**
* Example of the hashing algorithm.
*
* <p>Sample hashes:
*
* <ul>
* <li>Email 'test@gmail.com': h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
* <li>Phone '+18005551212': YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
* <li>First name 'John': ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
* <li>Last name 'Doe': eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
* </ul>
*/
public final class HashExample {
private HashExample() {}
public static String hash(String token) {
// Normalizes and hashes the input token using SHA-256 and Base64 encoding.
String formattedToken = token.toLowerCase().strip();
byte[] hash;
try {
hash = MessageDigest.getInstance("SHA-256").digest(formattedToken.getBytes(UTF_8));
} catch (NoSuchAlgorithmException e) {
throw new IllegalStateException("SHA-256 not supported", e);
}
return Base64.getEncoder().encodeToString(hash);
}
public static void printHash(String token) {
// Calculates and prints the hash for the given token.
System.out.printf("Hash: \"%s\"\t(Token: %s)\n", hash(token), token);
}
public static void main(String[] args) {
// Executes hash calculations and prints results for sample tokens.
printHash("test@gmail.com");
printHash("+18005551212");
printHash("John");
printHash("Doe");
}
}
SQL
/*
Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
The following code uses Google Standard SQL and can be run on BigQuery to generate match tables from unhashed data.
Sample hashes:
- Email 'test@gmail.com': h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
- Phone '+18005551212': YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
- First name 'John': ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
- Last name 'Doe': eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
The unhashed input table schema is assumed to be:
- Column name: UserID, Type: String
- Column name: Email, Type: String
- Column name: Phone, Type: String
- Column name: FirstName, Type: String
- Column name: LastName, Type: String
- Column name: PostalCode, Type: String
- Column name: CountryCode, Type: String
*/
-- Creates a new table with Base64-encoded SHA-256 hashes of specified columns.
CREATE TABLE `your_project_name.your_dataset_name.output_hashed_table_name`
AS
SELECT
UserID,
TO_BASE64(SHA256(LOWER(Email))) AS Email,
TO_BASE64(SHA256(Phone)) AS Phone,
TO_BASE64(SHA256(LOWER(FirstName))) AS FirstName,
TO_BASE64(SHA256(LOWER(LastName))) AS LastName,
PostalCode,
CountryCode,
FROM
`your_project_name.your_dataset_name.input_unhashed_table_name`;
Khóa kết hợp
Một số tổ hợp dữ liệu do người dùng cung cấp sẽ hiệu quả hơn những tổ hợp khác. Sau đây là danh sách các tổ hợp dữ liệu do người dùng cung cấp, được xếp hạng theo mức độ tương đối. Nếu sử dụng địa chỉ, bạn phải cung cấp: Tên, Họ, Quốc gia và Mã bưu chính.
- Email, số điện thoại, địa chỉ (mạnh nhất)
- Điện thoại, Địa chỉ
- Email, Địa chỉ
- Email, Điện thoại
- Địa chỉ
- Điện thoại
- Email (yếu nhất)
Tạo bảng so khớp
Nhấp vào Báo cáo > Tạo báo cáo > Tạo bảng so khớp trên đám mây riêng tư > Sử dụng mẫu Không bắt buộc: Bạn có thể chọn Tạo bảng so khớp trên đám mây riêng tư bằng cách băm nếu dữ liệu của bạn chưa được băm.
// Create a new match table using your first party data with this template. /* Parameters: Manually remove all the parameters tagged with @ prefix and replace them with column names from your first party table: * @user_id * @email * @phone * @first_name * @last_name * @country_code * @postal_code And your BigQuery table information: * @my_project: Your BigQuery project where the first party table is. * @my_dataset: Your dataset where the first party table is. * @my_first_party_table: Your first party table. */ CREATE OR REPLACE TABLE adh.updm_match_table AS ( SELECT CAST(@user_id AS BYTES) AS user_id, @email AS email, @phone AS phone, @first_name AS first_name, @last_name AS last_name, @country_code AS country, @postal_code AS zip_code FROM `@my_project.@my_dataset.@my_first_party_table` );
Thay thế tên tham số bằng tên cột để cung cấp bí danh phù hợp.
Nhấp vào Đặt lịch biểu để đặt tần suất làm mới bảng khớp. Mỗi lần chạy sẽ ghi đè bảng so khớp hiện tại.
Dữ liệu được so khớp với truy vấ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_updm
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_updm
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à customer_data_user_id
, 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 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ó các kết quả khớp thành công:
JOIN ON
adh.google_ads_impressions_updm.customer_data_user_id = 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 đó.
Truy vấn mẫu
Số người dùng trùng khớp
Truy vấn này đếm số lượng người dùng được so khớp trong bảng hiển thị Google Ads.
/* Count matched users in Google Ads impressions table */
SELECT COUNT(DISTINCT user_id)
FROM adh.google_ads_impressions_updm
Tính tỷ lệ khớp
Không phải người dùng nào cũng đủ điều kiện để được ghép nối. Ví dụ: Người dùng đã đăng xuất, trẻ em và người dùng chưa đồng ý sẽ không được so khớp thông qua UPDM. Bạn có thể sử dụng trường is_updm_eligible
để tính toán tỷ lệ khớp UPDM chính xác hơn. Xin lưu ý rằng trường is_updm_eligible
bắt đầu có hiệu lực từ ngày 1 tháng 10 năm 2024. Bạn không thể sử dụng trường này để tính tỷ lệ khớp trước ngày đó.
/* Calculate the UPDM match rate */
CREATE TEMP TABLE total_events OPTIONS(privacy_checked_export=TRUE) AS
SELECT
customer_id,
COUNT(*) AS n
FROM adh.google_ads_impressions
WHERE is_updm_eligible
GROUP BY 1;
CREATE TEMP TABLE matched_events OPTIONS(privacy_checked_export=TRUE) AS
SELECT
customer_id,
COUNT(*) AS n
FROM adh.google_ads_impressions_updm
GROUP BY 1;
SELECT
customer_id,
SAFE_DIVIDE(matched_events.n, total_events.n) AS match_rate
FROM total_events
LEFT JOIN matched_events
USING (customer_id)
Kết hợp dữ liệu của bên thứ nhất và dữ liệu Google Ads
Truy vấn này cho biết cách kết hợp dữ liệu của bên thứ nhất với dữ liệu Google Ads:
/* Join first-party data with Google Ads data. The customer_data_user_id field
contains your ID as BYTES. You need to cast your join key into BYTES for
successful matches. */
SELECT
inventory_type,
COUNT(*) AS impressions
FROM
adh.yt_reserve_impressions_updm AS google_data_imp
LEFT JOIN
`my_data`
ON
google_data_imp.customer_data_user_id = CAST(my_data.user_id AS BYTES)
GROUP BY
inventory_type
Câu hỏi thường gặp về UPDM
Để xem danh sách câu hỏi thường gặp liên quan đến UPDM, hãy xem Câu hỏi thường gặp về UPDM.