Analyse de la chaîne de Markov

La chaîne de Markov est une fonction statistique qui utilise des méthodes probabilistes pour attribuer le crédit aux différents points de contact publicitaires. Pour cela, elle s'appuie sur la contribution modélisée de la probabilité qu'a un utilisateur d'effectuer une conversion. Le résultat de cette fonction expérimentale peut être utile pour attribuer le crédit à un canal publicitaire, à une campagne ou à un autre point de contact donnés, en fonction de leur contribution modélisée aux événements de conversion.

Fonctionnement

La fonction statistique de chaîne de Markov utilise vos données publicitaires pour créer une chaîne de Markov. Dans cette chaîne, chaque sommet du graphique ordonné représente un point de contact, et chaque arête indique la probabilité de passer au point de contact suivant, sous réserve que l'utilisateur soit au point de contact actuel. Elle suppose que seul le point de contact actuel affecte la probabilité de transition. La contribution de chaque point de contact est ensuite calculée en supprimant le point de contact du graphique, puis en calculant la probabilité modélisée d'une conversion une fois le point de contact supprimé.

Restrictions de confidentialité

Les points de contact doivent inclure au moins 50 utilisateurs ayant réalisé une conversion et 50 n'en ayant pas réalisé, sans quoi ils seront supprimés par les filtres de confidentialité. En outre, les valeurs aberrantes (utilisateurs qui contribuent de manière disproportionnée à un point de contact) peuvent être filtrées. 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 chaîne de Markov.

Les messages de confidentialité sont affichés après chaque itération du modèle de chaîne de Markov. Ces messages incluent des informations sur les utilisateurs et les points de contact filtrés.

Présentation du calcul des valeurs de chaîne de Markov

  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. Les événements qui suivent les conversions sont considérés comme des événements n'ayant généré aucune conversion.

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 MARKOV_CHAINS.

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
Score de chaîne de Markov calculé 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,
  'MARKOV_CHAINS')