谷歌分析事件中的动态日期时间
问题描述:
我每次访问者点击特定事件时都使用此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地址。在许多国家,包括欧盟,这是非法的。
感谢您的回复。您知道如何从分析中访问活动时间并将其纳入我的自定义报告中? –
@AlexandrePecorilla我真的不明白你的意思。无论如何Google Analytics(分析)报告都超过了时间范围,因此您只能在选定的时间范围内跟踪事件......您的意思是将时间显示为列表中的列吗?恐怕这是不可能的。 – masterfloda