تطبیق داده های ارائه شده توسط کاربر

تطبیق داده‌های ارائه شده توسط کاربر (UPDM) داده‌های شخص ثالثی را که شما در مورد یک کاربر جمع‌آوری کرده‌اید - مانند اطلاعات وب‌سایت‌ها، برنامه‌ها یا فروشگاه‌های فیزیکی شما - با فعالیت ورود همان کاربر در تمام داده‌های تبلیغات گوگل ، از جمله داده‌های متعلق به و تحت مدیریت گوگل، ترکیب می‌کند. این شامل داده‌های خریداری شده از طریق محصولات پلتفرم بازاریابی گوگل (GMP)، به عنوان مثال، یوتیوب خریداری شده با استفاده از Display & Video 360 می‌شود. سایر محصولات GMP که متعلق به و تحت مدیریت گوگل نیستند، پشتیبانی نمی‌شوند.

برای واجد شرایط بودن برای تطبیق داده‌های ارائه شده توسط کاربر، رویداد تبلیغ باید به یک کاربر وارد شده در داده‌های تبلیغ گوگل مرتبط باشد.

این سند، ویژگی تطبیق داده‌های ارائه شده توسط کاربر را شرح می‌دهد و راهنمایی‌هایی در مورد راه‌اندازی و استفاده از آن ارائه می‌دهد.

نمای کلی مسابقه ابر خصوصی

کسب بینش‌های ارزشمند در مورد تبلیغات اغلب نیازمند جمع‌آوری داده‌ها از منابع مختلف است. ایجاد راه‌حل شخصی برای این مشکل خط لوله داده، نیازمند سرمایه‌گذاری زمانی و مهندسی قابل توجهی است. تطبیق ابر خصوصی در Ads Data Hub با ارائه یک الگوی پرس‌وجوی Ads Data Hub برای ایجاد یک جدول تطبیق در BigQuery، این فرآیند را ساده می‌کند که می‌تواند در پرس‌وجوهای Ads Data Hub شما برای تطبیق داده‌های تبلیغات شما با داده‌های شخص ثالث استفاده شود. غنی‌سازی پرس‌وجوهای شما با داده‌های شخص ثالث می‌تواند تجربیات غنی‌تری برای مشتری ارائه دهد و در برابر تغییرات ردیابی تبلیغات در سطح صنعت مقاوم‌تر باشد.

از آنجا که تطبیق داده‌های ارائه شده توسط کاربر فقط در موجودی متعلق به گوگل و برای کاربران وارد شده در دسترس است، تحت تأثیر منسوخ شدن کوکی‌های شخص ثالث قرار نمی‌گیرد. از آنجایی که در مقایسه با داده‌های شخص ثالث در برابر تغییرات صنعت مقاوم‌تر است، می‌تواند بینش غنی‌تری ارائه دهد که می‌تواند منجر به تعامل بیشتر مشتری شود.

خلاصه فرآیند

  1. راه‌اندازی دریافت و تطبیق داده‌ها
    • مطمئن شوید که داده‌های شخص اول شما در BigQuery قرار دارند و حساب سرویس شما به آن دسترسی خواندن دارد. به بخش تنظیم دریافت داده‌ها مراجعه کنید.
  2. دریافت و تطبیق داده‌های شخص ثالث
    • شما داده‌های شخص ثالث خود را قالب‌بندی و در مجموعه داده‌های BigQuery خود بارگذاری می‌کنید.
    • شما با ایجاد یک پرس و جوی تحلیل تطبیق ابر خصوصی و تنظیم یک برنامه، درخواست تطبیق داده‌ها را آغاز می‌کنید.
    • گوگل داده‌های بین پروژه شما و داده‌های متعلق به گوگل که شامل شناسه کاربری گوگل و داده‌های هش شده ارائه شده توسط کاربر است را برای ساخت و به‌روزرسانی جداول تطابق، به هم متصل می‌کند.
    • به دریافت داده‌های شخص ثالث مراجعه کنید
  3. جستجوهای مداوم در مرکز داده‌های تبلیغات، بر اساس داده‌های منطبق

