Fiche technique

Sous le capot

Ce que l'extension écrit, quand elle l'écrit, selon quelles règles, et ce qu'on peut brancher dessus.

Prérequis

Environnement

ÉlémentExigenceRemarque
WordPress6.0 ou plusÉprouvé jusqu'à 7.1
WooCommerce8.0 ou plusÉprouvé jusqu'à 10.9
PHP8.0 ou plusRecette jouée sur 8.0, 8.2, 8.3 et 8.4
Stockage des commandesHPOS ou wp_postsLes deux, avec des comptages identiques
MultilingueWPML compatibleLes valeurs sont stockées en anglais, traduites à l'affichage
MultideviseouiLa devise est lue sur chaque commande, jamais supposée
Capacité requisemanage_woocommerceContrôlée à l'enregistrement du menu et au rendu

Aucune valeur n'est codée en dur dans le fichier. L'extension s'installe sur n'importe quelle boutique sans qu'une ligne soit touchée. Seul le libellé de l'action de conversion doit être renseigné avant le premier export.

Capture

Points d'accroche et métas

Point d'accrocheRôle
woocommerce_checkout_order_createdCapture au checkout classique, priorité 5
woocommerce_store_api_checkout_order_processedCapture au checkout par blocs
woocommerce_thankyouSecond relevé, pour un consentement donné en cours de parcours

Métas écrites sur la commande

MétaContenu
_neant_gcl_awCookie _gcl_aw brut, forme GCL.<horodatage>.<gclid>
_neant_gcl_gbCookie _gcl_gb — trafic iOS, gbraid
_neant_gcl_auyes / no
_neant_consentyes, no, unknown, undetected
_neant_ty_gcl_aw, _neant_ty_consentRelevé de la page de remerciement
_neant_gads_exported_at, …_export_batchHorodatage et lot d'export
_neant_gads_adjusted_at, …_adjust_batch, …_adjust_typeAjustement émis

La capture écrit même quand aucun cookie n'est présent. Une commande sans _neant_consent signifie « la capture n'a pas tourné » ; une commande au _neant_gcl_aw vide signifie « pas de clic Ads ». Confondre les deux rendrait une collecte interrompue indiscernable d'un mois sans trafic Ads.

Règles

Éligibilité à l'import

Une commande part si toutes les conditions sont vérifiées.

Réf.ConditionMotif si non tenue
E0La capture a tournécapture absente
E1Identifiant de clic présent et parsablegclid absent
E2Identifiant non déjà retenu dans le lotdoublon de #…
E3Statut dans la liste configuréestatut … exclu
E4Montant strictement positifvaleur nulle
E5aCommande dans la fenêtre suivant le cliccommande hors fenêtre du clic
E5bClic encore importable aujourd'huiclic de plus de 90 jours
E6Pas déjà exportéedéjà exporté le …

E2 se juge parmi les commandes par ailleurs exportables. Si la plus ancienne des deux partageant un identifiant est annulée, la suivante prend sa place — sinon la conversion se perdrait entre les deux. À date égale, l'identifiant de commande tranche, pour que deux exports du même lot retiennent la même ligne.

Le consentement n'entre pas dans ces règles. Il est affiché, jamais appliqué.

Ajustements

Réf.ConditionRésultat
A1Conversion déjà exportéesinon, rien à ajuster
A2Statut passé à cancelled, refunded, failedRETRACT
A3Remboursement couvrant tout le montantRETRACT, quel que soit le statut
A4Remboursement partielRESTATE sur le reste
A5Conversion de plus de 24 hsinon trop récent
A6Conversion de moins de 54 jourssinon hors fenêtre d'ajustement
A7Aucun ajustement déjà émissauf escalade RESTATERETRACT

A7 n'autorise l'escalade que dans un sens. Un remboursement partiel suivi d'une annulation est courant, et s'arrêter au premier ajustement laisserait la conversion comptée pour le reste. L'inverse est impossible : Google est explicite, une conversion rétractée ne peut plus être ajustée.

Formats

Les deux fichiers

Import de conversions

Parameters:TimeZone=Europe/Brussels
"Google Click ID","Conversion Name","Conversion Time","Conversion Value","Conversion Currency","Order ID"
Cj0KCQjw…,Achat - import hors connexion,2026-07-31 07:46:18+02:00,335.00,EUR,66658

Order ID est facultative pour Google et décisive ici : c'est la clé recommandée pour rattacher un ajustement ultérieur. Sans elle, une rétractation devrait s'appuyer sur le couple identifiant + horodatage, que le moindre écart de fuseau désaligne.

Ajustements

"Order ID","Conversion Name","Adjustment Time","Adjustment Type","Adjusted Value","Adjusted Value Currency"
66658,Achat - import hors connexion,2026-09-12 14:22:03+02:00,RETRACT,,
66643,Achat - import hors connexion,2026-09-03 09:15:41+02:00,RESTATE,150.00,EUR

Ce fichier ne porte pas de ligne Parameters:TimeZone= : le fuseau se déclare dans chaque Adjustment Time. Une rétractation laisse valeur et devise vides — y écrire un zéro se lirait comme une réévaluation à zéro.

Les deux fenêtres diffèrent : 90 jours pour importer depuis le clic, 54 jours pour ajuster depuis la conversion, dont 7 pour que les enchères en tiennent compte. Une conversion importée tardivement peut naître irrétractable.

Consentement

Adaptateurs par bannière

L'état du consentement publicitaire est lu auprès de la bannière du site. Le premier adaptateur dont le cookie répond l'emporte.

PlateformeSignalLecture
CookieYescookieyes-consentadvertisement:yes / :no
Complianzcmplz_marketingallow / deny
Axeptioaxeptio_authorized_vendorsfournisseur publicitaire dans la liste
Borlabs Cookieborlabs-cookiecatégorie marketing non vide

undetected et no ne se confondent jamais. L'un dit que la personne a refusé, l'autre que l'outil ne sait pas lire cette bannière. Les écraser sur une même valeur produirait une colonne qui a l'air d'informer alors qu'elle ne fait que constater sa propre cécité.

Points d'extension

Filtres

FiltreUsage
neant_gads_consent_adaptersBrancher un adaptateur maison. Placé en tête, il l'emporte sur ceux livrés.
neant_gads_axeptio_ad_vendorsAdapter la nomenclature de fournisseurs Axeptio du site.
neant_gads_root_menu_labelRenommer l'entrée racine du menu d'administration.

Flux d'ajustements

ÉlémentValeur
Route/wp-json/neant-gads/v1/adjustments.csv
AuthentificationBasic, comparaison à temps constant
TransportHTTPS obligatoire, recontrôlé à chaque appel
Débit30 requêtes par heure et par adresse
PérimètreFigé côté serveur, jamais pilotable par l'URL
Requête HEADServie à blanc : elle ne consomme pas la file

Désinstallation

Les options et la tâche planifiée sont retirées. Aucune méta de commande n'est supprimée : elles sont la seule trace des conversions récupérables, et une désinstallation par erreur les rendrait définitivement irrécupérables. Le coût d'un résidu en base est nul ; celui d'une suppression ne l'est pas.