שיטת הערך של Shapley היא אלגוריתם שמקצה קרדיט למספר רב של ערוצי פרסום ונקודות מגע עם הלקוח על סמך המודל שלהם לתרומה להמרה. באמצעות שיטת הערך של Shapley, אפשר ליצור מודל של התרומה של ערוץ מסוים להמרה.
ב-Ads Data Hub נעשה שימוש בשיטה הפשוטה של הערך של Shapley, שמוסבר בפירוט במאמר שיטות של הערך של Shapley ליצירת מודלים של שיוך בפרסום אונליין.
הגבלות על הפרטיות
מסנני הפרטיות יסירו נקודות מגע עם פחות מ-50 משתמשים ומשתמשים חריגים שתורמים כמות לא פרופורציונלית של קרדיט לנקודת מגע. לכן, יכול להיות שבפלט של מודל ערכי Shapley יהיו חסרים כמה נקודות מגע שמופיעות בטבלת נקודות המגע של הקלט.הודעות הפרטיות מוצגות אחרי כל חזרה של מודל הערך של Shapley. ההודעות האלה כוללות מידע על משתמשים ועל נקודות מגע עם הלקוח שסוננו.
סקירה כללית על חישוב הערכים של ערך שפלי
- יוצרים את הטבלאות של נקודות המגע והקרדיט:
touchpoint_temp_table
.user_credit_temp_table
.
- קוראים לפונקציה
ADH.TOUCHPOINT_ANALYSIS
עם ערך טבלה באמצעות טבלאות הזמניות שלמעלה כארגומנטים.
יצירת טבלאות נקודות המגע והזיכויים
יצירת טבלת נקודות המגע
בטבלת נקודות המגע מגדירים אירועים של משתמשים שקשורים לנקודות המגע. דוגמאות לנתונים יכולות לכלול, בין היתר: campaign_id
, creative_id
, placement_id
או site_id
.
הטבלה חייבת לכלול את העמודות הבאות:
שם העמודה | סוג |
---|---|
touchpoint |
string שם שרירותי של נקודת מגע עם הלקוח. (הערך לא יכול להיות NULL או להכיל פסיקים). |
user_id |
string המזהה של משתמש שנכנס לנקודת המגע. (הערך לא יכול להיות NULL או 0). |
event_time |
int השעה שבה המשתמש ביקר בנקודת המגע. (אסור שהערך יהיה NULL). |
קוד לדוגמה ליצירת הטבלה:
CREATE TABLE touchpoint_temp_table
AS (
SELECT user_id, event.event_time, CAST(event.site_id AS STRING) AS touchpoint
FROM adh.cm_dt_impressions
WHERE
event.event_type IN ('VIEW')
AND user_id <> '0'
AND event.campaign_id IN UNNEST(@campaign_ids)
UNION ALL
SELECT
user_id, event.event_time, CAST(event.site_id AS STRING) AS touchpoint
FROM adh.cm_dt_clicks
WHERE
event.event_type IN ('CLICK')
AND user_id <> '0'
AND event.campaign_id IN UNNEST(@campaign_ids)
);
יצירת טבלת הזיכויים של המשתמשים
בטבלת הקרדיט של המשתמשים מוגדרים אירועי ההמרה. לכל משתמש, נלקחים בחשבון רק אירועים עם חותמת זמן שקדמה להמרה.
הטבלה חייבת לכלול את העמודות הבאות:
שם העמודה | סוג |
---|---|
user_id |
string המזהה של משתמש שנכנס לנקודת המגע. (הערך לא יכול להיות NULL או 0). |
event_time |
int השעה שבה התרחש אירוע התרומה. (אסור שהערך יהיה NULL). |
credit |
integer הזיכוי שהמשתמש תרם. אפשר לבחור כל זיכוי שרוצים לנתח. לדוגמה, ערך ההמרה, מספר ההמרות וכו'. הערך חייב להיות בין 1 ל-100. |
קוד לדוגמה ליצירת הטבלה:
CREATE TABLE user_credit_temp_table AS (
SELECT
user_id,
MAX(event.event_time) AS event_time,
1 AS credit
FROM adh.cm_dt_activities_attributed
WHERE user_id <> '0'
AND event.campaign_id IN UNNEST(@campaign_ids)
AND DATE(TIMESTAMP_MICROS(event.event_time)) BETWEEN @start_date AND @end_date
AND event.activity_id IN UNNEST (@activity_ids)
GROUP BY user_id
);
הפונקציה שמוחזרת כטבלה
פונקציה עם ערך טבלה היא פונקציה שמחזירה טבלה כתוצאה. לכן, אפשר לשלוח שאילתות לפונקציה עם ערך טבלה כמו ששולחים שאילתות לטבלה רגילה.
תחביר
ADH.TOUCHPOINT_ANALYSIS(TABLE touchpoints_tmp_table_name, TABLE credits_tmp_table_name, STRING model_name)
ארגומנטים
שם | |
---|---|
touchpoints_tmp_table_name |
השם של טבלת נקודות המגע הזמניות שנוצרה על ידי הלקוח. הטבלה צריכה לכלול סכימה שמכילה את העמודות touchpoint , user_id ו-event_time . |
credits_tmp_table_name |
השם של טבלת הזיכויים הזמניים של המשתמשים שנוצרה על ידי הלקוח. הטבלה צריכה לכלול סכימה שמכילה את העמודות user_id , credit ו-conversion_time . |
model |
string הערך חייב להיות SHAPLEY_VALUES. |
טבלת פלט
טבלת הפלט תכיל את הסכימה הבאה:
שם העמודה | סוג |
---|---|
touchpoint |
string שם נקודת המגע. |
score |
integer הערך המחושב של Shapley בנקודת המגע הזו. |
קוד לדוגמה לשימוש בפונקציה עם ערך טבלה
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'SHAPLEY_VALUES')