Guide d'installation TCRM

Étape 1: Configurez Google Cloud Platform (GCP)

AVERTISSEMENT: Les projets GCP appartenant à Google peuvent être appliqués par Enforcer (ECP). Dans ce cas, l'installation échoue, et une clé de sécurité vous est demandée. Pour éviter cela, créez un projet GCP (l'application ECP prend environ 24 heures pour le trouver) ou utilisez un projet public qui n'est pas appliqué pendant que nous essayons de trouver une solution permanente à ce problème.

1.1 Sélectionner ou créer un projet GCP

Créez un projet Google Cloud Platform ou utilisez un projet existant. Ouvrez-le et assurez-vous que le nom du projet s'affiche en haut de la page.

Étape 2: Installez TCRM

2.1 Demander l'accès au dossier de code TCRM

Jusqu'à ce que TCRM soit disponible en Open Source et disponible en externe, une autorisation de clonage est nécessaire pour chaque utilisation. Envoyez ce formulaire de demande d'accès pour cloner le dossier de code TCRM.

2.2 Installer TCRM

  1. Cliquez sur l'icône Cloud Shell dans l'angle supérieur droit de la page pour ouvrir la ligne de commande GCP.

  2. Exécutez la commande suivante dans l'interface système pour cloner le dossier du code TCRM:

      git clone https://github.com/google/TaglessCRM.git
    

  3. Ensuite, exécutez la commande suivante:

      cd TaglessCRM && sh setup.sh --project_id=$GOOGLE_CLOUD_PROJECT
    

REMARQUE: Cette commande effectuera les trois étapes suivantes:

  1. Créez un environnement virtuel Python et installez tous les packages Python requis.
  2. Activez les API Cloud requises dans le projet GCP.
  3. Créer un environnement Cloud Composer et y déployer les DAG TCRM

REMARQUE: L'installation devrait prendre environ deux heures. Veuillez attendre la fin de l'exécution du script.

Étape 3: Configurez Airflow et configurez des variables

3.1 Configurer la connexion BigQuery

Pour lire des données issues de BigQuery, vous devez associer votre compte de service à la connexion BigQuery.

Cliquez sur Identité > Comptes de service. Cliquez ensuite sur les trois points à côté du compte de service commençant par tcrm-sa, puis sélectionnez Créer une clé → JSON → Créer.

Ouvrez la clé téléchargée dans un éditeur de texte et copiez le code JSON.

Revenez à Airflow (Composer → Airflow), puis sélectionnez Admin → Connections.

Cliquez sur l'icône en forme de crayon à côté de la connexion bigquery_default.

REMARQUE: Le nom de connexion par défaut est bigquery_default. Si vous utilisez un autre nom de connexion BigQuery, assurez-vous de définir les monitoring_bq_conn_id et les bq_conn_idvariables Airflow (pas les connexions) avec le nouveau nom de connexion.

CONSEIL: Consultez cette page pour en savoir plus sur la gestion des connexions Airflow.

Collez le fichier JSON du compte de service dans le champ "Keyfile JSON", puis cliquez sur "Save" (Enregistrer).

3.2 Configurer des variables à l'aide de l'interface utilisateur Airflow

  1. Ouvrez le menu en haut à gauche de l'écran. Cliquez ensuite sur Composer pour ouvrir la page Environnements Composer.

  2. Sur l'écran Composer, recherchez la ligne nommée tcrm-env sur le côté gauche de la liste. Sur cette ligne, cliquez sur le lien Airflow pour ouvrir la console Airflow.

  3. Dans la console Airflow, cliquez sur l'option Admin dans la barre de menu supérieure, puis sélectionnez Variables dans le menu déroulant.

  4. Sur l'écran "Variables", cliquez sur Create.

  5. Pour ajouter une variable, saisissez son nom et sa valeur, puis cliquez sur save. Reportez-vous aux deux étapes suivantes pour savoir quelles variables sont nécessaires pour chaque DAG.

3.3 Configurer les variables générales du DAG

Le tableau suivant contient les variables générales nécessaires à tous les DAG. Les valeurs par défaut de ces variables sont déjà configurées automatiquement. Vous n'avez donc rien à modifier si les valeurs par défaut correspondent à vos besoins. Toutefois, vous pouvez modifier ces variables à tout moment en définissant une autre variable Airflow avec le même Variable Name sur une autre valeur.

Pour que les DAG aient une configuration différente, certains noms de variables contiennent le nom du DAG en tant que préfixe. Veillez à remplacer la partie <DAG Name> et à utiliser le bon nom de DAG.

Par exemple, pour définir la variable de planification pour le DAG tcrm_gcs_to_ga, prenez le nom de la variable figurant dans le tableau <DAG Name>_schedule ci-dessous et créez une variable appelée tcrm_gcs_to_ga_schedule. Pour planifier le DAG tcrm_gcs_to_ads_oc, créez une variable appelée tcrm_gcs_to_ads_oc_schedule.

Le nom du DAG se trouve dans l'interface utilisateur d'Airflow, dans l'onglet des DAG :

