Die Markov-Kette ist eine statistische Funktion, bei der probabilistische Methoden verwendet werden, um allen Werbe-Touchpoints basierend auf ihrem geschätzten Beitrag zur Conversion-Wahrscheinlichkeit des Nutzers einen Beitragswert zuzuordnen. Die Ausgabe dieser experimentellen Funktion kann nützlich sein, um einem bestimmten Werbekanal, einer Kampagne oder einem anderen Touchpoint basierend auf dem geschätzten Beitrag zu Conversion-Ereignissen einen Beitragswert zuzuordnen.
Funktionsweise
Die statistische Funktion verwendet Ihre Werbedaten, um eine Markov-Kette zu erstellen. Dabei steht jeder Scheitelpunkt in der geordneten Grafik für einen Touchpoint und jede Kante spiegelt die Wahrscheinlichkeit wider, dass der nächste Touchpoint erreicht wird (solange der aktuelle Touchpoint die derzeitige Position ist). Dabei wird davon ausgegangen, dass nur der aktuelle Touchpoint die Übergangswahrscheinlichkeit beeinflusst. Dann wird der Beitrag jedes Touchpoints berechnet, indem der Touchpoint aus der Grafik entfernt und die geschätzte Conversion-Wahrscheinlichkeit ohne diesen Touchpoint berechnet wird.
Datenschutzeinschränkungen
Touchpoints müssen mindestens 50 Nutzer mit Conversion und mindestens 50 Nutzer ohne Conversion enthalten, damit sie nicht durch Datenschutzfilter entfernt werden. Außerdem können Ausreißernutzer herausgefiltert werden, die einen unverhältnismäßig hohen Beitrag zu einem Touchpoint leisten. Daher fehlen in der Ausgabe des Markov-Ketten-Modells möglicherweise einige Touchpoints, die in der Touchtpoint-Eingabetabelle enthalten sind.Datenschutzmeldungen werden nach jeder Iteration des Markov-Ketten-Modells angezeigt. Diese Nachrichten enthalten Informationen zu Nutzern und Touchpoints, die gefiltert wurden.
Übersicht über die Berechnung von Werten der Markov-Kette
- Erstellen Sie die Touchpoint- und Beitragstabellen:
touchpoint_temp_table
.user_credit_temp_table
.
- Rufen Sie die Tabellenwertfunktion
ADH.TOUCHPOINT_ANALYSIS
auf und verwenden Sie dabei die oben aufgeführten temporären Tabellen als Argumente.
Touchpoint- und Beitragstabellen erstellen
Touchpoint-Tabelle erstellen
In der Touchpoint-Tabelle sind Nutzerereignisse definiert, die mit Touchpoints zusammenhängen. Beispieldaten sind unter anderem campaign_id
, creative_id
, placement_id
und site_id
.
Die Tabelle muss die folgenden Spalten enthalten:
Name der Spalte | Typ |
---|---|
touchpoint |
string Beliebiger Touchpoint-Name. Darf nicht NULL sein oder Kommas enthalten. |
user_id |
string Die ID eines Nutzers, der zum Touchpoint gelangt. Darf nicht NULL oder 0 sein. |
event_time |
int Die Zeit, zu der der Nutzer den Touchpoint besucht hat. Darf nicht NULL sein. |
Beispielcode zum Erstellen der Tabelle:
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)
);
Tabelle für Nutzerbeitrag erstellen
In der Tabelle für den Nutzerbeitrag sind Conversion-Ereignisse definiert. Ereignisse, die auf Conversions folgen, gelten als Ereignisse ohne Conversion.
Die Tabelle muss die folgenden Spalten enthalten:
Name der Spalte | Typ |
---|---|
user_id |
string Die ID eines Nutzers, der zum Touchpoint gelangt. Darf nicht NULL oder 0 sein. |
event_time |
int Die Zeit, zu der das Beitragsereignis stattgefunden hat. Darf nicht NULL sein. |
credit |
integer Der Beitrag, der dem Nutzer zugeordnet wird. Das kann ein beliebiger Beitrag sein, den Sie analysieren möchten, etwa der Conversion-Wert oder die Anzahl der Conversions. Der Wert muss zwischen 1 und 100 liegen. |
Beispielcode zum Erstellen der Tabelle:
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
);
Tabellenwertfunktion
Die Tabellenwertfunktion ist eine Funktion, die eine Tabelle als Ergebnis zurückgibt. Daher können Sie die Tabellenwertfunktion genau wie eine normale Tabelle abfragen.
Syntax
ADH.TOUCHPOINT_ANALYSIS(TABLE touchpoints_tmp_table_name, TABLE credits_tmp_table_name, STRING model_name)
Argumente
Name | |
---|---|
touchpoints_tmp_table_name |
Der Name der vom Kunden erstellten temporären Touchpoint-Tabelle. Die Tabelle muss die Spalten touchpoint , user_id und event_time enthalten. |
credits_tmp_table_name |
Der Name der vom Kunden erstellten temporären Nutzerbeitragstabelle. Die Tabelle muss die Spalten user_id , credit und conversion_time enthalten. |
model |
string Muss MARKOV_CHAINS sein. |
Ausgabetabelle
Die Ausgabetabelle enthält das folgende Schema:
Name der Spalte | Typ |
---|---|
touchpoint |
string Name des Touchpoints. |
score |
integer Berechneter Markov-Ketten-Wert für diesen Touchpoint. |
Beispielcode zur Verwendung der Tabellenwertfunktion
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'MARKOV_CHAINS')