Shapley-Wert-Analyse

Die Shapley-Wert-Methode ist ein Algorithmus, der mehreren Werbekanälen und Touchpoints basierend auf ihrem geschätzten Beitrag zur Conversion einen Beitragswert zuweist. Mit der Shapley-Wert-Methode können Sie den Beitrag eines bestimmten Kanals zur Conversion modellieren.

In Ads Data Hub wird die vereinfachte Shapley-Wert-Methode verwendet, die im Artikel Shapley-Wert-Methoden für die Attributionsmodellierung in Onlinewerbung ausführlich erläutert wird.

Datenschutzeinschränkungen

Datenschutzfilter entfernen Touchpoints mit weniger als 50 Nutzern sowie Ausreißernutzer, die einen unverhältnismäßig hohen Beitrag zu einem Touchpoint leisten. Daher fehlen in der Ausgabe des Shapley-Wert-Modells möglicherweise einige Touchpoints, die in der Touchtpoint-Eingabetabelle enthalten sind.

Datenschutzmeldungen werden nach jeder Iteration des Shapley-Wert-Modells angezeigt. Diese Nachrichten enthalten Informationen zu Nutzern und Touchpoints, die gefiltert wurden.

Übersicht über die Berechnung von Shapley-Werten

  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. Für jeden Nutzer werden nur Ereignisse berücksichtigt, deren Zeitstempel vor der Conversion liegt.

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 SHAPLEY_VALUES sein.

Ausgabetabelle

Die Ausgabetabelle enthält das folgende Schema:

Name der Spalte Typ
touchpoint string
Name des Touchpoints.
score integer
Berechneter Shapley-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,
  'SHAPLEY_VALUES')