התאמה של נתונים שסופקו על ידי משתמשים

סקירה כללית

פלטפורמת UPDM (התאמה לנתונים שסופקו על ידי משתמשים) מאחדת נתונים מאינטראקציה ישירה (First-Party) שנאספו על-ידי המשתמש, כמו מידע מהאתרים, האפליקציות או החנויות הפיזיות שלכם, עם אותה פעילות של משתמש מחובר בנתוני המודעות של Google, למעט הפלטפורמה של Google Marketing Platform. כדי לעמוד בדרישות לשימוש בהתאמת נתונים שהמשתמשים סיפקו, צריך לקשר את אירוע המודעה למשתמש שמחובר לנתוני המודעות ב-Google.

להתאמה של נתונים שסופקו על ידי משתמשים יש כמה יתרונות ייחודיים על פני צורות אחרות של התאמה ללקוחות. התאמה לנתונים שסופקו על ידי משתמשים:

  • המכשיר עמיד יותר לשינויים בתעשייה מאשר נתונים של צד שלישי
  • אין השפעה על ההוצאה הצפויה של קובצי cookie של צד שלישי, משום שהתאמת הנתונים שסופקו על ידי משתמשים זמינה רק במלאי שטחי פרסום שמופעל על ידי Google ומופעל על ידי משתמשים מחוברים
  • יכול לספק חוויות לקוח רלוונטיות יותר, וכתוצאה מכך הגברת המעורבות של הלקוחות
  • מאפשר קבלת תובנות מעמיקות יותר על הלקוחות

סיכום תהליך

אחרי שמפעילים התאמה של נתונים שהמשתמשים סיפקו בחשבון, יש שני שלבים לשימוש מתמשך בתכונה:

  1. נתונים מאינטראקציה ישירה הטמעת נתונים ב-Ads Data Hub
    • אתם מעצבים ומעלים את הנתונים מאינטראקציה ישירה (First-Party) למערך הנתונים של BigQuery. אתם יכולים להשתמש בכל מערך נתונים שבבעלותכם ב-BigQuery, למעט פרויקט האדמין שלכם.
    • התחלת בקשה להתאמת נתונים על ידי יצירת חיבור ותזמון ייבוא.
    • Google מאחדת נתונים בין הפרויקט שלך לבין נתונים בבעלות Google, שכוללים את מזהה המשתמש של Google& נתונים מגובבים (hashed) של משתמשים, כדי ליצור ולעדכן טבלאות של *_match.
  2. שאילתות מתמשכות ב-Ads Data Hub מבוססות על נתונים תואמים
  3. אפשר להריץ שאילתות על טבלאות *_match באותו אופן שבו הרצת שאילתות רגילות ב-Ads Data Hub.

פרויקטים של מקור נתונים ויעד

לשם כך, תצטרכו להשתמש בשני פרויקטים שונים ב-Google Cloud: פרויקט של מקור נתונים ופרויקט יעד.

הגבלות על פרטיות

איסוף נתוני לקוחות

כשמשתמשים בהתאמה של נתונים שסופקו על ידי משתמשים, צריך להעלות נתונים מאינטראקציה ישירה. זה יכול להיות מידע שאספתם מהאתרים, מהאפליקציות או מהחנויות הפיזיות שלכם, או כל מידע שהלקוח שיתף איתכם ישירות.

גודל הנתונים

כדי להגן על הפרטיות של משתמשי הקצה, התכונה 'התאמה לנתונים שנמסרים על ידי משתמשים' אוכפת את הדרישות האלה לגבי גודל הנתונים:

  • עליך להעלות לפחות 1,000 רשומות לרשימת המשתמשים.
  • כל עדכון מוצלח של טבלת ההתאמות חייב לכלול מספר מינימלי של משתמשים חדשים. התנהגות זו דומה לבדיקות שונות.
  • הרשימה לא יכולה לחרוג ממספר הרשומות המרבי. כדי לקבל מידע על מגבלת הנתונים המקסימלית, אפשר לפנות לנציג Google.

הפעלת הכרטיסייה 'חיבורים'

