Analyse de la valeur de Shapley

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

  1. Créer les tables de points de contact et de crédit :
    1. touchpoint_temp_table.
    2. user_credit_temp_table.
  2. 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')