Guide - Comment importer des données Big Query dans la plateforme Google Ads ?

Image without caption

1. Contexte

Dans le cadre d’un suivi des conversions online non captées par Google Ads nous souhaitions identifier et attribuer les visites Google Ads ayant participé aux parcours, à l’interface.
Dans notre cas et dû à des contraintes, nous avons créé une table BigQuery permettant de rattraper les contributions perdues par Google, dues au parcours spécifique de notre tunnel de conversion. Une fois recalculées, nous avons donc pour objectif d’importer ces conversions rattrapées pour Google Ads
👉
Dans cet article, le but sera donc de voir, étape par étape, comment paramétrer la connexion entre une table Big Query et Google Ads

2. Configuration BigQuery

Dans un premier temps, comme précisé ci-dessus, il a fallu se baser sur un recalcul effectué dans BigQuery pour récupérer uniquement les données dont nous avons besoin. Une fois fait on pourra importer les données dans Google Ads

2.1 Création de la requête

Tout d’abord nous avons créé une requête permettant de récupérer les informations importantes, nécessaires à l’attribution et au calcul de Google Ads, à savoir :
  • gclid
  • hashed_email
  • hashed_phone
  • conversion_time
Les autres colonnes ont principalement pour but d’apporter un peu de contexte avec : le nom de la conversion ou des changements de format.
La requête en question nous permet de sélectionner directement toutes les conversions recalculées dans le jeu de données de réattribution qui sont liées à un gclid et d’en créer une table BQ

2.2 Création d’une table

Une fois que la requête a été créée, plutôt que d’utiliser une vue nous préférons intégrer les données via une table.
Le problème avec le fait de lier une vue comme source de données à Google Ads est notamment que : une vue ne stocke pas de données et fait simplement appel à la requête liée. De son côté, Google Ads, lorsqu'il essaie de lire cette vue, n'exécute pas la requête SQL sous-jacente. Il attend simplement une table avec des données statiques, ce qui pose problème si la vue effectue des calculs (ce qui est notre cas).
Ce point nous amène au suivant qui est le fait d’automatiser l’alimentation de la table d’import en données

2.3 Automatisation

Cette partie est relativement simple puisqu’il s’agit simplement de modifier légèrement la requête, afin que celle-ci alimente la table servant d’import des données dans Google Ads.
Ici on applique à la requête quelques calculs supplémentaires. Déjà, on s’assure d’avoir un gclid, sinon la donnée n’est pas intégrée à la table. Afin que les données correspondent à la configuration d’interface, que nous verrons en fin de documentation, un nettoyage de l’import est effectué tous les 90j.
👉
À noter : Nous avons souhaité faire en sorte que l’automatisation se lance tous les matins à 8h30 afin d’être en synergie avec la mise à disposition de la donnée du recalcul d’attribution

Le format du event_time_conversion

Afin de correspondre aux attentes de Google Ads, il est nécessaire de modifier le format du timestamp de la conversion car celui-ci, provenant de Piano Analytics, ne correspond pas à ce qu’attend Google Ads.
⚠️
Nous avons donc ajouté une colonne afin de correspondre au format attendu avec un encodage UTC ISO 8601 Standard. En plus de cela, il est important de noter qu’il est nécessaire d’appliquer une transformation dans l’interface Google Ads au moment du matching des colonnes !

3. Configuration Google Ads

3.1 Configuration de la conversion

Rien de bien sorcier ici, il suffit simplement de créer une conversion comme d’habitude via Google Ads, la (légère) subtilité étant de préciser que c’est une conversion alimentée par import de données depuis des fichiers ou une autre sources.
Puisque ces conversions sont des conversions onlines non identifiées par Google Ads nous sélectionnons “Track conversions from clicks” :
Image without caption
À noter tout de même que dans le paramétrage de la conversion, il peut vous être proposé d’activer la fonctionnalité “Enhanced conversion for Leads” si elle ne l’est pas déjà ce que nous conseillons fortement :
Image without caption
Cette fonctionnalité permet d’appliquer le fonctionnement du Enhanced conversions selon les informations de l’utilisateur (email et numéro de téléphone) pour augmenter la fiabilisation d’attribution de l’import des données !

