web-dev-qa-db-fra.com

Les transactions en double dans Google Analytics causées par des actualisations de page

J'utilise Universal Analytics sur ma page de confirmation de commande:

// Create the tracker
ga('create', 'UA-XXXXX-Y');

// Fire off a pageview
ga('send', 'pageview');

// Include the ecommerce plugin
ga('require', 'ecommerce', 'ecommerce.js');

// Initialize the transaction
ga('ecommerce:addTransaction', {
             id: '1234abc',     // Transaction ID*
    affiliation: 'Tech Shirts', // Store Name
        revenue: '52.19',       // Total
       shipping: '10',          // Shipping
            tax: '3.22'         // Tax
});

// Add a few items
ga('ecommerce:addItem', {
          id: '1234abc',            // Transaction ID*
         sku: 'TSHIRT-12A',         // Product SKU
        name: 'Analytics Wizard',   // Product Name*
    category: 'Men\'s Shirts',      // Product Category
       price: '12.99',              // Price
    quantity: '1'                   // Quantity
});
ga('ecommerce:addItem', {
          id: '1234abc',            // Transaction ID*
         sku: 'TSHIRT-36B',         // Product SKU
        name: 'Best Developer',     // Product Name*
    category: 'Women\'s Shirts',    // Product Category
       price: '12.99',              // Price
    quantity: '2'                   // Quantity
});

// Send off the transaction
ga('ecommerce:send');

Pour une raison quelconque, l'équipe d'analyse a décidé d'enregistrer la même transaction deux fois si l'utilisateur actualise la page.

Il semble illogique d'enregistrer deux fois la même transaction étant donné que l'identifiant de la transaction est le même (il s'agit évidemment de la même transaction, alors pourquoi le dupliquer?).

Ce comportement attendu est-il tel qu'il n'est pas documenté? L'équipe GA s'attend-elle vraiment à ce que tous les utilisateurs écrivent du code afin d'éviter les duplications?

4
DD.

Solution simple de cookie JQuery.

  if (!$.cookie('myOrderReference')){
//insert analytics code here

       $.cookie('myOrderRefernce', true);  

 }

Vous devez configurer votre script pour insérer dynamiquement la référence de la commande au lieu de "myOrderReference".

Toutefois, si un utilisateur charge la page de confirmation de commande dans un autre navigateur, un doublon se produira.

0
DD.

Il y a deux solutions possibles à ce problème:

1) Utilisez un script côté serveur pour empêcher le code de suivi d'être affiché plusieurs fois. Cela pourrait être fait en vérifiant si les informations de transaction sont entrées ou non dans la base de données. OR Vous pouvez essayer de rediriger l'utilisateur en dehors de la page d'accusé de réception après l'envoi des informations de commerce électronique à Google Analytics, puis en empêchant l'utilisateur de revenir à cette page.

2) Utiliser les cookies du navigateur et les horodatages de transaction pour détecter les doublons

Découvrez les transactions en double de LunaMetric dans Google Analytics - La vérification et la correction .

2
dasickle

Configurez une page intermédiaire et, une fois la transaction envoyée, modifiez l'emplacement de la fenêtre. La page intermédiaire n'apparaîtra pas dans l'historique du bouton Précédent du navigateur, de sorte que l'utilisateur ne pourra pas recharger facilement la page.

  // Send off the transaction
  ga('ecommerce:send'); 

  $(document ).ready(function() {
      window.location = "/order-confirmed?orderReference=#{order.reference}";
    });

C'est beaucoup plus facile que de créer un cookie ou d'essayer d'empêcher le rechargement de pages.

1
DD.