3.3.1 Tableau des variables générales
Nom de la variable Valeur par défaut Informations sur la variable
<DAG_Name>_retries 0 Entier. Nombre de fois où Airflow tente de réexécuter le DAG en cas d'échec. Nous vous recommandons de conserver la valeur 0, car TCRM possède son propre mécanisme de nouvelle tentative. Toutefois, si vous le définissez sur un autre nombre entier, aucune erreur ne se produira, mais vous ne tenterez pas de renvoyer les événements ayant précédemment échoué.
<DAG_Name>_retry_delay 3 Entier. Nombre de minutes entre chaque exécution du DAG.
<DAG_Name>_schedule @once Planification du DAG Pour en savoir plus sur la planification des DAG, consultez la section 3.3.2 Planifier un DAG.
<DAG_Name>_is_retry 1 1 pour l'activer, 0 pour le désactiver. Indique si le DAG doit réessayer d'envoyer les événements ayant précédemment échoué à la même source de sortie. Il s'agit d'une nouvelle tentative interne d'envoi d'événements ayant échoué à partir d'exécutions similaires précédentes. Il est différent de la nouvelle tentative Airflow sur le DAG complet. Pour en savoir plus, consultez la section Mécanismes de nouvelle tentative de ce guide d'utilisation.
<DAG_Name>_is_run 1 1 pour l'activer, 0 pour le désactiver. Indique si le DAG doit inclure une exécution principale. Cette option peut être désactivée si l'utilisateur souhaite ignorer l'exécution principale et n'exécuter que l'opération de nouvelle tentative. Consultez la section Exécuter de ce guide d'utilisation pour en savoir plus.
<DAG_Name>_enable_run_report 0 1 pour l'activer, 0 pour le désactiver. Indique si le DAG renverra ou non un rapport en cours d'exécution. Tous les DAG ne disposent pas de rapports. Pour en savoir plus, consultez la section Rapports de ce guide d'utilisation.
<DAG_Name>_enable_monitoring 1 1 pour l'activer, 0 pour le désactiver. Pour en savoir plus, consultez la section Surveillance de ce guide d'utilisation.
monitoring_dataset tcrm_monitoring_dataset ID de l'ensemble de données de la table de surveillance.
monitoring_table tcrm_monitoring_table Nom de la table de surveillance.
monitoring_bq_conn_id bigquery_default ID de connexion BigQuery pour la table de surveillance. Il peut être identique ou différent de l'ID de connexion BQ d'entrée.
3.3.2 Planifier un DAG

Pour configurer le programmeur de DAG, créez une variable de planification pour chaque DAG que vous souhaitez planifier. Le nom de la variable doit commencer par le nom du DAG, suivi de _schedule.

La valeur de la variable doit correspondre à l'intervalle auquel vous souhaitez planifier votre DAG. Exemple :

Insérez @une seule fois pour exécuter le DAG une seule fois, ou insérez @daily ou @weekly pour configurer l'exécution du DAG en conséquence. Consultez ce guide pour en savoir plus sur toutes les options de planification disponibles.

Il s'agit de variables facultatives. Si aucune variable de planification n'est définie, la planification par défaut pour tous les DAG est @once.

3.4 Configurer des variables DAG spécifiques

La section suivante indique les variables nécessaires pour exécuter chaque DAG. Vous ne devrez configurer des variables que pour les DAG que vous prévoyez d'utiliser.

3.4.1 DAG de tcrm_bq_to_ga

Pour exécuter le DAG tcrm_bq_to_ga, définissez les variables suivantes:

  • bq_dataset_id : nom de l'ensemble de données BigQuery contenant les données. Exemple : my_dataset
  • bq_table_id: nom de la table BigQuery contenant les données. Exemple : my_table
  • ga_tracking_id : ID de suivi Google Analytics. Exemple : UA-123456789-1

3.4.2 DAG tcrm_gcs_to_ga

Pour exécuter le DAG tcrm_gcs_to_ga, définissez les variables suivantes:

  • gcs_bucket_name: nom du bucket Cloud Storage. Exemple : my_bucket
  • gcs_bucket_prefix: chemin d'accès au dossier de données dans le bucket. Exemple : folder/sub_folder
  • gcs_content_type (facultatif) Type de contenu Cloud Storage. JSON ou CSV.
  • ga_tracking_id: ID de suivi Google Analytics. Exemple : UA-123456789-1

3.4.3 DAG tcrm_bq_to_ads_oc

Pour exécuter le DAG tcrm_bq_to_ads_oc, définissez les variables suivantes:

3.4.4 DAG tcrm_gcs_to_ads_oc

Pour exécuter le DAG tcrm_gcs_to_ads_oc, définissez les variables suivantes:

  • gcs_bucket_name: nom du bucket Cloud Storage. Exemple : my_bucket
  • gcs_bucket_prefix : chemin d'accès au dossier de données dans le bucket. Exemple : folder/sub_folder
  • gcs_content_type(facultatif) Type de contenu Cloud Storage. JSON ou CSV.
  • ads_credentials : informations d'authentification pour l'API Google AdWords. Pour en savoir plus, consultez la section 3.5.1 Créer une chaîne YAML ads_credentials pour l'authentification Google Ads.

