Nous avons configuré le suivi Google Analytics Ecommerce via Google Tag Manager.
Code:
$tracking_script = "
dataLayer.Push({
'transactionId': '$ref',
'transactionAffiliation': '$cartec_name',
'transactionTotal': '$amount',
'transactionTax': '',
'transactionShipping': '',
'transactionProducts': [{
'sku': 'DD-{$amount}-{$currency}',
'name': '{$cartec_name}_Deposit',
'category': '',
'price': '$amount',
'quantity': 1
}],
'event': 'deposit_successful'
});
";
<script type="text/javascript">
if (typeof(dataLayer) !== 'undefined') {
<?php echo $tracking_script; ?>
}
</script>
Le suivi fonctionne, mais il manque environ 200 (30%) transactions par jour par rapport aux enregistrements de notre base de données.
Quelles sont les causes possibles et quelles sont les meilleures méthodes pour déboguer ce problème?
Votre script est en cours d'exécution avant que l'objet dataLayer du GTM soit prêt, car il est extrait de manière asynchrone. Cela signifie que vous devez attendre que l'événement de chargement soit déclenché/déclenché.
Votre code php côté serveur n’est pas bon, comme l’écriture dans le dataLayer, et c’est bien le problème fondamental que ce code n’attend pas pour l’objet datalayer du GTM. Au lieu de cela, créez simplement une variable qui soit prête pour js.
$tracking_script = "var myObject = {your object code}";
Avant le code Push, vous devez mettre quelque part le code php pour créer le var
<script type="text/javascript">
<?php echo $tracking_script; ?>
</script>
Vous pouvez ensuite utiliser l'événement load pour injecter correctement le code côté serveur dans le dataLayer du GTM. Vous pouvez utiliser le prochain Gist:
Ensuite, ajoutez simplement vos lignes dans la fonction de rappel:
var callBack = function(){
var myObject = myObject || {};
dataLayer = dataLayer || [];
dataLayer.Push(myObject);
};
Ou utilisez jQuery comme
$( window ).load(function() {
// Run code
var myObject = myObject || {};
dataLayer = dataLayer || [];
dataLayer.Push(myObject);
});
Un écart de 30% entre Google Analytics et votre base de données est normal, car de nombreux utilisateurs utilisent des bloqueurs de publicité, ce qui empêche le script de Google Analytics de se charger et de permettre ainsi le suivi de tout élément.