לפני שמתחילים, צריך להגדיר את חשבון Ads Data Hub כך שיפעיל את הכרטיסייה חיבורים. שם צריך ליצור את צינור עיבוד הנתונים התואם. צריך לבצע את השלבים האלה פעם אחת בלבד.

  1. לנציג Google:
    1. מספר החשבון ב-Ads Data Hub שבו תשתמשו לצורך התאמת נתונים שהמשתמשים סיפקו.
    2. כתובת האימייל של משתמש-העל שיש לה גישה לפרויקט היעד שלך.
    3. ודאו עם הנציג שלכם ב-Google שהחשבון והמשתמש-העל נמצאים ברשימת ההיתרים.
  2. מפעילים את Ads Data Connector API בפרויקט הייעודי שהוקצה ב-Google Cloud. כברירת מחדל, זהו פרויקט הניהול שלכם. כדי להשתמש בפרויקט אחר, מבצעים את השלבים האלה עם הפרויקט החלופי ב-Google Cloud בתור הפרויקט מקור נתונים. צריך לבצע את השלבים האלה כשאתם מחוברים כמשתמשים-על של רשימת ההיתרים.

    1. נכנסים לספריית ה-API ב-Cloud Console.
    2. בוחרים את פרויקט מקור הנתונים מהרשימה.
    3. מחפשים את "Ads Data Connector API". אם ה-Ads Data Connector API לא מופיע בתוצאות החיפוש, יכול להיות שחשבון Google שאליו נכנסתם הוא לא משתמש-העל שנכלל ברשימת ההיתרים.
    4. בדף ה-API לוחצים על הפעלה.
    5. מוודאים מול נציג Google שה-API מופעל.
  3. הנציג שלכם ב-Google ישלח לכם שלוש כתובות אימייל שמשויכות לחשבונות Datafusion, Dataproc ו-UPDM.

    סעיף חיבורים חדש יופיע גם בחשבון Ads Data Hub שלכם, ויכלול כרטיסיות בשם הנתונים שלך מאינטראקציה ישירה והתאמה של נתונים. מידע על תרחישים לדוגמה לכל כרטיסייה.

  4. מעניקים את ההרשאות המתאימות לחשבונות השירות. כדי לקבל הסבר לגבי חשבונות השירות השונים וההרשאות הדרושות להם, בוחרים את מקור הנתונים בטבלה:

    BigQuery

    חשבון שירות Datafusion
    מטרה חשבון השירות של מיזוג הנתונים משמש להצגת רשימה של שדות המקור בממשק המשתמש של Ads Data Hub.
    פורמט service-some-number@gcp-sa-datafusion.iam.gserviceaccount.com
    נדרשת הרשאת גישה
    BigQuery Data Viewer
    roles/bigquery.dataViewer
    עבור מערכי נתונים ספציפיים בפרויקטים של מקור נתונים ויעד
    Storage Admin
    roles/storage.admin
    אם מדובר בפרויקט מקור נתונים או בקטגוריית אחסון ייעודית
    חשבון שירות Dataproc
    מטרה חשבון השירות של ה-dataproc אחראי להפעלת צינורות הנתונים ברקע.
    פורמט some-number-compute@developer.gserviceaccount.com
    נדרשת הרשאת גישה
    BigQuery Data Viewer
    roles/bigquery.dataViewer
    עבור מערכי נתונים ספציפיים בפרויקטים של מקור נתונים ויעד
    BigQuery Data Editor
    roles/bigquery.dataEditor
    של מערכי נתונים ספציפיים בפרויקט Destination
    BigQuery Job User
    roles/bigquery.jobUser
    גם בפרויקטים של מקור נתונים וגם ביעד
    Storage Admin
    roles/storage.admin
    לפרויקט מקור נתונים ולפרויקט יעד, או לקטגוריית אחסון ייעודית
    חשבון שירות UPDM
    מטרה חשבון השירות של UPDM משמש להפעלת העבודה התואמת.
    פורמט service-some-number@gcp-sa-adsdataconnector.iam.gserviceaccount.com
    נדרשת הרשאת גישה
    BigQuery Data Viewer
    roles/bigquery.dataViewer
    לפרויקט יעד
    BigQuery Job User
    roles/bigquery.jobUser
    לפרויקט יעד

    Cloud Storage

    חשבון שירות Datafusion
    מטרה חשבון השירות של מיזוג הנתונים משמש להצגת רשימה של שדות המקור בממשק המשתמש של Ads Data Hub.
    פורמט service-some-number@gcp-sa-datafusion.iam.gserviceaccount.com
    נדרשת הרשאת גישה
    Storage Object Viewer
    roles/storage.objectViewer
    עבור קטגוריות אחסון ספציפיות בפרויקט מקור הנתונים
    BigQuery Data Viewer
    roles/bigquery.dataViewer
    אם מדובר בפרויקט מקור נתונים או בקטגוריית אחסון ייעודית
    Storage Admin
    roles/storage.admin
    אם מדובר בפרויקט מקור נתונים או בקטגוריית אחסון ייעודית
    חשבון שירות Dataproc
    מטרה חשבון השירות של ה-dataproc אחראי להפעלת צינורות הנתונים ברקע.
    פורמט some-number-compute@developer.gserviceaccount.com
    נדרשת הרשאת גישה
    Storage Admin
    roles/storage.admin
    לפרויקט מקור נתונים ולפרויקט יעד, או לקטגוריית אחסון ייעודית
    BigQuery Job User
    roles/bigquery.jobUser
    לפרויקט יעד
    חשבון שירות UPDM
    מטרה חשבון השירות של UPDM משמש להפעלת העבודה התואמת.
    פורמט service-some-number@gcp-sa-adsdataconnector.iam.gserviceaccount.com
    נדרשת הרשאת גישה
    BigQuery Data Viewer
    roles/bigquery.dataViewer
    לפרויקט יעד
    BigQuery Job User
    roles/bigquery.jobUser
    לפרויקט יעד

    Salesforce

    בקרוב

הטמעת נתונים מאינטראקציה ישירה (First-Party)

פורמט נתונים לקלט

כדי שנוכל להתאים את הנתונים שלכם כראוי, הנתונים שלכם חייבים לעמוד בדרישות הפורמט הבאות:

  • היכן שהדבר נדרש, צריך להעלות את הגיבוב באמצעות SHA256 כמחרוזת Base16. שיטת UPDM תומכת ב-Base64, אבל היא שונה מההנחיות בהתאמה ללקוחות של Google Ads.
  • שדות הקלט צריכים להיות בפורמט של מחרוזות. אם אתם משתמשים בפונקציית SHA256 גיבוב (hash) של BigQuery& במסגרת קידוד Base16 (TO_HEX), עליכם להשתמש בטרנספורמציה הבאה: TO_HEX(SHA256(user_data)).

User ID

  • טקסט פשוט
  • גיבוב (hashing): ללא

אימייל

  • הסרת רווחים לבנים
  • יש להשתמש באותיות קטנות בלבד
  • יש לכלול שם דומיין בכל כתובות האימייל. למשל: gmail.com או hotmail.co.jp
  • יש להסיר סימנים דיאקריטיים – למשל, è , é , ê או ë ל-e
  • גיבוב (hashing): בקידוד SHA256 בקידוד Base16

תקף: TO_HEX(SHA256("jeffersonloveshiking@gmail.com"))

לא חוקי: TO_HEX(SHA256("JéffersonLôvesHiking@gmail.com"))

