2017-10-06 1 views
0

J'utilise ce code javascript pour obtenir un événement chaque fois qu'un visiteur clique sur un événement spécifique.Datetime dynamique dans un événement google analytics

<script> 
var trackerName = ga.getAll()[0].get('name'); 

ga(trackerName + '.send', 'event', { 
    eventCategory: 'Product', 
    eventAction: 'Outbound click', 
    eventLabel: '<?php echo str_replace("'"," ",$product->pro_label_fr); ?>', 
    eventValue: <?php echo intval($product->pro_price * 100); ?>, 
    dimension1: '<?php echo Utils::getClientIp(); ?>', 
    dimension2: '<?php echo $customer->cus_label; ?>', 
    dimension3: '<?php echo date('m/d/Y h:i:s a', time()); ?>', 
    dimension4: '<?php echo $category; ?>', 
    dimension5: '1', 
    dimension6: 'top', 
    transport: 'beacon' 
}); 
</script> 

Le problème est le Dimension3, le datetime est statique, une fois que la page est chargée, il est pas mis à jour. Comment puis-je avoir un datetime dynamique, mis à jour chaque seconde, sans avoir à mettre des balises html dans la dimension3?

Je cherche quelque chose d'optimisé, car je peux avoir 20 boutons ou plus sur une page et cela signifie 20 scripts comme celui-ci.

Merci

Répondre

0

PHP est traitée avant que la page est créée, donc bien sûr, il est statique. Si vous voulez une heure dynamique, utilisez JavaScript. Mais comme JS est exécuté par le client, il utilisera également le fuseau horaire du client, vous devrez donc le recalculer dans le fuseau horaire que vous attendez.

Créer une méthode qui retourne la chaîne de date dont vous avez besoin

<script> 
    function getCurrentTime() { 
     // create a ne (local) date object 
     var date = new Date(); 
     // convert it to UTC 
     var utcDate = new Date(date.toUTCString()); 
     // add/substract the hours from your preferred timezone. f.ex. -8 for PDT 
     utcDate.setHours(utcDate.getHours() - 8); 
     // create a new date object for PDT 
     var myDate = new Date(utcDate); 
     // return it in the US default format 
     return pstDate.toLocaleString('en-US'); 
    } 

    ga(trackerName + '.send', 'event', { 
     // settings 
     dimension3: getCurrentTime(), 
     // other settings 
    } 
</script> 

Cela devrait résoudre d'un point de vue technique. Mais pourquoi fais-tu ça? Google Analytics enregistre automatiquement l'heure de l'événement pour vous, vous n'avez pas besoin de l'ajouter en tant que dimension. Sur une note de côté: Soyez prudent avec la journalisation des adresses IP. Dans de nombreux pays, y compris l'UE, c'est illégal.

+0

Merci pour votre réponse. Savez-vous comment puis-je accéder à l'heure de l'événement à partir des analyses et l'inclure dans mon rapport personnalisé? –

+0

@AlexandrePecorilla Je ne comprends pas vraiment ce que vous voulez dire. Les rapports Google Analytics sont sur une période de temps de toute façon, vous ne pourrez donc suivre les événements que dans la plage de temps sélectionnée ... Voulez-vous dire afficher l'heure sous la forme d'une colonne dans la liste? J'ai peur que ce ne soit pas possible. – masterfloda