谷歌分析事件中的动态日期时间

问题描述:

我每次访问者点击特定事件时都使用此JavaScript代码来获取事件。谷歌分析事件中的动态日期时间

<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> 

问题是维3,日期时间是静态的,一旦加载页面,它不会更新。 我怎样才能有一个动态的日期时间,每秒更新,而不必将html标签放在dimension3中?

我正在寻找优化的东西,因为我可以在页面上有20个按钮或更多,这意味着像这样的20个脚本。

谢谢

PHP是在页面创建之前被处理的,所以它当然是静态的。如果你想要一个动态的时间,使用JavaScript。 但是,由于JS是由客户端执行的,它也将使用客户端的时区,所以您将不得不重新计算它到您期望的时区。

创建一个返回的日期字符串的方法,你需要

<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> 

这应该从技术角度解决这个问题。但为什么你这样做? Google Analytics会为您自动记录活动时间,您无需将其添加为维度。

附注:小心记录IP地址。在许多国家,包括欧盟,这是非法的。

+0

感谢您的回复。您知道如何从分析中访问活动时间并将其纳入我的自定义报告中? –

+0

@AlexandrePecorilla我真的不明白你的意思。无论如何Google Analytics(分析)报告都超过了时间范围,因此您只能在选定的时间范围内跟踪事件......您的意思是将时间显示为列表中的列吗?恐怕这是不可能的。 – masterfloda