Phone

  • הסרת רווחים לבנים
  • הפורמט הוא E.164 — לדוגמה, US +14155552671, בריטניה + 442071838750)
  • יש לכלול קוד מדינה (כולל ארה"ב)
  • יש להסיר את כל התווים המיוחדים מלבד ה-"+" לפני קוד המדינה
  • גיבוב (hashing): בקידוד SHA256 בקידוד Base16

תקף: TO_HEX(SHA256("+18005550101"))

לא חוקי: TO_HEX(SHA256("(800) 555-0101"))

שם פרטי

  • הסרת רווחים לבנים
  • יש להשתמש באותיות קטנות בלבד
  • יש להסיר את כל הקידומות, כגון גברת
  • אין't להסיר סימנים דיאקריטיים – לדוגמה, è , é , ê או ë
  • גיבוב (hashing): בקידוד SHA256 בקידוד Base16

תקף: TO_HEX(SHA256("daní"))

לא חוקי: TO_HEX(SHA256("Daní"))

שם משפחה

  • הסרת רווחים לבנים
  • יש להשתמש באותיות קטנות בלבד
  • יש להסיר את כל הקידומות, כגון Jr.
  • אין't להסיר סימנים דיאקריטיים – לדוגמה, è , é , ê או ë
  • גיבוב (hashing): בקידוד SHA256 בקידוד Base16

תקף: TO_HEX(SHA256("delacruz"))

לא חוקי: TO_HEX(SHA256("de la Cruz, Jr."))

מדינה

  • צריך לכלול את קוד המדינה גם אם כל נתוני הלקוחות הם מאותה מדינה.
  • אין לבצע גיבוב של נתוני מדינה
  • יש להשתמש בקודי מדינה לפי תקן ISO 3166-1 alpha-2
  • גיבוב (hashing): ללא

תקף: US

לא חוקי: United States of America או USA

מיקוד

  • אין לבצע גיבוב של נתוני מיקוד
  • ניתן להזין מיקוד של ארה"ב וגם של מדינות אחרות
  • בארה"ב:
    • מותר להשתמש בקודים בני 5 ספרות. לדוגמה: 94043
    • מותר גם להזין מיקוד בן 5 ספרות בתוספת של 4 ספרות. לדוגמה: 94043-1351 או 940431351
  • בכל שאר המדינות:
    • אין צורך בעיצוב (אין צורך באותיות קטנות או להסיר רווחים ותווים מיוחדים)
    • אין לכלול תוספות למיקוד
  • גיבוב (hashing): ללא

אימות Hash וקידוד נתונים

תוכלו להשתמש בסקריפטים הבאים לאימות הגיבוב כדי לוודא שהנתונים שלכם בפורמט הנכון.

JavaScript

בסיס16

/**
 * @fileoverview Provides the hashing algorithm for User-Provided Data Match, as
 * well as some valid hashes of sample data for testing.
*/

async function hash(token) {
  const formattedToken = token.trim().toLowerCase();
  const hashArrayBuffer = await crypto.subtle.digest(
      'SHA-256', (new TextEncoder()).encode(formattedToken));
  return Array.from(new Uint8Array(hashArrayBuffer))
      .map((b) => b.toString(16).padStart(2, '0'))
      .join('');
}

function main() {
  // Expected hash for test@gmail.com:
  // 87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674
  hash('test@gmail.com').then(result => console.log(result));

  // Expected hash for +18005551212:
  // 61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44
  hash('+18005551212').then(result => console.log(result));

  // Expected hash for John:
  // 96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a
  hash('John').then(result => console.log(result));

  // Expected hash for Doe:
  // 799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f
  hash('Doe').then(result => console.log(result));
}

main()

Base64

/**
 * @fileoverview Provides the hashing algorithm, as well as some valid hashes of
 * sample data for testing.
*/

async function hash(token) {
  const formattedToken = token.trim().toLowerCase();
  const hashBuffer = await crypto.subtle.digest(
      'SHA-256', (new TextEncoder()).encode(formattedToken));
  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

בסיס16

"""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': 87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674
  - Phone '+18005551212':   61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44
  - First name 'John':      96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a
  - Last name 'Doe':        799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f
"""

import base64
import hashlib

def updm_hash(token):
  return hashlib.sha256(token.strip().lower().encode('utf-8')).hexdigest()

def print_updm_hash(token):
  print('Hash: "{}"\t(Token: {})'.format(updm_hash(token), token))

def main():
  print_updm_hash('test@gmail.com')
  print_updm_hash('+18005551212')
  print_updm_hash('John')
  print_updm_hash('Doe')

if __name__ == '__main__':
  main()

Base64

"""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):
  return base64.b64encode(
      hashlib.sha256(
          token.strip().lower().encode('utf-8')).digest()).decode('utf-8')

def print_hash(token, expected=None):
  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():
  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()

מעבר לאפליקציה

בסיס16

/*
Provides the hashing algorithm, as well as some valid hashes of sample data for testing.

Sample hashes:

  - Email 'test@gmail.com': 87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674
  - Phone '+18005551212':   61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44
  - First name 'John':      96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a
  - Last name 'Doe':        799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f
*/
package main

import (
  "crypto/sha256"
  "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 := fmt.Sprintf("%x", 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")
}

Base64

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

בסיס16

package updm.hashing;

import static java.nio.charset.StandardCharsets.UTF_8;

import com.google.common.base.Ascii;
import com.google.common.hash.Hashing;

/**
 * Example of the UPDM hashing algorithm using hex-encoded SHA-256.
*
* <p>This uses the Guava Hashing to generate the hash: https://github.com/google/guava
*
* <p>Sample valid hashes:
*
* <ul>
*   <li>Email "test@gmail.com": "87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674"
*   <li>Phone "+18005551212": "61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44"
*   <li>First name "John": "96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a"
*   <li>Last name "Doe": "799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f"
* </ul>
*/
public final class HashExample {

  private HashExample() {}

  public static String hash(String token) {
    String formattedToken = Ascii.toLowerCase(token).strip();
    return Hashing.sha256().hashString(formattedToken, UTF_8).toString();
  }

  public static void printHash(String token) {
    System.out.printf("Hash: \"%s\"\t(Token: %s)\n", hash(token), token);
  }

  public static void main(String[] args) {
    printHash("test@gmail.com");
    printHash("+18005551212");
    printHash("John");
    printHash("Doe");
  }
}

Base64

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) {
  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) {
  System.out.printf("Hash: \"%s\"\t(Token: %s)\n", hash(token), token);
}

public static void main(String[] args) {
  printHash("test@gmail.com");
  printHash("+18005551212");
  printHash("John");
  printHash("Doe");
}
}

SQL

בסיס16

/*
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': 87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674
  - Phone '+18005551212':   61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44
  - First name 'John':      96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a
  - Last name 'Doe':        799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f

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

CREATE TABLE `your_project_name.your_dataset_name.output_hashed_table_name`
AS
SELECT
  UserID,
  TO_HEX(SHA256(LOWER(Email))) AS Email,
  TO_HEX(SHA256(Phone)) AS Phone,
  TO_HEX(SHA256(LOWER(FirstName))) AS FirstName,
  TO_HEX(SHA256(LOWER(LastName))) AS LastName,
  PostalCode,
  CountryCode,
FROM
  `your_project_name.your_dataset_name.input_unhashed_table_name`;

Base64

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

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. Phone
  7. כתובת אימייל (הגרועה ביותר)

יצירת טבלת התאמה

  1. לוחצים על חיבורים > התאמת נתונים > יצירת חיבור.
  2. בוחרים מקור נתונים ולוחצים על התחברות. מבצעים אימות אם מוצגת בקשה לעשות זאת ולוחצים על הבא.
  3. מגדירים את מקור הנתונים ולוחצים על הבא:

    BigQuery

    בחירת הטבלה ב-BigQuery לייבוא.

    Cloud Storage

    יש להזין את נתיב הקובץ gsutil, למשל gs://my-bucket/folder/, ולבחור את הפורמט של הקובץ.

    Salesforce

    בקרוב

  4. מגדירים את destination ולוחצים על Next:
    1. תוכלו לבחור מערך נתונים חדש ל-BigQuery שישמש כיעד מתווך לנתונים. שלב זה מבטיח שהנתונים יעוצבו בצורה נכונה.
  5. אופציונלי: משנים את הפורמט של הנתונים. הטרנספורמציות כוללות גיבוב (hash) של מחשוב, פורמט אותיות רישיות/קטנות, ומיזוג/פיצול של שדות.
    1. לוחצים על פעולה > > טרנספורמציה.
    2. בחלונית שקופצת, לוחצים על הוספת שינוי או על הוספת עוד המרה
    3. בתפריט הנפתח, בוחרים את סוג הטרנספורמציה ומזינים את הדרישות.
    4. לוחצים על שמירה.
  6. עליך לבחור לפחות מפתח צירוף אחד כדי למפות את השדות שבהם ייעשה שימוש, ואז ללחוץ על הבא.
  7. מגדירים לוח זמנים:
    1. לתת שם לחיבור.
    2. הגדירו תדירות, והיא קובעת את תדירות הייבוא של הנתונים למערך הנתונים שבחרתם בשלב הקודם. כל הפעלה תחליף את הנתונים שבטבלה destination.
    3. מציינים את אופן הטיפול בהתנגשויות של מזהי משתמשים. תוכלו לבחור אם לשמור את ההתאמה הקיימת או להחליף אותה בנתונים חדשים.
  8. לוחצים על סיום.

הצגת פרטי החיבור

בדף פרטי החיבור מופיע מידע על הפעלות ושגיאות שבוצעו לאחרונה. כדי להציג פרטים לגבי חיבור ספציפי:

  1. לוחצים על חיבורים > התאמת נתונים.
  2. לוחצים על שם החיבור כדי להציג את פרטיו.
  3. עכשיו אפשר לראות את פרטי החיבור ואת ההפעלות האחרונות. כל שגיאה מציגה שני סוגי שגיאות אפשריים: רמת החיבור (החיבור לא פועל) ושגיאות ברמת השורה (שורה לא יובאה).
    1. סטטוס נכשל מציין שהחיבור כולו נכשל (למשל, בעיה בהרשאות של חשבון השירות). לוחצים על סטטוס השגיאה כדי לראות אילו שגיאות השפיעו על החיבור.
    2. סטטוס הושלם מציין שהחיבור הצליח. עם זאת, עדיין יכולות להיות שגיאות ברמת השורה – מסומנות בערך שאינו אפס בעמודה &;שורות עם שגיאות. לחצו על הערך כדי לקבל מידע נוסף על הרשומות שנכשלו.

עריכת חיבור

אין עדיין אפשרות לערוך חיבורים. כדי לשנות חיבור, צריך ליצור חיבור חדש ולמחוק את החיבור הישן.

הרצת שאילתות בנתונים ב-Ads Data Hub

הרצת שאילתות בטבלאות ההתאמה

כשטבלאות ההתאמה מכילות מספיק נתונים כדי למלא את בדיקות הפרטיות, אתם מוכנים להריץ שאילתות על גבי הטבלאות. כל טבלה בסכימת Ads Data Hub שמכילה את השדה user_id מלווה בטבלה *_match. לדוגמה, בטבלה adh.google_ads_impressions, מערכת Ads Data Hub יוצרת גם טבלת התאמה בשם adh.google_ads_impressions_match המכילה רק מזהי משתמשים. הטבלאות האלה כוללות קבוצת משנה של המשתמשים שזמינים בטבלאות המקוריות, ושם נמצא התאמה בuser_id. לדוגמה, אם הטבלה המקורית מכילה נתונים לגבי משתמש א' ומשתמש ב', אבל רק משתמש א' תואם, משתמש ב' לא יהיה בטבלת ההתאמה.

טבלאות ההתאמה כוללות עמודה נוספת בשם external_cookie, המאחסנת את קובץ ה-cookie בתור ADGROUPCOUNT.

השדה external_cookie מכיל את המזהה שלך בתור ADGROUPCOUNT. צריך להעביר את מפתח ההצטרפות ל-kbps כדי לבצע התאמות מוצלחות.

JOIN ON 
  google_data_imp.external_cookie = CAST(my_data.user_id AS BYTES)

אפשר להשתמש בטבלאות של התאמות על ידי שליחת שאילתות ל-*_match צפיות בטבלאות של אירועים של מודעות. אם אתם משתמשים גם בהתאמת קובצי cookie, תוכלו לסנן לפי סוג התאמה בשאילתות. שימוש:

  • match_type = 1 להתאמות של קובצי cookie
  • match_type = 2 להתאמות של נתונים שסופקו על ידי משתמשים

הערך match_type מותר בשאילתות, אבל לא ניתן להחזיר את השדה הזה בתוצאות, לכן אין לכלול אותו בהצהרת SELECT הסופית.

שאילתות לדוגמה

ספירת משתמשים תואמים

שאילתה זו סופרת את מספר המשתמשים התואמים בטבלת החשיפות של Google Ads.

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

SELECT COUNT(DISTINCT user_id)
FROM adh.google_ads_impressions_match

ספירת משתמשים שתואמים לנתונים שסופקו על ידי משתמשים

שאילתה זו סופרת את מספר המשתמשים התואמים לפי סוג ההתאמה. הטבלאות של אירועי המודעות מכילות אירועים גם ממשתמשים מחוברים וגם ממשתמשים שאינם מחוברים. לכן, סינון לפי התאמה של נתונים שסופקו על ידי משתמשים יוביל רק להתאמה של משתמשים מחוברים.

/* Count user-provided data matched users by match type.
match_type = 1 for cookie matching
match_type = 2 for user-provided data matching */

SELECT
  match_type AS match_type,
  COUNT(DISTINCT user_id) AS user_cnt,
FROM 
  adh.google_ads_impressions_match
GROUP BY
  match_type

השאילתה הזו מראה איך לצרף נתונים מאינטראקציה ישירה עם נתוני Google Ads:

/* Join first-party data with Google Ads data. The external_cookie 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_match AS google_data_imp
LEFT JOIN
  `my_data`
ON 
  google_data_imp.external_cookie = CAST(my_data.user_id AS BYTES)
-- Uncomment the following line if cookie matching is enabled as well.
-- WHERE google_data_imp.match_type = 2
GROUP BY
  inventory_type

שאילתה זו סופרת את מספר המשתמשים שתואמים את הנתונים שסופקו על ידי משתמשים, מלבד משתמשים שתואמים את קובצי ה-cookie. חשוב לזכור שהטבלאות של אירועי מודעות כוללות אירועים גם ממשתמשים מחוברים וגם ממשתמשים שאינם מחוברים. לכן, סינון לפי התאמה של נתונים שסופקו על ידי משתמשים בלבד יוביל להתאמה רק למשתמשים מחוברים.

/* Count user-provided data matched users, excluding cookie matched users. */

SELECT 
  COUNT(DISTINCT user_id)
FROM 
  adh.google_ads_impressions_match
WHERE 
  match_type = 2

חיבורים

לעיתים קרובות, כדי לקבל תובנות חשובות לגבי פרסום, צריך לחבר נתונים ממספר מקורות. כדי לפתור את הבעיה הזו בצינור עיבוד הנתונים, נדרשת השקעה משמעותית של זמן והשקעה הנדסית. החיבורים מייעלים את התהליך בכך שהם מספקים ממשק שלב אחר שלב לייבוא, לטרנספורמציה ולכתיבת נתונים ל-BigQuery. אחרי שכותבים את הנתונים, אפשר להשתמש בהם בשאילתות של Ads Data Hub או בכל מוצר אחר שמגיע ל-BigQuery. העשרת השאילתות עם נתונים מאינטראקציה ישירה (First-Party) יכול לספק חוויות לקוח עשירות יותר, עמיד יותר בפני שינויים בתעשייה.

בנוסף, חיבורים נוצרים עם כלים שמאפשרים לכם להצפין ולשתף פרטים אישיים מזהים (PII) עם שותפים באופן שממוקד בפרטיות. לאחר בחירת העמודות שמכילות פרטים אישיים מזהים, מערכת הנתונים תצפין את הנתונים מאינטראקציה ישירה (First-Party) ותוכלו לייצא אותם או לקרוא אותם רק אם יש לכם הרשאה לעשות זאת.

ניתן להשתמש בחיבורים כדי לייבא נתונים מ:

לפעמים קשה לדעת אילו נתונים מאינטראקציה ישירה נדרשים לצורך מדידה או תרחיש לדוגמה מהרשת, כך שחיבורים מספקים רשימה מקיפה של תרחישים לדוגמה מוגדרים מראש. לאחר מכן, המערכת תנחה אתכם לאורך כל התהליך של חילוץ, שינוי וטעינה של נתונים.

ההבדלים בין הנתונים מאינטראקציה ישירה (First-Party) לבין נתונים תואמים

התהליך להגדרת טבלת התאמות שהמשתמשים סיפקו דומה ליצירת חיבור נתונים רגיל של צד ראשון באמצעות חיבורים. עם זאת, הדרישה לשני פרויקטים מבוססת על ההנחה שאתם מגדירים חיבורים לפני שאתם משתמשים בהתאמה של נתונים שסופקו על ידי משתמשים. אם אתם משתמשים רק בחיבורים ככלי להכנת נתונים, תוכלו להשתמש בפרויקט אחד של Google Cloud.

דרישות נוספות להתאמה של נתונים שסופקו על ידי משתמשים:

  • צריך להשתמש באימייל, בטלפון, בכתובת או בכל שילוב כמפתח הצטרפות.
  • עליך לציין כיצד יישוב התנגשויות עם user_id. תוכלו לבחור אם לשמור את ההתאמה הקיימת או להחליף אותה בנתונים חדשים.
  • צריך להשתמש בחשבון שירות UPDM בנוסף לחשבונות Fusion ו-dataproc.

תהליך העבודה של הנתונים של צד ראשון

יצירת חיבור

  1. לוחצים על חיבורים > הנתונים שלך מאינטראקציה ישירה > יצירת חיבור.
  2. מתחברים למקור נתונים. תתבקשו לבצע אימות.

    BigQuery

    ההרשאות מבוססות על חשבון Google שלכם, כך שלא נדרש אימות נוסף. מוודאים שלחשבונות השירות 'חיבורים' יש גישת קריאה לטבלה.

    Cloud Storage

    ההרשאות מבוססות על חשבון Google שלכם, כך שלא נדרש אימות נוסף. מוודאים שלחשבונות השירות 'חיבורים' יש גישת קריאה לקטגוריה של האחסון.

    Salesforce

    (בקרוב)

    כדי להיכנס לחשבון, יש להשתמש בפרטי הכניסה ל-Salesforce של הארגון. Google לא מאחסנת את פרטי הכניסה שלך, ולכן כל חיבור חדש ל-Salesforce ידרוש אימות מחדש.

  3. בוחרים תרחיש לדוגמה ומקש הצטרפות ולוחצים על בחירת תרחיש לדוגמה. אם לא רוצים לבחור תרחיש לדוגמה, לוחצים על דילוג. לא תהיה לך אפשרות לבחור תרחיש לדוגמה בהמשך.
  4. מגדירים את מקור הנתונים.

    BigQuery

    בחירת הטבלה ב-BigQuery לייבוא.

    Cloud Storage

    יש להזין את נתיב הקובץ gsutil, למשל gs://my-bucket/folder/, ולבחור את הפורמט של הקובץ.

    Salesforce

    בקרוב

  5. מגדירים את השדות יעד ומפה.
    • בוחרים את הפרויקט, מערך הנתונים והטבלה ב-Google Cloud שבהם רוצים לכתוב את התוצאות. מוודאים שלחשבונות השירות 'חיבורים' יש גישת כתיבה למערך הנתונים שאליו רוצים לכתוב.
    • כל חיבור ייצור טבלה חדשה לכתיבה. אם תבחרו טבלה שכבר קיימת, תופיע הודעת שגיאה.
    • מיפוי של שדות יעד (שדות שיופיעו בטבלה שאתם יוצרים) לשדות מקור בנתוני המקור:
  6. הגדרת לוח זמנים.
    1. לתת שם לחיבור.
    2. הגדירו תדירות, והיא קובעת את תדירות הייבוא של הנתונים למערך הנתונים שבחרתם בשלב הקודם. כל הפעלה תחליף את הנתונים שבטבלה destination.
  7. לוחצים על Done. יכול להיות שיחלפו כמה שעות עד שחיבורים שמעבדים כמויות גדולות של נתונים יימשכו.

הצגת פרטי החיבור

בדף פרטי החיבור מופיע מידע על הפעלות ושגיאות שבוצעו לאחרונה. כדי להציג פרטים לגבי חיבור ספציפי:

  1. לוחצים על חיבורים > הנתונים שלך מאינטראקציה ישירה.
  2. לוחצים על שם החיבור כדי להציג את פרטיו.
  3. עכשיו אפשר לראות את פרטי החיבור ואת ההפעלות האחרונות. כל שגיאה מציגה שני סוגי שגיאות אפשריים: רמת החיבור (החיבור לא פועל) ושגיאות ברמת השורה (שורה לא יובאה).
    1. סטטוס נכשל מציין שהחיבור כולו נכשל (למשל, בעיה בהרשאות של חשבון השירות). לוחצים על סטטוס השגיאה כדי לראות אילו שגיאות השפיעו על החיבור.
    2. סטטוס הושלם מציין שהחיבור הצליח. עם זאת, עדיין יכולות להיות שגיאות ברמת השורה – מסומנות בערך שאינו אפס בעמודה &;שורות עם שגיאות. לחצו על הערך כדי לקבל מידע נוסף על הרשומות שנכשלו.

עריכת חיבור

אין עדיין אפשרות לערוך חיבורים. כדי לשנות חיבור, צריך ליצור חיבור חדש ולמחוק את החיבור הישן.

תרחישים לדוגמה

התרחיש לדוגמה שתבחרו ישפיע על הסכימה של טבלת היעד ועל השדות העיקריים של מפתחי ההצטרפות שיובאו. עיינו בתרחישים לדוגמה שבהמשך כדי להבין איך הם משפיעים על הסכימה ומצטרפים למפתחות:

טווח הגעה ותדירות

מודדים את היקף החשיפה והתדירות של הקמפיינים בערוצים ובמכשירים שונים, לפי פילוחי המשתמשים של הדומיין.

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
gender מגדר string אופציונלי
age גיל int אופציונלי
עיר עיר string אופציונלי
country מדינה string אופציונלי
מצב מחזור החיים מצב המשפך של הלקוח: לא ידוע, תהליך ההצטרפות, התעניינות, הזמן הקצוב לתפוגה וכו' string אופציונלי
סטטוס_נאמנות כסף, זהב, פלטינה, יהלום וכו' string אופציונלי
תאריך_רכישה_אחרון תאריך הרכישה האחרונה (חותמת זמן של Unix epoch) int אופציונלי
last_purchase_product [המוצר_האחרון] רכישה / צריכה של המוצר לאחרונה string אופציונלי
last_contacted_date תאריך יצירת הקשר / האינטראקציה האחרונה (חותמת זמן של Unix) int אופציונלי
ערך חיי המשתמש (LTV) ערך חיי משתמש של לקוח int אופציונלי
subscription_type [סוג_המינוי] מוצר משנה / סוג מינוי שיש ללקוח – למשל, דה-לוקס, חבילה משפחתית string אופציונלי
מזהה_עסקה מזהה ייחודי עבור העסקה string אופציונלי
תאריך_עסקה תאריך העסקה (חותמת זמן של יוניקס) int אופציונלי
הכנסות_עסקה הכנסה מהעסקה int אופציונלי
currency סוג המטבע של העסקה string אופציונלי
quantity כמות הפריטים בעסקה string אופציונלי
price מחיר לכל פריט בעסקה int אופציונלי
עלות_עסקה עלות הסחורות או השירותים מהעסקה int אופציונלי
מזהה_עסקה רווח ברוטו מהעסקה int אופציונלי
product_id מק"ט / מזהה של המוצרים בעסקה string אופציונלי
תיאור_עסקה תיאור / מטא-נתונים אחרים / פרמטרים של העסקה string אופציונלי
event_type לדוגמה, חשיפה של מודעת טלוויזיה, אימייל שיווקי, ביקור באתר, ביקור בחנות פיזית וכו'. string אופציונלי
event_id המזהה הייחודי של האירוע שלמעלה string אופציונלי
event_timestamp תאריך האירוע (חותמת זמן של יוניקס) int אופציונלי
Channel_metadata מטא-נתונים נוספים או מידע נוסף על ערוץ נקודת המגע הזה string אופציונלי

ייחוס לכמה נקודות מגע

כדי למדוד את השיוך, צריך לשלב את נקודות המגע עם הלקוח עם נקודת המגע עם הלקוח מנתוני Google.

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
event_type לדוגמה, חשיפה של מודעת טלוויזיה, אימייל שיווקי, ביקור באתר, ביקור בחנות פיזית וכו'. string נדרש
event_id המזהה הייחודי של האירוע שלמעלה string נדרש
event_timestamp תאריך האירוע (חותמת זמן של יוניקס) int נדרש
זיכוי ערך הקרדיט (משמש לשיוך) – למשל מספר ההמרות int אופציונלי
Channel_metadata מטא-נתונים נוספים או מידע נוסף על ערוץ נקודת המגע הזה string אופציונלי

מדדי ביצועים

מודדים את ביצועי הקמפיין לפי פלחים דמוגרפיים, תחומי עניין משותפים או פלחי משתמשים של צד ראשון.

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
gender מגדר string אופציונלי
age גיל int אופציונלי
עיר עיר string אופציונלי
country מדינה string אופציונלי
מצב מחזור החיים מצב המשפך של הלקוח: לא ידוע, תהליך ההצטרפות, התעניינות, הזמן הקצוב לתפוגה וכו' string אופציונלי
סטטוס_נאמנות כסף, זהב, פלטינה, יהלום וכו' string אופציונלי
תאריך_רכישה_אחרון תאריך הרכישה האחרונה (חותמת זמן של Unix epoch) int אופציונלי
last_purchase_product [המוצר_האחרון] רכישה / צריכה של המוצר לאחרונה string אופציונלי
last_contacted_date תאריך יצירת הקשר / האינטראקציה האחרונה (חותמת זמן של Unix) int אופציונלי
ערך חיי המשתמש (LTV) ערך חיי משתמש של לקוח int אופציונלי
subscription_type [סוג_המינוי] מוצר משנה / סוג מינוי שיש ללקוח – למשל, דה-לוקס, חבילה משפחתית string אופציונלי

נתיב לייחוס המרות

ניתוח הביצועים של נתיבי המרות באמצעות נקודות מגע עם הלקוח בהתאמה אישית, כולל נקודות המגע עם הלקוח מצד ראשון.

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
event_type לדוגמה, חשיפה של מודעת טלוויזיה, אימייל שיווקי, ביקור באתר, ביקור בחנות פיזית וכו'. string נדרש
event_id המזהה הייחודי של האירוע שלמעלה string נדרש
event_timestamp תאריך האירוע (חותמת זמן של יוניקס) int נדרש
זיכוי ערך הקרדיט (משמש לשיוך) – למשל מספר ההמרות int אופציונלי
Channel_metadata מטא-נתונים נוספים או מידע נוסף על ערוץ נקודת המגע הזה string אופציונלי

חפיפה בין בעלי תוכן דיגיטלי

ניתוח היקף החשיפה והתדירות של קמפיינים לפי בעלי תוכן דיגיטלי שנבחרו על ידי פלחי משתמשים של צדדים שלישיים.

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
gender מגדר string אופציונלי
age גיל int אופציונלי
עיר עיר string אופציונלי
country מדינה string אופציונלי
מצב מחזור החיים מצב המשפך של הלקוח: לא ידוע, תהליך ההצטרפות, התעניינות, הזמן הקצוב לתפוגה וכו' string אופציונלי
סטטוס_נאמנות כסף, זהב, פלטינה, יהלום וכו' string אופציונלי
תאריך_רכישה_אחרון תאריך הרכישה האחרונה (חותמת זמן של Unix epoch) int אופציונלי
last_purchase_product [המוצר_האחרון] רכישה / צריכה של המוצר לאחרונה string אופציונלי
last_contacted_date תאריך יצירת הקשר / האינטראקציה האחרונה (חותמת זמן של Unix) int אופציונלי
ערך חיי המשתמש (LTV) ערך חיי משתמש של לקוח int אופציונלי
subscription_type [סוג_המינוי] מוצר משנה / סוג מינוי שיש ללקוח – למשל, דה-לוקס, חבילה משפחתית string אופציונלי

ביצועי הקמפיין בו-זמנית

מודדים את השפעת הביצועים של החשיפה לקמפיינים מקבילים, מפולחים לפי פלחי המשתמשים מאינטראקציות ישירות.

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
gender מגדר string אופציונלי
age גיל int אופציונלי
עיר עיר string אופציונלי
country מדינה string אופציונלי
מצב מחזור החיים מצב המשפך של הלקוח: לא ידוע, תהליך ההצטרפות, התעניינות, הזמן הקצוב לתפוגה וכו' string אופציונלי
סטטוס_נאמנות כסף, זהב, פלטינה, יהלום וכו' string אופציונלי
תאריך_רכישה_אחרון תאריך הרכישה האחרונה (חותמת זמן של Unix epoch) int אופציונלי
last_purchase_product [המוצר_האחרון] רכישה / צריכה של המוצר לאחרונה string אופציונלי
last_contacted_date תאריך יצירת הקשר / האינטראקציה האחרונה (חותמת זמן של Unix) int אופציונלי
ערך חיי המשתמש (LTV) ערך חיי משתמש של לקוח int אופציונלי
subscription_type [סוג_המינוי] מוצר משנה / סוג מינוי שיש ללקוח – למשל, דה-לוקס, חבילה משפחתית string אופציונלי
מזהה_עסקה מזהה ייחודי עבור העסקה string אופציונלי
תאריך_עסקה תאריך העסקה (חותמת זמן של יוניקס) int אופציונלי
הכנסות_עסקה הכנסה מהעסקה int אופציונלי
currency סוג המטבע של העסקה string אופציונלי
quantity כמות הפריטים בעסקה string אופציונלי
price מחיר לכל פריט בעסקה int אופציונלי
עלות_עסקה עלות הסחורות או השירותים מהעסקה int אופציונלי
מזהה_עסקה רווח ברוטו מהעסקה int אופציונלי
product_id מק"ט / מזהה של המוצרים בעסקה string אופציונלי
תיאור_עסקה תיאור / מטא-נתונים אחרים / פרמטרים של העסקה string אופציונלי
event_type לדוגמה, חשיפה של מודעת טלוויזיה, אימייל שיווקי, ביקור באתר, ביקור בחנות פיזית וכו'. string אופציונלי
event_id המזהה הייחודי של האירוע שלמעלה string אופציונלי
event_timestamp תאריך האירוע (חותמת זמן של יוניקס) int אופציונלי
Channel_metadata מטא-נתונים נוספים או מידע נוסף על ערוץ נקודת המגע הזה string אופציונלי

השוואת קמפיינים

להשוות את הביצועים בין קמפיינים ב-Google לבין מפרסמים אחרים.

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
ערוץ הערוץ שבו הקמפיין הזה פעל (למשל, Facebook, טלוויזיה וכו') string נדרש
שותף שם השותף, אם יש מעורבות string אופציונלי
טקטיקה שם טקטיקה ספציפית string אופציונלי
campaign_metadata מטא-נתונים נוספים או מידע נוסף על הקמפיין הזה string אופציונלי
תאריך תאריך של פעילות הקמפיין (חותמת זמן של יוניקס) int נדרש
חשיפות מספר החשיפות מהקמפיין הזה בתאריך הזה int נדרש
קליקים מספר הקליקים מהקמפיין הזה בתאריך הזה int נדרש
המרות מספר ההמרות מהקמפיין הזה בתאריך הזה int נדרש
עלות העלות הכוללת מהקמפיין הזה בתאריך הזה int נדרש

השוואה בין תוויות וקהלים

מבחינים בחפיפה בין פלחי משתמשים של צד ראשון לפלחי קהל עם תחום עניין משותף ופלחים של קהל היעד עם כוונת רכישה.

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
gender מגדר string אופציונלי
age גיל int אופציונלי
עיר עיר string אופציונלי
country מדינה string אופציונלי
מצב מחזור החיים מצב המשפך של הלקוח: לא ידוע, תהליך ההצטרפות, התעניינות, הזמן הקצוב לתפוגה וכו' string אופציונלי
סטטוס_נאמנות כסף, זהב, פלטינה, יהלום וכו' string אופציונלי
תאריך_רכישה_אחרון תאריך הרכישה האחרונה (חותמת זמן של Unix epoch) int אופציונלי
last_purchase_product [המוצר_האחרון] רכישה / צריכה של המוצר לאחרונה string אופציונלי
last_contacted_date תאריך יצירת הקשר / האינטראקציה האחרונה (חותמת זמן של Unix) int אופציונלי
ערך חיי המשתמש (LTV) ערך חיי משתמש של לקוח int אופציונלי
subscription_type [סוג_המינוי] מוצר משנה / סוג מינוי שיש ללקוח – למשל, דה-לוקס, חבילה משפחתית string אופציונלי

ניתוח המרות באפליקציות

מודדים את ההשפעה של הקמפיין על ההתנהגות בתוך האפליקציה.

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
תאריך תאריך של פעילות האפליקציה לנייד (חותמת זמן של יוניקס) int נדרש
התקנה ערך בוליאני שמייצג אם אירוע התקנה נרשם ביום הזה boolean נדרש
הרשמה ערך בוליאני שמייצג אם אירוע הרשמה נרשם ביום הזה boolean נדרש
login ערך בוליאני שמציין אם נרשם אירוע התחברות ביום הזה boolean נדרש
in_app_purchases סך כל הרכישות מתוך האפליקציה ביום הזה int נדרש

חישוב החזר ROI

מדידת החזרות מצטברות על סמך נתוני ההמרות מאינטראקציה ישירה.

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
מזהה_עסקה מזהה ייחודי עבור העסקה string נדרש
תאריך_עסקה תאריך העסקה (חותמת זמן של יוניקס) int נדרש
הכנסות_עסקה הכנסה מהעסקה int נדרש
currency סוג המטבע של העסקה string אופציונלי
quantity כמות הפריטים בעסקה string אופציונלי
price מחיר לכל פריט בעסקה int אופציונלי
עלות_עסקה עלות הסחורות או השירותים מהעסקה int אופציונלי
מזהה_עסקה רווח ברוטו מהעסקה int אופציונלי
product_id מק"ט / מזהה של המוצרים בעסקה string אופציונלי
תיאור_עסקה תיאור / מטא-נתונים אחרים / פרמטרים של העסקה string אופציונלי

הפעלה של קהל בהתאמה אישית

יצירה והפעלה של פלחי משתמשים בהתאמה אישית על סמך נתונים מאינטראקציה ישירה (First-Party) ונתוני Google

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
gender מגדר string אופציונלי
age גיל int אופציונלי
עיר עיר string אופציונלי
country מדינה string אופציונלי
מצב מחזור החיים מצב המשפך של הלקוח: לא ידוע, תהליך ההצטרפות, התעניינות, הזמן הקצוב לתפוגה וכו' string אופציונלי
סטטוס_נאמנות כסף, זהב, פלטינה, יהלום וכו' string אופציונלי
תאריך_רכישה_אחרון תאריך הרכישה האחרונה (חותמת זמן של Unix epoch) int אופציונלי
last_purchase_product [המוצר_האחרון] רכישה / צריכה של המוצר לאחרונה string אופציונלי
last_contacted_date תאריך יצירת הקשר / האינטראקציה האחרונה (חותמת זמן של Unix) int אופציונלי
ערך חיי המשתמש (LTV) ערך חיי משתמש של לקוח int אופציונלי
subscription_type [סוג_המינוי] מוצר משנה / סוג מינוי שיש ללקוח – למשל, דה-לוקס, חבילה משפחתית string אופציונלי

הצעות מחיר מותאמות אישית

אופטימיזציה של שיטות הבידינג ב-Display &Video 360 על סמך הנתונים מאינטראקציה ישירה (First-Party) ונתוני Google

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
gender מגדר string אופציונלי
age גיל int אופציונלי
עיר עיר string אופציונלי
country מדינה string אופציונלי
מצב מחזור החיים מצב המשפך של הלקוח: לא ידוע, תהליך ההצטרפות, התעניינות, הזמן הקצוב לתפוגה וכו' string אופציונלי
סטטוס_נאמנות כסף, זהב, פלטינה, יהלום וכו' string אופציונלי
תאריך_רכישה_אחרון תאריך הרכישה האחרונה (חותמת זמן של Unix epoch) int אופציונלי
last_purchase_product [המוצר_האחרון] רכישה / צריכה של המוצר לאחרונה string אופציונלי
last_contacted_date תאריך יצירת הקשר / האינטראקציה האחרונה (חותמת זמן של Unix) int אופציונלי
ערך חיי המשתמש (LTV) ערך חיי משתמש של לקוח int אופציונלי
subscription_type [סוג_המינוי] מוצר משנה / סוג מינוי שיש ללקוח – למשל, דה-לוקס, חבילה משפחתית string אופציונלי

ביצועים של בעלי אתרים שונים

מדידת מדדי ביצועים פרוסים על ידי בעל התוכן הדיגיטלי, או פילוח לפי בעל תוכן דיגיטלי ופילוחי המשתמשים של צד ראשון

שם השדה תיאור סוג חובה/אופציונלי
מפתח צירוף השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש string נדרש
gender מגדר string אופציונלי
age גיל int אופציונלי
עיר עיר string אופציונלי
country מדינה string אופציונלי
מצב מחזור החיים מצב המשפך של הלקוח: לא ידוע, תהליך ההצטרפות, התעניינות, הזמן הקצוב לתפוגה וכו' string אופציונלי
סטטוס_נאמנות כסף, זהב, פלטינה, יהלום וכו' string אופציונלי
תאריך_רכישה_אחרון תאריך הרכישה האחרונה (חותמת זמן של Unix epoch) int אופציונלי
last_purchase_product [המוצר_האחרון] רכישה / צריכה של המוצר לאחרונה string אופציונלי
last_contacted_date תאריך יצירת הקשר / האינטראקציה האחרונה (חותמת זמן של Unix) int אופציונלי
ערך חיי המשתמש (LTV) ערך חיי משתמש של לקוח int אופציונלי
subscription_type [סוג_המינוי] מוצר משנה / סוג מינוי שיש ללקוח – למשל, דה-לוקס, חבילה משפחתית string אופציונלי