Metoda Shapleyovy hodnoty je algoritmus, který přiděluje kredit různým reklamním kanálům a kontaktním bodům podle jejich vymodelovaného přínosu k uskutečnění konverze. Pomocí této metody můžete modelovat příspěvek určitého kanálu k získávání konverzí.
Služba Ads Data Hub používá zjednodušenou metodu Shapleyovy hodnoty, podrobně popsanou v článku Shapley Value Methods for Attribution Modeling in Online Advertising (Metody atribučního modelování pomocí Shapleyovy hodnoty v online reklamě).
Omezení kvůli ochraně soukromí
Filtry ochrany soukromí odstraní kontaktní body s méně než 50 uživateli. Dále odstraní nestandardní uživatele, kteří ke kreditu určitého kontaktního bodu přispívají v neobvyklé míře. Ve výstupu modelu založeného na Shapleyově hodnotě tedy mohou chybět některé kontaktní body obsažené ve vstupní tabulce kontaktních bodů.Po každé iteraci modelování Shapleyovy hodnoty se zobrazují zprávy o ochraně soukromí. Jsou v nich uvedeny i informace o odfiltrovaných uživatelích a kontaktních bodech.
Přehled výpočtu Shapleyových hodnot
- Vytvoření tabulek kontaktních bodů a kreditu:
touchpoint_temp_table
.user_credit_temp_table
.
- Zavolání tabulkové funkce
ADH.TOUCHPOINT_ANALYSIS
, které jako argumenty předáte dočasné tabulky vytvořené v předchozích krocích.
Vytvoření tabulek kontaktních bodů a kreditu
Vytvoření tabulky kontaktních bodů
Tabulka kontaktních bodů obsahuje definice uživatelských událostí souvisejících s kontaktními body. Ukázková data mohou obsahovat například campaign_id
, creative_id
, placement_id
nebo site_id
.
Tabulka musí obsahovat tyto sloupce:
Název sloupce | Typ |
---|---|
touchpoint |
string Libovolný název kontaktního bodu. (Nesmí však být NULL ani obsahovat čárky.) |
user_id |
string ID uživatele, který tento kontaktní bod navštívil. (Nesmí být NULL ani 0.) |
event_time |
int Čas, kdy uživatel tento kontaktní bod navštívil. (Nesmí být NULL.) |
Ukázkový kód pro vytvoření tabulky:
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)
);
Vytvoření tabulky uživatelského kreditu
V tabulce uživatelského kreditu jsou definovány konverzní události. Pro jednotlivé uživatele jsou brány v úvahu pouze události, jejichž časové razítko je starší než daná konverzní událost.
Tabulka musí obsahovat tyto sloupce:
Název sloupce | Typ |
---|---|
user_id |
string ID uživatele, který tento kontaktní bod navštívil. (Nesmí být NULL ani 0.) |
event_time |
int Čas, kdy k dané přispívající události došlo. (Nesmí být NULL.) |
credit |
integer Kredit, který tento uživatel přinesl. Může jít o jakýkoli kredit, který chcete analyzovat. Například hodnota konverze, počet konverzí atd. Musí jít o číslo od 1 do 100. |
Ukázkový kód pro vytvoření tabulky:
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
);
Tabulková funkce
Tabulková funkce je funkce, která jako výsledek vrací tabulku. Proto nad ní můžete spouštět dotazy stejným způsobem jako nad běžnou tabulkou.
Syntaxe
ADH.TOUCHPOINT_ANALYSIS(TABLE touchpoints_tmp_table_name, TABLE credits_tmp_table_name, STRING model_name)
Argumenty
Název | |
---|---|
touchpoints_tmp_table_name |
Název klientem vytvořené dočasné tabulky kontaktních bodů. Tato tabulka musí používat schéma obsahující sloupce touchpoint , user_id a event_time . |
credits_tmp_table_name |
Název klientem vytvořené dočasné tabulky uživatelského kreditu. Tato tabulka musí používat schéma obsahující sloupce user_id , credit a conversion_time . |
model |
string Musí jít o typ SHAPLEY_VALUES. |
Výstupní tabulka
Výstupní tabulka bude používat toto schéma:
Název sloupce | Typ |
---|---|
touchpoint |
string Název kontaktního bodu. |
score |
integer Vypočtená Shapleyova hodnota tohoto kontaktního bodu. |
Příklad kódu pro použití tabulkové funkce
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'SHAPLEY_VALUES')