Metoda wartości Shapleya to algorytm, który przypisuje udział licznym kanałom reklamowym i punktom styczności z klientem na podstawie ich modelowanego udziału w konwersji. Korzystając z metody wartości Shapleya, możesz modelować udział konkretnego kanału w konwersji.
Centrum danych reklam korzysta z „uproszczonej metody wartości Shapleya”, która została szczegółowo omówiona w artykule Metody wartości Shapleya na potrzeby modelowania atrybucji w reklamach online (w języku angielskim).
Ograniczenia wynikające z ochrony prywatności
Filtry prywatności powodują usunięcie punktów styczności z klientem o mniej niż 50 użytkownikach oraz użytkowników odstających od reszty, którzy mają nieproporcjonalną część udziału w danym punkcie styczności. Dlatego w danych wyjściowych modelu wartości Shapleya może brakować niektórych punktów styczności z klientem, które występują w wejściowej tabeli takich punktów.Komunikaty dotyczące ochrony prywatności wyświetlają się po każdym wykonaniu iteracji modelu wartości Shapleya. Komunikaty te zawierają informacje o użytkownikach i punktach styczności z klientem, które zostały odfiltrowane.
Omówienie obliczania wartości Shapleya
- Utwórz tabelę punktów styczności z klientem i tabelę udziału:
touchpoint_temp_table
.user_credit_temp_table
.
- Wywołaj funkcję
ADH.TOUCHPOINT_ANALYSIS
zwracającą wartości o typie tabeli, używając jako argumentów podanych wyżej tabel tymczasowych.
Tworzenie tabeli punktów styczności z klientem i tabeli udziału
Tworzenie tabeli punktów styczności z klientem
W tabeli punktów styczności z klientem definiuje się zdarzenia dotyczące użytkowników powiązane z tymi punktami. Przykładowe dane to m.in. campaign_id
, creative_id
, placement_id
i site_id
.
Tabela musi zawierać te kolumny:
Nazwa kolumny | Typ |
---|---|
touchpoint |
string Dowolna nazwa punktu styczności z klientem (nie może zawierać wartości NULL ani przecinków). |
user_id |
string Identyfikator użytkownika, który odwiedza punkt styczności z klientem (nie może zawierać wartości NULL ani 0). |
event_time |
int Czas, w którym użytkownik odwiedził punkt styczności z klientem (nie może zawierać wartości NULL). |
Przykładowy kod do utworzenia tabeli:
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)
);
Tworzenie tabeli udziału użytkowników
W tabeli udziału użytkowników definiuje się zdarzenia konwersji. W przypadku każdego użytkownika brane są pod uwagę tylko zdarzenia z sygnaturą czasową poprzedzającą konwersję.
Tabela musi zawierać te kolumny:
Nazwa kolumny | Typ |
---|---|
user_id |
string Identyfikator użytkownika, który odwiedza punkt styczności z klientem (nie może zawierać wartości NULL ani 0). |
event_time |
int Czas, w którym wystąpiło zdarzenie udziału (nie może zawierać wartości NULL). |
credit |
integer Wielkość udziału użytkownika. Może to być dowolny rodzaj udziału, który ktoś chciałby analizować, np. wartość konwersji, liczba konwersji itd. Jego wartość musi się mieścić w przedziale od 1 do 100. |
Przykładowy kod do utworzenia tabeli:
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
);
Funkcja zwracająca wartości o typie tabeli
Funkcja zwracająca wartości o typie tabeli zwraca w wyniku swojego działania tabelę. Dzięki temu możesz wysyłać do tej funkcji zapytania podobnie jak do zwykłej tabeli.
Składnia
ADH.TOUCHPOINT_ANALYSIS(TABLE touchpoints_tmp_table_name, TABLE credits_tmp_table_name, STRING model_name)
Argumenty
Nazwa | |
---|---|
touchpoints_tmp_table_name |
Nazwa utworzonej przez klienta tymczasowej tabeli punktów styczności. Tabela musi mieć schemat zawierający kolumny touchpoint , user_id i event_time . |
credits_tmp_table_name |
Nazwa utworzonej przez klienta tymczasowej tabeli udziału użytkowników. Tabela musi mieć schemat zawierający kolumny user_id , credit i conversion_time . |
model |
string Musi mieć ustawienie SHAPLEY_VALUES. |
Tabela wyjściowa
Tabela wyjściowa będzie mieć ten schemat:
Nazwa kolumny | Typ |
---|---|
touchpoint |
string Nazwa punktu styczności z klientem. |
score |
integer Obliczony wynik wartości Shapleya dla tego punktu styczności z klientem. |
Przykładowy kod do korzystania z funkcji zwracającej wartości o typie tabeli
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'SHAPLEY_VALUES')