آشنایی با الزامات حفظ حریم خصوصی

جمع‌آوری داده‌های مشتری

هنگام استفاده از تطبیق داده‌های ارائه شده توسط کاربر، باید داده‌های شخص ثالث را بارگذاری کنید. این می‌تواند اطلاعاتی باشد که شما از وب‌سایت‌ها، برنامه‌ها، فروشگاه‌های فیزیکی یا هرگونه اطلاعاتی که مشتری مستقیماً با شما به اشتراک گذاشته است، جمع‌آوری کرده‌اید.

شما باید:

  • اطمینان حاصل کنید که سیاست حفظ حریم خصوصی شما فاش می‌کند که شما داده‌های مشتری را با اشخاص ثالث برای انجام خدمات از طرف خود به اشتراک می‌گذارید، و در صورت لزوم قانونی، رضایت چنین اشتراک‌گذاری را کسب می‌کنید.
  • فقط از API یا رابط کاربری تأیید شده گوگل برای آپلود داده‌های مشتری استفاده کنید
  • رعایت کلیه قوانین و مقررات مربوطه ، از جمله هرگونه آیین‌نامه خودتنظیمی یا آیین‌نامه‌های صنعتی که ممکن است اعمال شوند

تأیید رضایت شخص اول

برای اطمینان از اینکه می‌توانید از داده‌های شخص اول خود در Ads Data Hub استفاده کنید، باید تأیید کنید که رضایت لازم را برای اشتراک‌گذاری داده‌ها از کاربران نهایی منطقه اقتصادی اروپا با گوگل، طبق سیاست رضایت کاربر اتحادیه اروپا و سیاست Ads Data Hub ، دریافت کرده‌اید. این الزام برای هر حساب Ads Data Hub اعمال می‌شود و باید هر بار که داده‌های شخص اول جدید را آپلود می‌کنید، به‌روزرسانی شود. هر کاربر می‌تواند این تأیید را از طرف کل حساب انجام دهد.

توجه داشته باشید که همان قوانین پرس‌وجوی سرویس گوگل که برای پرس‌وجوهای تحلیلی اعمال می‌شود، برای پرس‌وجوهای UPDM نیز اعمال می‌شود. برای مثال، هنگام ایجاد جدول تطبیق، نمی‌توانید پرس‌وجوهای بین سرویسی را روی کاربران در منطقه اقتصادی اروپا (EEA) اجرا کنید.

برای آشنایی با نحوه‌ی اعلام رضایت در Ads Data Hub، به الزامات رضایت برای منطقه‌ی اقتصادی اروپا مراجعه کنید.

اندازه داده

برای محافظت از حریم خصوصی کاربر نهایی، تطبیق داده‌های ارائه شده توسط کاربر، الزامات زیر را در مورد اندازه داده‌های شما اعمال می‌کند:

  • شما باید حداقل ۱۰۰۰ رکورد در لیست کاربران خود آپلود کنید.

تنظیم دریافت داده

قبل از شروع، مطمئن شوید که:

  • داده‌های شخص اول شما باید در BigQuery باشند. اگر محیط VPC-SC دارید، این داده‌های شخص اول باید در VPC-SC شما قرار داشته باشند.
  • حساب سرویس Ads Data Hub شما باید دسترسی خواندن به داده‌های شخص اول را داشته باشد.
  • داده‌های شخص اول شما باید به درستی قالب‌بندی و هش شوند. برای جزئیات بیشتر به بخش بعدی مراجعه کنید.

فراتر از آن، Private Cloud Match هیچ آموزش اضافی ندارد. اگر می‌توانید یک کوئری تحلیلی اجرا کنید، می‌توانید یک کوئری Private Cloud Match نیز اجرا کنید.

داده‌های شخص ثالث را دریافت و تطبیق دهید

