הפונקציה הסטטיסטית של שרשרת מרקוב משתמשת בשיטות סטטיסטיות כדי להקצות קרדיט לנקודות מגע שונות בפרסום על סמך התרומה שלהן למודל הסבירות של המשתמש להשלים המרה. הפלט של הפונקציה הניסיונית הזו עשוי להיות שימושי בשיוך קרדיט לערוץ פרסום, לקמפיין או לנקודת מגע אחרת, על סמך המודל שלהם לתרומה לאירועי המרה.
איך זה עובד
הפונקציה הסטטיסטית של שרשרת מרקוב משתמשת בנתוני הפרסום שלכם כדי ליצור שרשרת מרקוב, שבה כל קודקוד בתרשים המסודר מייצג נקודת מגע, וכל צלע מייצגת את ההסתברות לעבור לנקודת המגע הבאה, מותנית בנקודת המגע הנוכחית. ההנחה היא שרק נקודת המגע הנוכחית משפיעה על הסבירות למעבר. לאחר מכן, כדי לחשב את התרומה של כל נקודת מגע, מסירים את נקודת המגע מהתרשים ומחשבים את ההסתברות המודלית להמרה אחרי הסרת נקודת המגע.
הגבלות על הפרטיות
נקודות מגע חייבות לכלול 50 משתמשים או יותר שהשלימו המרה ו-50 משתמשים או יותר שלא השלימו המרה כדי שלא יוסרו על ידי מסנני הפרטיות. בנוסף, יכול להיות שיבוצע סינון של משתמשים חריגים שתורמים כמות גדולה מדי של קרדיט לנקודת מגע. לכן, יכול להיות שפלט של מודל שרשרת מרקוב יכלול חסרים של נקודות מגע מסוימות שמופיעות בטבלת נקודות המגע של הקלט.הודעות הפרטיות מוצגות אחרי כל חזרה של מודל שרשרת מרקוב. ההודעות האלה כוללות מידע על משתמשים ועל נקודות מגע עם הלקוח שסוננו.
סקירה כללית על חישוב הערכים של שרשרת מרקוב
- יוצרים את הטבלאות של נקודות המגע והקרדיט:
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 הערך חייב להיות MARKOV_CHAINS. |
טבלת פלט
טבלת הפלט תכיל את הסכימה הבאה:
שם העמודה | סוג |
---|---|
touchpoint |
string שם נקודת המגע. |
score |
integer הציון המחושב של שרשרת מרקוב בנקודת המגע הזו. |
קוד לדוגמה לשימוש בפונקציה עם ערך טבלה
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'MARKOV_CHAINS')