La méthode de la valeur de Shapley est un algorithme qui attribue le crédit à de nombreux canaux et points de contact publicitaires en fonction de la modélisation de leur contribution à la conversion. Cette méthode vous permet de modéliser la contribution d'un canal spécifique à la conversion.
Ads Data Hub utilise la "méthode de valeur de Shapley simplifiée", expliquée en détail dans l'article Méthodes de valeur de Shapley pour la modélisation de l'attribution dans la publicité en ligne.
Restrictions de confidentialité
Les filtres de confidentialité suppriment les points de contact comptant moins de 50 utilisateurs et les valeurs aberrantes (utilisateurs qui contribuent de manière disproportionnée à un point de contact). Ainsi, certains points de contact qui figurent dans la table d'entrée ne figureront peut-être pas dans la sortie du modèle de valeur de Shapley.Les messages de confidentialité sont affichés après chaque itération du modèle de valeur de Shapley. Ces messages incluent des informations sur les utilisateurs et les points de contact filtrés.
Présentation du calcul des valeurs de valeur de Shapley
- Créer les tables de points de contact et de crédit :
touchpoint_temp_table
.user_credit_temp_table
.
- Appelez la fonction de valeur de table
ADH.TOUCHPOINT_ANALYSIS
en utilisant les tables temporaires ci-dessus comme arguments.
Créer les tables de points de contact et de crédit
Créer la table de points de contact
La table de points de contact permet de définir les événements utilisateur liés aux points de contact. Voici quelques exemples (liste non exhaustive) : campaign_id
, creative_id
, placement_id
ou site_id
.
La table doit contenir les colonnes suivantes :
Nom de la colonne | Type |
---|---|
touchpoint |
string Nom du point de contact arbitraire. (Ne doit pas être NULL ni contenir de virgules.) |
user_id |
string ID de l'utilisateur qui visite le point de contact. (Ne doit pas être NULL ni 0.) |
event_time |
int Heure à laquelle l'utilisateur a visité le point de contact. (Ne doit pas être NULL.) |
Exemple de code pour créer la table :
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)
);
Créer la table de crédit utilisateur
Les événements de conversion sont définis dans la table des crédits utilisateur. Pour chaque utilisateur, seuls les événements avec un code temporel antérieur à la conversion sont pris en compte.
La table doit contenir les colonnes suivantes :
Nom de la colonne | Type |
---|---|
user_id |
string ID de l'utilisateur qui visite le point de contact. (Ne doit pas être NULL ni 0.) |
event_time |
int Heure à laquelle l'événement de contribution s'est produit. (Ne doit pas être NULL.) |
credit |
integer Crédit auquel a contribué l'utilisateur. Il peut s'agir d'un crédit que vous souhaitez analyser (par exemple, la valeur de conversion, le nombre de conversions, etc.). Cette valeur doit être comprise entre 1 et 100. |
Exemple de code pour créer la table :
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
);
Fonction de valeur de table
La fonction de valeur de table renvoie une table. Vous pouvez donc interroger la fonction de valeur de table comme vous le feriez avec une table normale.
Syntaxe
ADH.TOUCHPOINT_ANALYSIS(TABLE touchpoints_tmp_table_name, TABLE credits_tmp_table_name, STRING model_name)
Arguments
Nom | |
---|---|
touchpoints_tmp_table_name |
Nom de la table de points de contact temporaire créée par le client. La table doit avoir un schéma contenant les colonnes touchpoint , user_id et event_time . |
credits_tmp_table_name |
Nom de la table de crédit utilisateur temporaire créée par le client. La table doit avoir un schéma contenant les colonnes user_id , credit et conversion_time . |
model |
string Doit être SHAPLEY_VALUES. |
Table de sortie
La table de sortie contiendra le schéma suivant :
Nom de la colonne | Type |
---|---|
touchpoint |
string Nom du point de contact. |
score |
integer Valeur de Shapley calculée pour ce point de contact. |
Exemple de code pour utiliser la fonction de valeur de table
SELECT *
FROM ADH.TOUCHPOINT_ANALYSIS(
TABLE tmp.touchpoint_temp_table,
TABLE tmp.user_credit_temp_table,
'SHAPLEY_VALUES')