قالب‌بندی داده‌ها برای ورودی

داده‌های شما برای مطابقت صحیح باید از این الزامات قالب‌بندی پیروی کنند:

  • در مواردی که در توضیحات فیلد ورودی زیر مشخص شده است، باید با استفاده از هشینگ SHA256 آپلود کنید.
  • فیلدهای ورودی باید به صورت رشته قالب‌بندی شوند. برای مثال، اگر از تابع هش SHA256 در BigQuery به همراه تابع کدگذاری Base64 ( TO_BASE64 ) استفاده می‌کنید، از تبدیل زیر استفاده کنید: TO_BASE64(SHA256(user_data)) .
  • UPDM از کدگذاری Base64 پشتیبانی می‌کند. شما باید کدگذاری داده‌های شخص اول خود را با رمزگشایی مورد استفاده در پرس‌وجوی Ads Data Hub خود هم‌تراز کنید. اگر کدگذاری داده‌های شخص اول خود را تغییر دهید، باید پرس‌وجوی Ads Data Hub خود را برای رمزگشایی از همان پایه به‌روزرسانی کنید. مثال‌های زیر از کدگذاری Base64 استفاده می‌کنند.

شناسه کاربری

  • متن ساده
  • هش: هیچکدام

ایمیل

  • حذف فاصله‌های خالی (whitespace) در ابتدا و انتهای متن
  • تمام کاراکترها با حروف کوچک نوشته شوند
  • برای همه آدرس‌های ایمیل، یک نام دامنه مانند gmail.com یا hotmail.co.jp وارد کنید
  • لهجه‌ها را حذف کنید - برای مثال، è، é، ê یا ë را به e تغییر دهید
  • تمام نقطه‌ها (.) که قبل از نام دامنه در آدرس‌های ایمیل gmail.com و googlemail.com قرار دارند را حذف کنید.
  • هشینگ: کدگذاری شده با Base64 و SHA256

معتبر: TO_BASE64(SHA256("jeffersonloveshiking@gmail.com"))

نامعتبر: TO_BASE64(SHA256(" Jéfferson.Lôves.Hiking@gmail.com "))

تلفن

  • فضای سفید را حذف کنید
  • قالب‌بندی با فرمت E.164 - مثال آمریکایی: +14155552671، مثال بریتانیایی: +442071838750
  • تمام کاراکترهای ویژه به جز "+" قبل از کد کشور را حذف کنید
  • هشینگ: کدگذاری شده با Base64 و SHA256

معتبر: TO_BASE64(SHA256("+18005550101"))

نامعتبر: TO_BASE64(SHA256("(800) 555-0101"))

نام کوچک

  • فضای سفید را حذف کنید
  • تمام کاراکترها با حروف کوچک نوشته شوند
  • تمام پیشوندها را حذف کنید - برای مثال خانم، آقا، خانم، دکتر.
  • لهجه‌ها را حذف نکنید - برای مثال، è، é، ê یا ë
  • هشینگ: کدگذاری شده با Base64 و SHA256

معتبر: TO_BASE64(SHA256("daní"))

نامعتبر: TO_BASE64(SHA256("Mrs. Daní"))

نام خانوادگی

  • فضای سفید را حذف کنید
  • تمام کاراکترها با حروف کوچک نوشته شوند
  • تمام پسوندها را حذف کنید - برای مثال Jr., Sr., 2nd, 3rd, II, III, PHD, MD
  • لهجه‌ها را حذف نکنید - برای مثال، è، é، ê یا ë
  • هشینگ: کدگذاری شده با Base64 و SHA256

معتبر: TO_BASE64(SHA256("délacruz"))

نامعتبر: TO_BASE64(SHA256("dé la Cruz, Jr."))

کشور

  • حتی اگر تمام اطلاعات مشتریان شما مربوط به یک کشور است، کد کشور را نیز وارد کنید.
  • داده‌های کشور را هش نکنید
  • از کدهای کشور ISO 3166-1 alpha-2 استفاده کنید
  • هش: هیچکدام

