ניתוח שרשרת מרקוב

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

איך זה עובד

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

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

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

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

סקירה כללית על חישוב הערכים של שרשרת מרקוב

  1. יוצרים את הטבלאות של נקודות המגע והקרדיט:
    1. touchpoint_temp_table.
    2. user_credit_temp_table.
  2. קוראים לפונקציה 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')