วิธีการมูลค่า Shapley คืออัลกอริทึมที่กําหนดเครดิตให้กับแชแนลการโฆษณาและทัชพอยต์จํานวนมากตามการมีส่วนร่วมที่คาดการณ์ไว้กับ Conversion การใช้วิธีการหามูลค่า Shapley จะช่วยให้คุณประมาณการการมีส่วนร่วมของช่องทางหนึ่งๆ ที่มีต่อ Conversion ได้
Ads Data Hub ใช้ "วิธีการ Shapley Value แบบง่าย" ซึ่งอธิบายอย่างละเอียดในเอกสารวิธีการ Shapley Value สําหรับการประมาณการระบุแหล่งที่มาในการโฆษณาออนไลน์
ข้อจำกัดด้านความเป็นส่วนตัว
ตัวกรองความเป็นส่วนตัวจะนำทัชพอยต์ที่มีผู้ใช้น้อยกว่า 50 คนและผู้ใช้ที่ผิดปกติซึ่งให้เครดิตแก่ทัชพอยต์ในปริมาณที่ไม่สมส่วนออก ดังนั้นเอาต์พุตจากรูปแบบมูลค่า Shapley จึงอาจไม่มีทัชพอยต์บางรายการที่อยู่ในตารางทัชพอยต์อินพุตข้อความเกี่ยวกับความเป็นส่วนตัวจะแสดงหลังจากการวนซ้ำแต่ละครั้งของรูปแบบมูลค่า Shapley ข้อความเหล่านี้มีข้อมูลเกี่ยวกับผู้ใช้และทัชพอยต์ที่กรองไว้
ภาพรวมของการคํานวณค่า Shapley
- สร้างตารางทัชพอยต์และเครดิต ดังนี้
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)
);
สร้างตารางเครดิตของผู้ใช้
ตารางเครดิตของผู้ใช้คือที่ที่กําหนดเหตุการณ์ 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 ต้องเป็น 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')