3.2 Configuration de l’import

Une fois la table BQ préparée et la conversion créée, nous avons paramétré l’import des données dans l’interface Google Ads. Pour cela il faut passer par l’outil Data Manager et connecter BigQuery.
⚠️
Attention des droits suffisants dans les deux outils sont nécessaires pour effectuer cette connexion

3.2.1 Lier la table BigQuery

Comme précisé ci-dessus, il est nécessaire d’avoir les droits suffisants dans les deux interfaces. Pour la liaison BigQuery, il faut donc accéder à l’outil Data Manager de Google Ads :
Depuis cette interface, il suffit ensuite de connecter un nouveau produit via l’un des deux boutons :
Image without caption
La première partie de ce setup consiste simplement à définir le type de donnée que vous allez lier et pour cela il faut choisir la connexion directe et sélectionner conversions ou audiences selon le besoin :
Image without caption
La seconde étape consiste à sélectionner et connecter votre table BigQuery :
Image without caption
Icon
À noter : vous pouvez appliquer un filtrage sur les données importées de votre table.
Par exemple il est possible de gérer le consentement pour importer uniquement les conversions avec consentement
Image without caption
Enfin, vous avez la dernière étape qui consiste à mapper les champs BigQuery. Comme cette étape est primordiale et comporte plusieurs informations à avoir en tête, les informations sont détaillées dans la section ci-dessous.

3.2.2 Mapping de la table

Après avoir lié la table souhaitée, vient l’étape du mapping entre les colonnes BigQuery et les champs Google Ads 2 champs minimum sont obligatoires :
  • Le timestamp de la conversion importée
  • Le gclid ou un champ identifiant comme l’email / téléphone encodés en SHA256 (dans le cas du Enhanced conversion for leads il faut ajouter les informations d’emails et de numéros de téléphone)
Image without caption
C’est ici qu’il faut intégrer une transformation de la donnée et porter une attention particulière au champ du timestamp de conversion. En effet, par défaut Google Ads spécifie attendre une donnée en Integer pour ce champ alors que ce n’est pas ce qu’il faut importer…
→ Nous n’avons pas essayé d’encoder le timestamp en format UNIX et c’est peut-être une importation correcte ici
👉
Comme précisé plus haut, de notre côté, nous avons dû créer la colonne conversion_time de la table BigQuery au format STRING avec un timestamp en affichage UTC ISO 8601 Standard comme précisé dans leur documentation :
⚠️
Même lorsque le format est correct, il faut tout de même appliquer une transformation qui est le parsing de Timestamp, en faisant bien attention de sélectionner la timezone correspondante afin d’éviter des erreurs d’importation (cf. tableau ci-dessous)
Image without caption
Une fois le mapping effectué il suffit de sélectionner à quelle fréquence / créneau vous souhaitez paramétrer l’import et de valider !
Vous pouvez attendre le créneau que vous aviez sélectionné ou bien déclencher manuellement le premier import si vous le souhaitez. La seconde solution est intéressante puisqu’elle vous permet de voir rapidement si vous avez des erreurs et pour cela il suffit de cliquer sur le bouton Run now en haut à droite du tableau d’import.
Image without caption
⚠️
Attention tout de même, lors de nos imports manuels nous avons rapidement fait face à un message nous indiquant d’attendre 4h avant de réessayer, il ne faut donc pas partir du principe qu’on peut le solliciter infiniment

3.3.3 Lier la conversion Google Ads

Depuis les conversions
Puisque votre conversion est déjà créée (vu en étape 3.1) il suffit de se rendre dans sa configuration et de cliquer en bas sur Connect source puis de sélectionner la source souhaitée :
Image without caption
Depuis Data manager
Depuis les connexions de Data Manager, vous pouvez également effectuer le lien entre votre conversion et la table BigQuery. Il y aura 2 possibilités qui sont :
  • Le bouton en haut de l’interface
  • Depuis la connexion via le CTA
Image without caption
En cliquant sur l’ajout de la source depuis la conversion (en haut) il suffira de sélectionner la source BigQuery existante.
Si vous cliquez en bas sur le fait d’ajouter une action de conversion, il faudra créer une nouvelle conversion pour la relier à la table en question