معتبر: US

نامعتبر: United States of America یا USA

کد پستی

  • داده‌های کد پستی را هش نکنید
  • کد پستی و پستی ایالات متحده و بین‌المللی هر دو مجاز هستند
  • برای ایالات متحده:
    • کدهای ۵ رقمی مجاز هستند—برای مثال، ۹۴۰۴۳
    • ۵ رقم و به دنبال آن یک کد داخلی ۴ رقمی نیز مجاز است - برای مثال، ۹۴۰۴۳-۱۳۵۱ یا ۹۴۰۴۳۱۳۵۱
  • برای همه کشورهای دیگر:
    • بدون نیاز به قالب‌بندی (نیازی به حروف کوچک یا حذف فاصله‌ها و کاراکترهای ویژه نیست)
    • پسوندهای کد پستی را حذف کنید
  • هش: هیچکدام

اعتبارسنجی هش و رمزگذاری داده‌ها

شما می‌توانید از اسکریپت‌های اعتبارسنجی هش زیر برای اطمینان از قالب‌بندی صحیح داده‌هایتان استفاده کنید.

جاوا اسکریپت

  /**
   * @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()

پایتون

  """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()

برو

  /*
  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")
  }

جاوا

  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`;

کلیدهای اتصال

برخی از ترکیبات داده‌های ارائه شده توسط کاربر قوی‌تر از بقیه هستند. در زیر لیستی از ترکیبات مختلف داده‌های ارائه شده توسط کاربر، که بر اساس قدرت نسبی رتبه‌بندی شده‌اند، آمده است. اگر از آدرس استفاده می‌کنید، باید موارد زیر را ذکر کنید: نام، نام خانوادگی، کشور و کد پستی.

  1. ایمیل، تلفن، آدرس (قوی‌ترین)
  2. تلفن، آدرس
  3. ایمیل، آدرس
  4. ایمیل، تلفن
  5. آدرس
  6. تلفن
  7. ایمیل (ضعیف‌ترین)

یک جدول تطابق ایجاد کنید

  1. روی افزودن، ایجاد > پرس‌وجو کلیک کنید.
  2. الگوی کوئری تولید جدول تطبیق Private cloud را کپی کرده و در ویرایشگر کوئری جایگذاری کنید. اختیاری: اگر داده‌های شما از قبل هش نشده‌اند، می‌توانید از الگوی تولید جدول تطبیق Private cloud (با هش) استفاده کنید.

    /* Private cloud match table generation
    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`
    );
    
    /* Private cloud match table generation (with hashing)
    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,
          TO_BASE64(SHA256(LOWER(@email))) AS email,
          TO_BASE64(SHA256(@phone)) AS phone,
          TO_BASE64(SHA256(LOWER(@first_name))) AS first_name,
          TO_BASE64(SHA256(LOWER(@last_name))) AS last_name,
          @country_code AS country,
          @postal_code AS zip_code
    FROM `@my_project.@my_dataset.@my_first_party_table`
    );
    
  3. نام پارامترها را با نام ستون‌های خود جایگزین کنید تا نام مستعار مناسبی ارائه شود.

  4. روی ذخیره کلیک کنید

  5. روی اجرا کلیک کنید. برای به‌روزرسانی جدول تطبیق، باید این پرس‌وجو را به‌صورت دستی اجرا کنید. هر اجرا، جدول تطبیق فعلی را بازنویسی می‌کند.

داده‌های منطبق با پرس‌وجو

پرس و جو در جداول تطابق

وقتی جداول تطابق شما حاوی داده‌های کافی برای برآورده کردن بررسی‌های حریم خصوصی باشند، آماده اجرای پرس‌وجوها در جداول هستید.

جدول اصلی برای داده‌های شخص اول (1PD) با my_data نمایش داده می‌شود. این شامل اطلاعات شخصی قابل شناسایی (PII) و داده‌های غیر PII می‌شود. استفاده از جدول اصلی می‌تواند گزارش‌های شما را با بینش بیشتر بهبود بخشد، زیرا تمام داده‌های 1PD را در مقایسه با یک جدول منطبق نشان می‌دهد.

هر جدول در طرحواره Ads Data Hub که حاوی فیلد user_id است، با یک جدول تطبیق همراه است. به عنوان مثال، برای جدول adh.google_ads_impressions ، Ads Data Hub همچنین یک جدول تطبیق به نام adh.google_ads_impressions_updm ایجاد می‌کند که شامل شناسه‌های کاربری شما است. جداول تطبیق جداگانه‌ای برای جداول شبکه‌ای که از نظر سیاست ایزوله شده‌اند، ایجاد می‌شود. به عنوان مثال، برای جدول adh.google_ads_impressions_policy_isolated_network ، Ads Data Hub همچنین یک جدول تطبیق به نام adh.google_ads_impressions_policy_isolated_network_updm ایجاد می‌کند که شامل شناسه‌های کاربری شما است.

این جداول شامل زیرمجموعه‌ای از کاربران موجود در جداول اصلی هستند که در آن‌ها یک تطابق روی user_id وجود دارد. برای مثال، اگر جدول اصلی شامل داده‌های کاربر A و کاربر B باشد، اما فقط کاربر A تطبیق داده شده باشد، آنگاه کاربر B در جدول تطبیق وجود نخواهد داشت.

جداول تطبیق شامل یک ستون اضافی به نام customer_data_user_id هستند که شناسه کاربر را به صورت بایت ذخیره می‌کند.

هنگام نوشتن کوئری‌هایتان، توجه به نوع فیلد مهم است. عملگرهای مقایسه SQL انتظار دارند که حروفی که مقایسه می‌کنید از یک نوع باشند. بسته به نحوه ذخیره user_id در جدول داده‌های شخص ثالث شما، ممکن است لازم باشد مقادیر موجود در جدول را قبل از تطبیق داده‌ها کدگذاری کنید. برای تطابق‌های موفقیت‌آمیز، باید کلید اتصال خود را در قالب BYTES قرار دهید:

JOIN ON
  adh.google_ads_impressions_updm.customer_data_user_id = CAST(my_data.user_id AS BYTES)

علاوه بر این، مقایسه رشته‌ها در SQL به حروف بزرگ و کوچک حساس است، بنابراین ممکن است لازم باشد رشته‌ها را در هر دو طرف مقایسه خود کدگذاری کنید تا از مقایسه دقیق آنها اطمینان حاصل شود.

نمونه سوالات

تعداد کاربران تطبیق یافته

این کوئری تعداد کاربران منطبق در جدول نمایش تبلیغات گوگل شما را شمارش می‌کند.

/* Count matched users in Google Ads impressions table */

SELECT COUNT(DISTINCT user_id)
FROM adh.google_ads_impressions_updm

محاسبه نرخ تطابق

همه کاربران واجد شرایط تطبیق نیستند. به عنوان مثال، کاربران خارج از سیستم، کودکان و کاربران بدون رضایت از طریق UPDM تطبیق داده نمی‌شوند. می‌توانید از فیلد is_updm_eligible برای محاسبه دقیق‌تر نرخ تطبیق UPDM استفاده کنید. توجه داشته باشید که فیلد is_updm_eligible از اول اکتبر ۲۰۲۴ در دسترس بوده است. شما نمی‌توانید از این فیلد برای محاسبه نرخ تطبیق قبل از آن تاریخ استفاده کنید.

/* 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)

داده‌های شخص ثالث و گوگل ادز را به هم متصل کنید

این کوئری نحوه‌ی اتصال داده‌های شخص ثالث به داده‌های گوگل ادز را نشان می‌دهد:

/* 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

سوالات متداول UPDM

برای فهرستی از سوالات متداول مربوط به UPDM، به سوالات متداول UPDM مراجعه کنید.