23 avril 2012
D'après la documentation de Google Analytics, il est possible d'annuler une commande (ou transaction). Cette opération consiste à envoyer des valeurs négatives au niveau des informations de la transaction (montant, TVA, Livraison, et Quantité de produit). Seulement, tous les indicateurs e-commerce ne sont pas "corrigés" …
Lors d'une "annulation", que se passe-t-il techniquement ?
Dans plusieurs fils de discussion de différents forums, j'ai constaté que le problème de l'annulation de commandes dans Google Analytics était récurrent, et que la solution technique évidente préconisée par Google était appliquée, en considérant que toutes les corrections sont appliquées. Mais en raisonnant par rapport aux mécanismes de calcul des certains indicateurs, qu'en est-il exactement ? Appliquant ces indications de la documentation officielle, j'ai réalisé une expérience simple d'envois d'information e-commerce. Ainsi, lors de 6 visites simulées, une transaction a été enregistrée à chaque fois. Puis trois commandes ont été annulées via trois visites. Parmi ces trois, deux correspondent à des annulations de commandes existantes, la troisième (n° 201227173238) n'existant pas. Cet article n'abordera pas les aspects analytiques liés à la notion d'annulation de commande, ni sa pertinence. Il se concentrera seulement sur les aspects techniques, dont une partie est très peu abordée dans la "littérature" (web ou papier).
La technique d'annulation
Pour une transaction décrite ainsi dans le marqueur de GA (ici en mode asynchrone) :
var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-27182-8']); _gaq.push(['_trackPageview']); _gaq.push(['_addTrans', '314159', // Numéro de commande (obligatoire) 'Site', // Affiliation ou nom du magasin '750', // Total (obligatoire) '147', // Taxe '1', // Frais de port 'Paris', // Ville 'Ile-de-France', // État ou région 'France' // Pays ]); _gaq.push(['_addItem', '314159', // Numéro de commande (obligatoire afin d'associer l'article à la transaction) 'G', // Référence/code produit (obligatoire) 'Module G', // Nom du produit 'Formation Analytics', // Catégorie ou variante '750', // Prix unitaire (obligatoire) '1' // Quantité (obligatoire) ]); _gaq.push(['_trackTrans']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl': 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
Voici la méthode d'annulation consiste à renvoyer les mêmes informations, sauf que les valeurs de quantité et de montant sont négatives :
var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-27182-8']); _gaq.push(['_trackPageview']); _gaq.push(['_addTrans', '314159', // Numéro de commande (obligatoire) 'Site', // Affiliation ou nom du magasin '-750', // Total (obligatoire) '-147', // Taxe '-1', // Frais de port 'Paris', // Ville 'Ile-de-France', // État ou région 'France' // Pays ]); _gaq.push(['_addItem', '314159', // Numéro de commande (obligatoire afin d'associer l'article à la transaction) 'G', // Référence/code produit (obligatoire) 'Module G', // Nom du produit 'Formation Analytics', // Catégorie ou variante '-750', // Prix unitaire (obligatoire) '-1' // Quantité (obligatoire) ]); _gaq.push(['_trackTrans']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl': 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();
L'annulation amène des corrections...
Le chiffre d'affaire, les taxes, la livraison et les quantités sont corrigés grâce aux valeurs négatives transmises, comme illustré dans le rapport [Conversion / Commerce électronique / Transactions] (encadrés verts) :
Une transaction dont toutes les valeurs sont annulées disparaît dans le rapport [Conversion / Commerce électronique / Transactions]. Il ne reste alors que les commandes non annulées (ou pour lesquelles il reste des produits de quantité non nulles), pour des périodes d'analyse couvrant les commandes et leur annulation :
Mais on trouve également dans la liste des transactions celles qui sont négatives, car ne correspondant pas à une commande existante. Du coup, le chiffre d'affaire et les autres principaux indicateurs pré-cités seront biaisés par ces dernières.
Le contenu de cette transaction 201227173238 "négative" apparaît ainsi, avec des valeurs négatives (encadrées en orange) :
Mais il y a aussi des biais...
Les nombres de transactions et d'achats uniques (nombre total de fois où un produit spécifié a fait partie d'une transaction) augmentent au lieu d'être ajustés :
En effet, nous devrions lire 5 transactions = 6 commandes - 2 annulations valides + 1 annulation invalide. Les produits avec une quantité d'achat nulle apparaissent dans le rapport [Conversion / Commerce électronique / Performance des produits], car le nombre d'achats uniques n'est pas nul (4 achats uniques pour zéro quantité) :
Cet affichage nous montre donc que l'indicateur achats uniques n'est pas corrigé. Par ailleurs, le taux de conversion du commerce électronique peut être erroné. Pourquoi ?
Ce taux égale le nombre de visites avec transactions divisé par le nombre de visites. L'annulation d'une commande est comptabilisée comme une transaction, car correspondant à l'envoi d'informations e-commerce, et peut engendrer une visite avec conversion. L'acte d'annulation va donc augmenter le taux de conversion, d'une façon insignifiante mais possiblement importante si cette opération est réalisée fréquemment et automatiquement (amenant mécaniquement la comptabilisation d'une visite par annulation).
Conclusion
S'il est intéressant de pouvoir corriger les données e-commerce dans GA, surtout pour un site connaissant beaucoup d'annulations de commandes préalablement enregistrées dans GA (afin de minimiser les biais dans les analyses), cet outil ne doit pas être considéré comme un back-office de comptabilité e-commerce. De plus toute erreur dans une annulation peut entraîner des effets de bords rapidement ingérables. Nous abordons tous ces sujets lors de nos différentes formations concernant Google Analytics. Nicolas GUILLARD
A propos de l'auteur : Nicolas Guillard
Expert SEO et Web Analytics, Nicolas Guillard est consultant et formateur chez Ranking Metrics. Bon pédagogue (il enseigne depuis 15 ans), il anime les formations Google Analytics de Ranking Metrics. Il maîtrise les principaux outils de Web Analytics tels que Google Analytics (il est GAIQ), Site Catalyst (avec la certification Advanced Implementation), AT Internet Analyzer. Il intervient depuis 6 ans chez des grands comptes du Web.
Vous avez aimé cet article, partagez-le sur vos réseaux sociaux !
Tweet |
Suivez-nous sur les réseaux sociaux !
avril 25th, 2012 à 8 h 40 min
En attendant que Google ajoute un bouton "Annuler cette transaction"....
avril 25th, 2012 à 12 h 57 min
Merci Julien A. N'hésitez pas à remonter vos besoins de formation via notre formulaire de contact.
avril 25th, 2012 à 12 h 29 min
Très intéressant article, j’espère que les publications continueront ici.
Dommage ! Je m'attendais à une solution pour "normaliser" tout ceci, mais elle semble ne pas exister, tout du moins, simplement.
Et il ne faut pas hésiter à venir à Marseille pour les formations Nicolas !
Vous faites pas cette année 🙁 et je m'ennuie
septembre 12th, 2012 à 11 h 45 min
J'avais signalé à Google il y a presque deux ans ce bug de l'annulation, car on peut considérer ça comme un bug ! Ça fausse les données et c'est bien dommage ! Ils m'avaient répondu qu'une annulation était une transaction...