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
- 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. 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')