馬可夫鏈統計函式採用或然率方法,可以根據系統模擬出對使用者轉換可能性的貢獻,為廣告接觸點分配功勞。根據系統模擬出對轉換事件的貢獻,為特定廣告管道、廣告活動或其他接觸點分配功勞時,這項實驗性函式的輸出結果可能具有參考價值。
運作方式
馬可夫鏈統計函式會使用您的廣告資料來建立馬可夫鏈,有序圖中的每個頂點都代表一個接觸點,而每一邊都提供移至下一個接觸點的或然率 (取決於目前所在的接觸點)。其中假定只有目前的接觸點會影響移轉或然率。接著,系統會計算每個接觸點的貢獻,方法是將接觸點從圖上移除,在這樣的情況下計算模擬出的轉換或然率。
隱私方面的限制
接觸點必須包含 50 位以上已轉換的使用者,以及 50 位以上未轉換使用者,才不會遭到隱私權篩選器移除。此外,對接觸點貢獻的功勞不成比例的離群使用者,也可能會遭到篩除。因此,馬可夫鏈模型的輸出結果可能會缺少輸入接觸點資料表中的部分接觸點。每次執行馬可夫鏈模型時,系統都會顯示隱私權訊息。這些訊息包含遭到篩除的使用者和接觸點相關資訊。
馬可夫鏈值計算方式總覽
- 建立接觸點和功勞資料表:
touchpoint_temp_table
。user_credit_temp_table
。
- 使用上述暫存資料表做為引數,呼叫
ADH.TOUCHPOINT_ANALYSIS
資料表值函式。
建立接觸點和功勞資料表
建立接觸點資料表
接觸點資料表定義與接觸點相關的使用者事件。資料範例包括但不限於:campaign_id
、creative_id
、placement_id
或 site_id
。
資料表必須包含下列資料欄:
資料欄名稱 | 類型 |
---|---|
touchpoint |
string 任意接觸點名稱 (不得為空值或包含半形逗號)。 |
user_id |
string 造訪接觸點的使用者 ID (不得為空值或 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)
);
建立使用者功勞資料表
使用者功勞資料表定義轉換事件。系統會將轉換後發生的事件視為非轉換事件。
資料表必須包含下列資料欄:
資料欄名稱 | 類型 |
---|---|
user_id |
string 造訪接觸點的使用者 ID (不得為空值或 0)。 |
event_time |
int 貢獻事件發生的時間 (不得為空值)。 |
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')