4. Informations diverses

Icon

Délai de processing

Point à noter, lors d’un import de conversions il y a un délai entre l’import d'une conversion et son affichage sur le compte, correspondant au processing Google Ads.
Le traitement des conversions prend en général moins de 12 heures, mais n’est pas instantané !
Icon

Méthode d’écriture BQ

Vous avez deux possibilités concernant la méthode d’écriture de votre import :
  • Ajouter les lignes conversions à la table BQ au fur et à mesure (jour après jour par exemple)
  • Réécrire le fichier chaque jour sans conserver les anciennes lignes
Notez que dans le premier cas, vous pourrez potentiellement remonter plus de lignes en erreur, car elles pourront être considérées comme des doublons par Google Ads.
C’est une erreur mais celle ci ne signifie pas que votre import de conversion ne fonctionne pas
Icon

Test import Google Sheet

Si vous souhaitez effectuer des tests d’importation nous pouvons conseiller une méthode qui n’a pas vocation première à cela mais qui s’est avérée très pratique !
Dans la partie Uploads de l’interface Google Ads, vous pouvez importer des fichiers Google Sheet (sans nécessité de les valider si vous cliquez sur “Prévisualiser”) :
Image without caption
Ici, vous pourrez avoir accès au détail des lignes éventuellement en erreur lors de l’import et ce point est très important car c’est l’unique méthode pour avoir du détail…
Nous avons donc effectué un appel entre notre table BQ et Google Sheet via AppScript pour tester indirectement les données de notre import BQ !

5. Les lignes en erreur

Pour en avoir rencontré un certain nombre, voici un résumé des différentes erreurs que vous pouvez rencontrer et éventuellement comment les corriger
Erreur
Signification
Correctif
L'événement importé ne peut pas être enregistré car son clic s'est produit avant la fenêtre de clic de cette conversion. Veillez à importer les données les plus récentes.
La période de conservation maximale du GCLID est de 90 jours. Cette erreur signifie que des lignes dépassent cette période maximale Elle peut également s'afficher si la ligne importée est plus ancienne que la période spécifiée dans votre “Click-through conversion window”
- Importer vos conversions plus souvent - Si votre conversion a lieu après 90 jours, d'importer une autre conversion hors connexion qui se situe dans la fenêtre Il est également possible que cette erreur soit “normale” et que vous n’ayez rien à retoucher si vous envoyez un grand flux de conversions sans filtrer leur date
L'ID de clic Google importé (GCLID) n'a pas pu être décodé. Assurez-vous que les ID de clics sont corrects et réessayez.
Ici c’est assez lisible mais l’idée est que Google Ads n’a pas su décoder la valeur envoyée dans la colonne gclid
Assurez vous de la validité des valeurs dans la colonne du gclid (par exemple pas de caractère supplémentaires comme un espace ou autre)
L'événement importé a un horodatage qui précède le clic. Assurez-vous que les horodatages de vos événements sont corrects et réessayez.
Une nouvelle fois, le problème ici va être liée aux timestamps. Cette erreur précise que le timestamp indiqué de la conversion importée a eu lieu avant l’attribution du gclid
La première vérification à effectuer est que vous gérez correctement la partie UTC. Si le problème persiste, ce qui est (étrangement) préconisé par Google ici est d’ajouter 2 jours à votre timestamp de conversion
Il faut bien noter que les erreurs ne sont malheureusement pas détaillées par Google Ads et qu’elles sont répertoriées par “échantillonage” (sample).
Cela veut tout simplement dire que si vous avez 22 lignes en erreur par exemple et 2 erreurs différentes qui répertorient chacunes 3 samples, vous ne pourrez ni savoir quelles lignes sont en erreur, ni l’erreur concernées évidemment.
Exemple :
Image without caption

Constat visible

  • 22 lignes en erreur
  • 3 erreurs différentes
    • 1 sample pour la première
    • 3 samples pour les deux autres

Conclusion impossible

  • Quelle ligne est en erreur sur la totalité de l’import ?
  • Quelle erreur s’attribue à quelle ligne ?
  • Combien de lignes sont concernées pour chaque erreur ?

Powered by Notaku