סקירה כללית
פלטפורמת UPDM (התאמה לנתונים שסופקו על ידי משתמשים) מאחדת נתונים מאינטראקציה ישירה (First-Party) שנאספו על-ידי המשתמש, כמו מידע מהאתרים, האפליקציות או החנויות הפיזיות שלכם, עם אותה פעילות של משתמש מחובר בנתוני המודעות של Google, למעט הפלטפורמה של Google Marketing Platform. כדי לעמוד בדרישות לשימוש בהתאמת נתונים שהמשתמשים סיפקו, צריך לקשר את אירוע המודעה למשתמש שמחובר לנתוני המודעות ב-Google.
להתאמה של נתונים שסופקו על ידי משתמשים יש כמה יתרונות ייחודיים על פני צורות אחרות של התאמה ללקוחות. התאמה לנתונים שסופקו על ידי משתמשים:
- המכשיר עמיד יותר לשינויים בתעשייה מאשר נתונים של צד שלישי
- אין השפעה על ההוצאה הצפויה של קובצי cookie של צד שלישי, משום שהתאמת הנתונים שסופקו על ידי משתמשים זמינה רק במלאי שטחי פרסום שמופעל על ידי Google ומופעל על ידי משתמשים מחוברים
- יכול לספק חוויות לקוח רלוונטיות יותר, וכתוצאה מכך הגברת המעורבות של הלקוחות
- מאפשר קבלת תובנות מעמיקות יותר על הלקוחות
סיכום תהליך
אחרי שמפעילים התאמה של נתונים שהמשתמשים סיפקו בחשבון, יש שני שלבים לשימוש מתמשך בתכונה:
- נתונים מאינטראקציה ישירה הטמעת נתונים ב-Ads Data Hub
- אתם מעצבים ומעלים את הנתונים מאינטראקציה ישירה (First-Party) למערך הנתונים של BigQuery. אתם יכולים להשתמש בכל מערך נתונים שבבעלותכם ב-BigQuery, למעט פרויקט האדמין שלכם.
- התחלת בקשה להתאמת נתונים על ידי יצירת חיבור ותזמון ייבוא.
- Google מאחדת נתונים בין הפרויקט שלך לבין נתונים בבעלות Google, שכוללים את מזהה המשתמש של Google& נתונים מגובבים (hashed) של משתמשים, כדי ליצור ולעדכן טבלאות של
*_match
.
- שאילתות מתמשכות ב-Ads Data Hub מבוססות על נתונים תואמים
- אפשר להריץ שאילתות על טבלאות
*_match
באותו אופן שבו הרצת שאילתות רגילות ב-Ads Data Hub.
פרויקטים של מקור נתונים ויעד
לשם כך, תצטרכו להשתמש בשני פרויקטים שונים ב-Google Cloud: פרויקט של מקור נתונים ופרויקט יעד.
- מקור נתונים: הפרויקט הזה מכיל את נתוני הפרסום הקנייניים שלך בפורמט הגולמי שלהם.
- יעד: זהו מערך הנתונים ב-BigQuery שאליו Ads Data Hub כותב. כברירת מחדל, זהו פרויקט מנהל המערכת שלכם. איך מגדירים חשבונות שירות?
הגבלות על פרטיות
איסוף נתוני לקוחות
כשמשתמשים בהתאמה של נתונים שסופקו על ידי משתמשים, צריך להעלות נתונים מאינטראקציה ישירה. זה יכול להיות מידע שאספתם מהאתרים, מהאפליקציות או מהחנויות הפיזיות שלכם, או כל מידע שהלקוח שיתף איתכם ישירות.
גודל הנתונים
כדי להגן על הפרטיות של משתמשי הקצה, התכונה 'התאמה לנתונים שנמסרים על ידי משתמשים' אוכפת את הדרישות האלה לגבי גודל הנתונים:
- עליך להעלות לפחות 1,000 רשומות לרשימת המשתמשים.
- כל עדכון מוצלח של טבלת ההתאמות חייב לכלול מספר מינימלי של משתמשים חדשים. התנהגות זו דומה לבדיקות שונות.
- הרשימה לא יכולה לחרוג ממספר הרשומות המרבי. כדי לקבל מידע על מגבלת הנתונים המקסימלית, אפשר לפנות לנציג Google.
הפעלת הכרטיסייה 'חיבורים'
לפני שמתחילים, צריך להגדיר את חשבון Ads Data Hub כך שיפעיל את הכרטיסייה חיבורים. שם צריך ליצור את צינור עיבוד הנתונים התואם. צריך לבצע את השלבים האלה פעם אחת בלבד.
- לנציג Google:
- מספר החשבון ב-Ads Data Hub שבו תשתמשו לצורך התאמת נתונים שהמשתמשים סיפקו.
- כתובת האימייל של משתמש-העל שיש לה גישה לפרויקט היעד שלך.
- ודאו עם הנציג שלכם ב-Google שהחשבון והמשתמש-העל נמצאים ברשימת ההיתרים.
מפעילים את Ads Data Connector API בפרויקט הייעודי שהוקצה ב-Google Cloud. כברירת מחדל, זהו פרויקט הניהול שלכם. כדי להשתמש בפרויקט אחר, מבצעים את השלבים האלה עם הפרויקט החלופי ב-Google Cloud בתור הפרויקט מקור נתונים. צריך לבצע את השלבים האלה כשאתם מחוברים כמשתמשים-על של רשימת ההיתרים.
- נכנסים לספריית ה-API ב-Cloud Console.
- בוחרים את פרויקט מקור הנתונים מהרשימה.
- מחפשים את "Ads Data Connector API". אם ה-Ads Data Connector API לא מופיע בתוצאות החיפוש, יכול להיות שחשבון Google שאליו נכנסתם הוא לא משתמש-העל שנכלל ברשימת ההיתרים.
- בדף ה-API לוחצים על הפעלה.
- מוודאים מול נציג Google שה-API מופעל.
הנציג שלכם ב-Google ישלח לכם שלוש כתובות אימייל שמשויכות לחשבונות Datafusion, Dataproc ו-UPDM.
סעיף חיבורים חדש יופיע גם בחשבון Ads Data Hub שלכם, ויכלול כרטיסיות בשם הנתונים שלך מאינטראקציה ישירה והתאמה של נתונים. מידע על תרחישים לדוגמה לכל כרטיסייה.
מעניקים את ההרשאות המתאימות לחשבונות השירות. כדי לקבל הסבר לגבי חשבונות השירות השונים וההרשאות הדרושות להם, בוחרים את מקור הנתונים בטבלה:
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`;
מפתחות הצטרפות
שילובים מסוימים של נתונים שסופקו על ידי משתמשים חזקים יותר מאחרים. הנה רשימה של שילובים שונים של נתונים שסופקו על ידי משתמשים, ומדורגים לפי חוזק יחסי:
- אימייל, טלפון, כתובת (החזקה ביותר)
- טלפון, כתובת
- כתובת אימייל
- אימייל, טלפון
- כתובת
- Phone
- כתובת אימייל (הגרועה ביותר)
יצירת טבלת התאמה
- לוחצים על חיבורים > התאמת נתונים > יצירת חיבור.
- בוחרים מקור נתונים ולוחצים על התחברות. מבצעים אימות אם מוצגת בקשה לעשות זאת ולוחצים על הבא.
- מגדירים את מקור הנתונים ולוחצים על הבא:
BigQuery
בחירת הטבלה ב-BigQuery לייבוא.
Cloud Storage
יש להזין את נתיב הקובץ gsutil, למשל
gs://my-bucket/folder/
, ולבחור את הפורמט של הקובץ.Salesforce
בקרוב
- מגדירים את destination ולוחצים על Next:
- תוכלו לבחור מערך נתונים חדש ל-BigQuery שישמש כיעד מתווך לנתונים. שלב זה מבטיח שהנתונים יעוצבו בצורה נכונה.
- אופציונלי: משנים את הפורמט של הנתונים. הטרנספורמציות כוללות גיבוב (hash) של מחשוב, פורמט אותיות רישיות/קטנות, ומיזוג/פיצול של שדות.
- לוחצים על פעולה > > טרנספורמציה.
- בחלונית שקופצת, לוחצים על הוספת שינוי או על הוספת עוד המרה
- בתפריט הנפתח, בוחרים את סוג הטרנספורמציה ומזינים את הדרישות.
- לוחצים על שמירה.
- עליך לבחור לפחות מפתח צירוף אחד כדי למפות את השדות שבהם ייעשה שימוש, ואז ללחוץ על הבא.
- מגדירים לוח זמנים:
- לתת שם לחיבור.
- הגדירו תדירות, והיא קובעת את תדירות הייבוא של הנתונים למערך הנתונים שבחרתם בשלב הקודם. כל הפעלה תחליף את הנתונים שבטבלה destination.
- מציינים את אופן הטיפול בהתנגשויות של מזהי משתמשים. תוכלו לבחור אם לשמור את ההתאמה הקיימת או להחליף אותה בנתונים חדשים.
- לוחצים על סיום.
הצגת פרטי החיבור
בדף פרטי החיבור מופיע מידע על הפעלות ושגיאות שבוצעו לאחרונה. כדי להציג פרטים לגבי חיבור ספציפי:
- לוחצים על חיבורים > התאמת נתונים.
- לוחצים על שם החיבור כדי להציג את פרטיו.
- עכשיו אפשר לראות את פרטי החיבור ואת ההפעלות האחרונות. כל שגיאה מציגה שני סוגי שגיאות אפשריים: רמת החיבור (החיבור לא פועל) ושגיאות ברמת השורה (שורה לא יובאה).
- סטטוס נכשל מציין שהחיבור כולו נכשל (למשל, בעיה בהרשאות של חשבון השירות). לוחצים על סטטוס השגיאה כדי לראות אילו שגיאות השפיעו על החיבור.
- סטטוס הושלם מציין שהחיבור הצליח. עם זאת, עדיין יכולות להיות שגיאות ברמת השורה – מסומנות בערך שאינו אפס בעמודה &;שורות עם שגיאות. לחצו על הערך כדי לקבל מידע נוסף על הרשומות שנכשלו.
עריכת חיבור
אין עדיין אפשרות לערוך חיבורים. כדי לשנות חיבור, צריך ליצור חיבור חדש ולמחוק את החיבור הישן.
הרצת שאילתות בנתונים ב-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
להתאמות של קובצי cookiematch_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) ותוכלו לייצא אותם או לקרוא אותם רק אם יש לכם הרשאה לעשות זאת.
ניתן להשתמש בחיבורים כדי לייבא נתונים מ:
- BigQuery
- Cloud Storage
- Salesforce (בקרוב)
לפעמים קשה לדעת אילו נתונים מאינטראקציה ישירה נדרשים לצורך מדידה או תרחיש לדוגמה מהרשת, כך שחיבורים מספקים רשימה מקיפה של תרחישים לדוגמה מוגדרים מראש. לאחר מכן, המערכת תנחה אתכם לאורך כל התהליך של חילוץ, שינוי וטעינה של נתונים.
ההבדלים בין הנתונים מאינטראקציה ישירה (First-Party) לבין נתונים תואמים
התהליך להגדרת טבלת התאמות שהמשתמשים סיפקו דומה ליצירת חיבור נתונים רגיל של צד ראשון באמצעות חיבורים. עם זאת, הדרישה לשני פרויקטים מבוססת על ההנחה שאתם מגדירים חיבורים לפני שאתם משתמשים בהתאמה של נתונים שסופקו על ידי משתמשים. אם אתם משתמשים רק בחיבורים ככלי להכנת נתונים, תוכלו להשתמש בפרויקט אחד של Google Cloud.
דרישות נוספות להתאמה של נתונים שסופקו על ידי משתמשים:
- צריך להשתמש באימייל, בטלפון, בכתובת או בכל שילוב כמפתח הצטרפות.
- עליך לציין כיצד יישוב התנגשויות עם user_id. תוכלו לבחור אם לשמור את ההתאמה הקיימת או להחליף אותה בנתונים חדשים.
- צריך להשתמש בחשבון שירות UPDM בנוסף לחשבונות Fusion ו-dataproc.
תהליך העבודה של הנתונים של צד ראשון
יצירת חיבור
- לוחצים על חיבורים > הנתונים שלך מאינטראקציה ישירה > יצירת חיבור.
- מתחברים למקור נתונים. תתבקשו לבצע אימות.
BigQuery
ההרשאות מבוססות על חשבון Google שלכם, כך שלא נדרש אימות נוסף. מוודאים שלחשבונות השירות 'חיבורים' יש גישת קריאה לטבלה.
Cloud Storage
ההרשאות מבוססות על חשבון Google שלכם, כך שלא נדרש אימות נוסף. מוודאים שלחשבונות השירות 'חיבורים' יש גישת קריאה לקטגוריה של האחסון.
Salesforce
(בקרוב)
כדי להיכנס לחשבון, יש להשתמש בפרטי הכניסה ל-Salesforce של הארגון. Google לא מאחסנת את פרטי הכניסה שלך, ולכן כל חיבור חדש ל-Salesforce ידרוש אימות מחדש.
- בוחרים תרחיש לדוגמה ומקש הצטרפות ולוחצים על בחירת תרחיש לדוגמה. אם לא רוצים לבחור תרחיש לדוגמה, לוחצים על דילוג. לא תהיה לך אפשרות לבחור תרחיש לדוגמה בהמשך.
- מגדירים את מקור הנתונים.
BigQuery
בחירת הטבלה ב-BigQuery לייבוא.
Cloud Storage
יש להזין את נתיב הקובץ gsutil, למשל
gs://my-bucket/folder/
, ולבחור את הפורמט של הקובץ.Salesforce
בקרוב
- מגדירים את השדות יעד ומפה.
- בוחרים את הפרויקט, מערך הנתונים והטבלה ב-Google Cloud שבהם רוצים לכתוב את התוצאות. מוודאים שלחשבונות השירות 'חיבורים' יש גישת כתיבה למערך הנתונים שאליו רוצים לכתוב.
- כל חיבור ייצור טבלה חדשה לכתיבה. אם תבחרו טבלה שכבר קיימת, תופיע הודעת שגיאה.
- מיפוי של שדות יעד (שדות שיופיעו בטבלה שאתם יוצרים) לשדות מקור בנתוני המקור:
- הגדרת לוח זמנים.
- לתת שם לחיבור.
- הגדירו תדירות, והיא קובעת את תדירות הייבוא של הנתונים למערך הנתונים שבחרתם בשלב הקודם. כל הפעלה תחליף את הנתונים שבטבלה destination.
- לוחצים על Done. יכול להיות שיחלפו כמה שעות עד שחיבורים שמעבדים כמויות גדולות של נתונים יימשכו.
הצגת פרטי החיבור
בדף פרטי החיבור מופיע מידע על הפעלות ושגיאות שבוצעו לאחרונה. כדי להציג פרטים לגבי חיבור ספציפי:
- לוחצים על חיבורים > הנתונים שלך מאינטראקציה ישירה.
- לוחצים על שם החיבור כדי להציג את פרטיו.
- עכשיו אפשר לראות את פרטי החיבור ואת ההפעלות האחרונות. כל שגיאה מציגה שני סוגי שגיאות אפשריים: רמת החיבור (החיבור לא פועל) ושגיאות ברמת השורה (שורה לא יובאה).
- סטטוס נכשל מציין שהחיבור כולו נכשל (למשל, בעיה בהרשאות של חשבון השירות). לוחצים על סטטוס השגיאה כדי לראות אילו שגיאות השפיעו על החיבור.
- סטטוס הושלם מציין שהחיבור הצליח. עם זאת, עדיין יכולות להיות שגיאות ברמת השורה – מסומנות בערך שאינו אפס בעמודה &;שורות עם שגיאות. לחצו על הערך כדי לקבל מידע נוסף על הרשומות שנכשלו.
עריכת חיבור
אין עדיין אפשרות לערוך חיבורים. כדי לשנות חיבור, צריך ליצור חיבור חדש ולמחוק את החיבור הישן.
תרחישים לדוגמה
התרחיש לדוגמה שתבחרו ישפיע על הסכימה של טבלת היעד ועל השדות העיקריים של מפתחי ההצטרפות שיובאו. עיינו בתרחישים לדוגמה שבהמשך כדי להבין איך הם משפיעים על הסכימה ומצטרפים למפתחות:
טווח הגעה ותדירות
מודדים את היקף החשיפה והתדירות של הקמפיינים בערוצים ובמכשירים שונים, לפי פילוחי המשתמשים של הדומיין.
שם השדה | תיאור | סוג | חובה/אופציונלי |
---|---|---|---|
מפתח צירוף | השינויים מבוססים על מקש ההצטרפות שבו נעשה שימוש | 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 | אופציונלי |