Funkcja statystyczna łańcucha Markowa korzysta z metod probabilistycznych do przypisywania udziału w konwersji poszczególnym punktom styczności z klientem na podstawie ich modelowanego wpływu na prawdopodobieństwo dokonania konwersji przez użytkownika. Dane wyjściowe tej funkcji eksperymentalnej mogą być przydatne podczas przypisywania udziału w konwersji danemu kanałowi reklamowemu, danej kampanii lub innym punktom styczności z klientem na podstawie ich modelowanego wpływu na zdarzenia konwersji.
Jak to działa
Funkcja statystyczna łańcucha Markowa korzysta z Twoich danych reklamowych do utworzenia łańcucha Markowa, w którym każdy wierzchołek na uporządkowanym grafie reprezentuje punkt styczności z klientem, a każda krawędź podaje prawdopodobieństwo przejścia do następnego punktu styczności, które jest zależne od dotarcia do bieżącego punktu styczności. Zakłada się tu, że tylko bieżący punkt styczności z klientem wpływa na prawdopodobieństwo przejścia do kolejnego punktu styczności. Udział poszczególnych punktów styczności z klientem ustala się w ten sposób, że usuwa się z grafu dany punkt styczności i oblicza, ile wynosi wtedy modelowane prawdopodobieństwo konwersji.
Ograniczenia wynikające z ochrony prywatności
Aby punkty styczności z klientem nie zostały usunięte przez filtry prywatności, muszą obejmować co najmniej 50 użytkowników dokonujących konwersji i co najmniej 50 użytkowników niedokonujących konwersji. Dodatkowo mogą być odfiltrowywani użytkownicy odstający od reszty, którzy powodują nieproporcjonalnie duży udział danego punktu styczności z klientem w konwersji. Dlatego w danych wyjściowych modelu łańcucha Markowa 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 łańcucha Markowa. Komunikaty te zawierają informacje o użytkownikach i punktach styczności z klientem, które zostały odfiltrowane.
Omówienie obliczania wartości łańcucha Markowa
- 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. Zdarzenia następujące bezpośrednio po konwersjach są uznawane za zdarzenia niezwiązane z konwersjami.
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 MARKOV_CHAINS. |
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 łańcucha Markowa 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,
'MARKOV_CHAINS')