ฟังก์ชันทางสถิติของห่วงโซ่มาร์คอฟจะใช้วิธีการที่เป็นไปได้เพื่อกำหนดเครดิตให้ทัชพอยต์การโฆษณาต่างๆ ตามการระบุแหล่งที่มาโดยประมาณของแนวโน้มที่ผู้ใช้จะทำ Conversion ผลลัพธ์ของฟังก์ชันทดลองนี้อาจเป็นประโยชน์ในการกำหนดเครดิตให้กับช่องทางโฆษณา แคมเปญ หรือทัชพอยต์อื่นๆ ที่ระบุ โดยอิงตามการมีส่วนร่วมโดยประมาณต่อเหตุการณ์ Conversion
วิธีการทำงาน
ฟังก์ชันทางสถิติของห่วงโซ่มาร์คอฟใช้ข้อมูลโฆษณาของคุณเพื่อสร้างห่วงโซ่ Markov โดยที่จุดยอดแต่ละจุดในกราฟที่เรียงตามลำดับแสดงถึงจุดติดต่อ และเส้นเชื่อมแต่ละเส้นให้ความน่าจะเป็นในการย้ายไปยังทัชพอยต์ถัดไปนั้น โดยมีเงื่อนไขว่าจะต้องอยู่ที่จุดติดต่อปัจจุบันนั้น โดยจะถือว่ามีเพียงทัชพอยต์ปัจจุบันเท่านั้นที่ส่งผลต่อความน่าจะเป็นของการเปลี่ยน ระบบจะคำนวณการมีส่วนร่วมของแต่ละจุดติดต่อโดยการนำจุดติดต่อออกจากกราฟ และคำนวณความน่าจะเป็นโดยประมาณของ Conversion จากการที่จุดติดต่อนั้นถูกนำออกไปแล้ว
ข้อจำกัดด้านความเป็นส่วนตัว
ทัชพอยต์ต้องมีผู้ใช้ที่ทำให้เกิด Conversion ตั้งแต่ 50 คนขึ้นไป และผู้ใช้ที่ไม่ทำให้เกิด Conversion อย่างน้อย 50 คน เพื่อไม่ให้ตัวกรองความเป็นส่วนตัวลบออก นอกจากนี้ ระบบอาจกรองผู้ใช้ที่มีค่าผิดปกติซึ่งให้เครดิตกับทัชพอยต์ในสัดส่วนที่ไม่เหมาะสมออก ดังนั้น ผลลัพธ์จากโมเดลเชน Markov อาจขาดบางทัชพอยต์ที่อยู่ในตารางทัชพอยต์ของอินพุตข้อความเกี่ยวกับความเป็นส่วนตัวจะแสดงหลังจากการทำโมเดลเชน Markov แต่ละครั้งซ้ำๆ ข้อความเหล่านี้มีข้อมูลเกี่ยวกับผู้ใช้และทัชพอยต์ที่มีการกรอง
ภาพรวมของการคำนวณค่าเชนมาร์คอฟ
- สร้างทัชพอยต์และตารางเครดิต
touchpoint_temp_table
user_credit_temp_table
- เรียกใช้ฟังก์ชันที่กำหนดให้
ADH.TOUCHPOINT_ANALYSIS
โดยใช้ตารางชั่วคราวด้านบนเป็นอาร์กิวเมนต์
สร้างทัชพอยต์และตารางเครดิต
สร้างตารางทัชพอยต์
ตารางทัชพอยต์คือตําแหน่งที่กําหนดเหตุการณ์ของผู้ใช้ที่เกี่ยวข้องกับทัชพอยต์ ข้อมูลตัวอย่างอาจรวมถึงแต่ไม่จำกัดเพียง campaign_id
, creative_id
, placement_id
หรือ site_id
โดยตารางต้องมีคอลัมน์ต่อไปนี้
ชื่อคอลัมน์ | ประเภท |
---|---|
touchpoint |
string ชื่อทัชพอยต์ที่กำหนดเอง (ต้องไม่เป็นค่าว่างหรือมีเครื่องหมายจุลภาค) |
user_id |
string รหัสของผู้ใช้ที่เข้าชมทัชพอยต์ (ต้องไม่เป็นค่าว่างหรือ 0) |
event_time |
int เวลาที่ผู้ใช้เข้าชมทัชพอยต์ (ต้องไม่เป็นค่าว่าง) |
โค้ดตัวอย่างสำหรับการสร้างตาราง
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 รหัสของผู้ใช้ที่เข้าชมทัชพอยต์ (ต้องไม่เป็นค่าว่างหรือ 0) |
event_time |
int เวลาที่เกิดเหตุการณ์การมีส่วนร่วม (ต้องไม่เป็นค่าว่าง) |
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 สำหรับทัชพอยต์นี้ |
โค้ดตัวอย่างสำหรับการใช้ฟังก์ชันที่มีค่าตาราง
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'MARKOV_CHAINS')