ניתוח של ערך שפלי

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

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

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

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

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

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

  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
הערך חייב להיות 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')