การวิเคราะห์ห่วงโซ่ Markov

ฟังก์ชันทางสถิติของห่วงโซ่ Markov ใช้วิธีการแบบน่าจะเป็นในการให้เครดิตแก่ทัชพอยต์การโฆษณาโดยอิงตามการมีส่วนร่วมโดยประมาณที่มีต่อแนวโน้มที่ผู้ใช้จะทำ Conversion เอาต์พุตของฟังก์ชันการทดสอบนี้อาจมีประโยชน์ในการให้เครดิตแก่ช่องทางโฆษณา แคมเปญ หรือทัชพอยต์อื่นๆ โดยอิงตามการมีส่วนร่วมที่คาดการณ์ไว้กับเหตุการณ์ Conversion

วิธีการทำงาน

ฟังก์ชันทางสถิติของ Markov Chain ใช้ข้อมูลการโฆษณาเพื่อสร้าง Markov Chain โดยแต่ละจุดยอดในกราฟตามลําดับแสดงถึงทัชพอยต์ และแต่ละขอบแสดงถึงแนวโน้มในการไปยังทัชพอยต์ถัดไป โดยอิงตามทัชพอยต์ปัจจุบัน โดยสมมติว่ามีเพียงทัชพอยต์ปัจจุบันเท่านั้นที่ส่งผลต่อความน่าจะเป็นในการเปลี่ยน จากนั้นระบบจะคํานวณการมีส่วนร่วมของทัชพอยต์แต่ละรายการโดยนําทัชพอยต์ออกจากกราฟ และคำนวณความน่าจะเป็นที่คาดการณ์ไว้ของ Conversion เมื่อนําทัชพอยต์ออก

ข้อจำกัดด้านความเป็นส่วนตัว

ทัชพอยต์ต้องมีผู้ใช้ที่ทําให้เกิด Conversion อย่างน้อย 50 รายและผู้ใช้ที่ไม่ได้ทําให้เกิด Conversion อย่างน้อย 50 ราย จึงจะไม่ถูกกรองออกโดยตัวกรองความเป็นส่วนตัว นอกจากนี้ ระบบอาจกรองผู้ใช้ที่เป็นผู้เบี่ยงเบนซึ่งให้เครดิตแก่ทัชพอยต์ในปริมาณที่ไม่สมส่วน ดังนั้นเอาต์พุตจากโมเดลห่วงโซ่ Markov จึงอาจไม่มีทัชพอยต์บางรายการที่อยู่ในตารางทัชพอยต์อินพุต

ข้อความเกี่ยวกับความเป็นส่วนตัวจะแสดงหลังจากการวนซ้ำแต่ละครั้งของโมเดลห่วงโซ่ Markov ข้อความเหล่านี้มีข้อมูลเกี่ยวกับผู้ใช้และทัชพอยต์ที่กรองไว้

ภาพรวมของการคํานวณค่าห่วงโซ่ Markov

  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)
);

สร้างตารางเครดิตของผู้ใช้

ตารางเครดิตของผู้ใช้คือที่ที่กําหนดเหตุการณ์ Conversion เหตุการณ์ที่เกิดขึ้นหลังจาก Conversion จะถือว่าเป็นเหตุการณ์ที่ไม่มี Conversion

ตารางต้องมีคอลัมน์ต่อไปนี้

ชื่อคอลัมน์ ประเภท
user_id string
รหัสของผู้ใช้ที่เข้าชมทัชพอยต์ (ต้องไม่ใช่ NULL หรือ 0)
event_time int
เวลาที่เกิดเหตุการณ์การมีส่วนร่วม (ต้องไม่ใช่ NULL)
credit integer
เครดิตที่ผู้ใช้ให้ โดยจะเป็นเครดิตใดก็ได้ที่ต้องการวิเคราะห์ เช่น มูลค่า Conversion, จํานวน Conversion เป็นต้น ค่านี้ต้องอยู่ระหว่าง 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
คะแนน Markov Chain ที่คำนวณแล้วสําหรับทัชพอยต์นี้

โค้ดตัวอย่างสําหรับการใช้ฟังก์ชันที่มีค่าเป็นตาราง

SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
  TABLE tmp.touchpoint_temp_table,
  TABLE tmp.user_credit_temp_table,
  'MARKOV_CHAINS')