3.5 S'authentifier auprès des plates-formes Google

3.5.1 Créer une chaîne YAML ads_credentials pour l'authentification Google Ads

Pour vous authentifier auprès de Google Ads, vous devez créer une chaîne au format YAML et l'enregistrer en tant que paramètre Airflow. Ce paramètre sera utilisé par TCRM pour l'authentification entre TCRM et Google Ads. Le format de la chaîne est le suivant:

developer_token: abcd
client_id: test.apps.googleusercontent.com
client_secret: secret
refresh_token: 1//token
login_customer_id: 1234567890
use_proto_plus: True

login_customer_id est indiqué en haut à droite au-dessus de votre e-mail une fois que vous êtes connecté à Google Ads. Le numéro client doit être un numéro de compte CM qui inclut les comptes Google Ads que vous souhaitez automatiser.

developer_token se trouve dans le centre API une fois que vous êtes connecté à votre compte CM Google Ads.

client_id et client_secret peuvent être créés sur la page "API et services" de la console GCP.

refresh_token peut être généré en procédant comme suit:

  • Télécharge le script Python.

  • Exécutez le script Python avec les paramètres requis dans un terminal. python generate_refresh_token.py --client_id INSERT_CLIENT_ID --client_secret INSERT_CLIENT_SECRET

  • Cliquez sur le lien.

  • Choisissez le compte de messagerie autorisé à modifier vos données Google Ads, puis cliquez sur "Autoriser".

  • Copiez le code et collez-le dans le terminal après le code. Le jeton d'actualisation sera affiché ci-dessous.

Étape 4: Préparez les données à envoyer

4.1 Préparer les données pour Google Analytics (GA)

REMARQUE: Reportez-vous à l'API du protocole de mesure pour connaître les exigences détaillées.

Pour envoyer vos données à GA, vous avez le choix entre trois options:

  1. Depuis BigQuery à l'aide du DAG tcrm_bq_to_ga au format de table SQL.

  2. Depuis Google Cloud Storage, en utilisant le DAG tcrm_gcp_to_ga au format JSON.

{"cid": "12345.67890", "t":"event", "ec": "video", "ea": "play", "el": "holiday", "ev": "300" }
{"cid": "12345.67891", "t":"event", "ec": "video", "ea": "play", "el": "holiday", "ev": "301" }
{"cid": "12345.67892", "t":"event", "ec": "video", "ea": "play", "el": "holiday", "ev": "302" }
{"cid": "12345.67893", "t":"event", "ec": "video", "ea": "play", "el": "holiday", "ev": "303" }
  1. Depuis Google Cloud Storage, en utilisant le DAG tcrm_gcp_to_ga au format CSV.
cid,t,ec,ea,el,ev
12345.67890,event,video,play,holiday,300
12345.67891,event,video,play,holiday,301
12345.67892,event,video,play,holiday,302
12345.67893,event,video,play,holiday,303

AVERTISSEMENT: Pour vous assurer que GA accepte les données envoyées par TCRM, vous devez configurer le filtrage des bots de GA. Pour ce faire, accédez à Admin -> View Settings -> Bot Filtering dans votre interface utilisateur Google Analytics, puis décochez "Exclure tous les appels provenant de robots connus".

4.2 Préparer les données pour la conversion hors connexion Google Ads

Pour envoyer vos données à Google Ads, vous avez le choix entre trois options:

  1. Depuis BigQuery à l'aide du DAG tcrm_bq_to_ads_oc au format de table SQL.

  2. Depuis Google Cloud Storage, en utilisant le DAG tcrm_gcs_to_ads_oc au format JSON.

{"conversionName": "my_conversion_1", "conversionTime":"20191030 122301 Asia/Calcutta", "conversionValue": "0.47", "googleClickId": "gclid1"}
{"conversionName": "my_conversion_1", "conversionTime":"20191030 122401 Asia/Calcutta", "conversionValue": "0.37", "googleClickId": "gclid2"}
{"conversionName": "my_conversion_2", "conversionTime":"20191030 122501 Asia/Calcutta", "conversionValue": "0.41", "googleClickId": "gclid3"}
{"conversionName": "my_conversion_2", "conversionTime":"20191030 122601 Asia/Calcutta", "conversionValue": "0.17", "googleClickId": "gclid4"}
  1. Depuis Google Cloud Storage, en utilisant le DAG tcrm_gcp_to_ads_oc au format CSV.
conversionName,conversionTime,conversionValue,googleClickId
my_conversion_1,20191030 122301 Asia/Calcutta,0.47,gclid1
my_conversion_1,20191030 122401 Asia/Calcutta,0.37,gclid2
my_conversion_2,20191030 122501 Asia/Calcutta,0.41,gclid3
my_conversion_2,20191030 122601 Asia/Calcutta,0.17,gclid4

Étape 5: Exécutez TCRM

Dans la console Airflow, cliquez sur l'option DAGs dans la barre de menu supérieure. Recherchez le DAG que vous souhaitez exécuter dans la liste de gauche. Exécutez-le ensuite en cliquant sur le bouton Play à droite de la liste.