1. Contexte2. Configuration BigQuery2.1 Création de la requête2.2 Création d’une table2.3 AutomatisationLe format du event_time_conversion3. Configuration Google Ads3.1 Configuration de la conversion3.2 Configuration de l’import3.2.1 Lier la table BigQuery3.2.2 Mapping de la table3.3.3 Lier la conversion Google Ads4. Informations diverses5. Les lignes en erreur
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” :
À 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 :
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 :
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 :
La seconde étape consiste à sélectionner et connecter votre table BigQuery :
À 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
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)
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)
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.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 :
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
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
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é !
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
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”) :
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 :
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 ?