Markov-Kettenanalyse

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

  1. Erstellen Sie die Touchpoint- und Beitragstabellen:
    1. touchpoint_temp_table.
    2. user_credit_temp_table.
  2. 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')