Google Analytics:为链接点击设定事件追踪的方法

在 Google Analytics 中,可以使用 Event Tracking 功能跟踪自定义的事件。但是,如果你要跟踪的是一个链接点击,那么单纯这样写则很有可能导致漏掉许多事件:

<a href="http://www.example.com" onclick="_trackEvent(‘link‘, ‘click‘, this.href)">Visit example.com</a>

这是因为,每次自定义事件被触发的时候,浏览器都会向 Google 的服务器发送一个请求,从而发送数据。但是点击链接会直接进入下一个页面,如果此时需要发送的请求还没有完成,浏览器就会放弃该请求而直接跳转。所以,就会导致事件无法被记录。

解决方法

经典跟踪代码 (ga.js) 的解决方法

既然事件没有记录是因为跳转得太快,那么我们可以通过setTimeout函数设定一个比较小的延时来给浏览器充足的时间向 Google 的服务器发送数据。一般设为 500ms 或 1000ms 就足够了,同时用户也不会察觉到。

我们可以把触发事件的语句包装到一个自定义函数中:

var trackOutboundLink = function(url) {
    _trackEvent(‘link‘, ‘click‘, url);
    setTimeout("document.location=‘" + url + "‘", 500);
}

同时在 HTML 中这么写:

<a href="http://www.example.com" onclick="trackOutboundLink(this.href);return false;">Visit example.com</a>

其中return false语句防止了默认行为(点击a而跳转)的发生,实际跳转由我们自己来完成。

Universal Analytics (analytics.js) 的解决方法

Google 建议的方法

如果你已经升级到了 Universal Analytics,那么 Google 给出了这种情况下的官方建议。在新版的跟踪代码中,设置事件的函数包含了一个 callback,在成功设置完毕后触发。于是我们可以把手工跳转的代码写到 callback 函数中,这样就不用显式地设置 timeout 了,同时浏览器也能够「尽快」跳转。

同样声明一个包装函数:

var trackOutboundLink = function(url) {
   ga(‘send‘, ‘event‘, ‘outbound‘, ‘click‘, url, {‘hitCallback‘:
     function () {
         document.location = url;
     }
   });
}

这次,使用了hitCallback,它所对应的函数将在成功发送事件信息后被调用。类似,HTML 代码中这么写:

<a href="http://www.example.com" onclick="trackOutboundLink(‘http://www.example.com‘); return false;">Check out example.com

(以上两段示例代码来自 Google 官方文档,链接见上文)

还可以做得更好

本来教程到这里就可以结束了,可是还有一点值得说明。上述解决方法在绝大多数情况下是完全没有问题的,但是除了一种情况:浏览器无法正常发送事件数据到 Google 服务器。例如,如果 Google 的服务器忽然「无法访问」(你懂的),或者加载analytics.js失败,那么hitCallback就将永远不会被调用。这种情况下这个链接就变成点了也没用的了。

在访问 Google 完全没有问题的情况下,这种情形自然不必考虑。不过为了提供最大程度的保障,可以人工加一个防御措施:

var trackOutboundLink = function(url) {
	var redirectTriggered = false;
	ga(‘send‘, ‘event‘, ‘outbound‘, ‘click‘, url, {‘hitCallback‘:
		function() {
			redirectTriggered = true;
			document.location = url;
		}
	});
	setTimeout(function() {
		if (!redirectTriggered) {
			document.location = url;
		}
	}, 1500);
}

即,在进入trackOutboundLink之后,设置 1500ms 的过期时间,如果时间到了还没有跳转,就人工跳转,保证访客可以正常访问。

原文链接:https://www.renfei.org/blog/google-analytics-event-tracking-for-links.html

时间: 2024-08-03 13:30:03

Google Analytics:为链接点击设定事件追踪的方法的相关文章

使用 Google Analytics 追踪广告位点击

What is the difference between utm_source, utm_campaign and utm_medium? utm_source: As the name suggests this custom variable allows marketers to track the source that is sending the visits. If you have partnered with a website then you can track vis

android开发步步为营之70:android接入Google Analytics总结

求人不如求己,今天项目里要接入Google Analytics,这个是做应用统计分析用的,可以查看当前手机活跃用户,事件点击等等数据,先看看效果: 之前eclipse里面接入已经成功,昨天项目组决定项目转成使用android studio来开发,看google官方文档,官方文档https://developers.google.com/analytics/devguides/collection/android/v4/,然后官方文档里面的配置文件是用google-services.json的,这

用Google Analytics UTM标注社会化媒体分享流量来源

随着社会化媒体营销概念近两年的日益盛行,敢于吃螃蟹的营销工作者们展开了一些尝试,发现对社会化营销效果进行综合评估是一大难点,价值难以衡量.主要原因在于它的营销效果中混杂了直接的目标转化.品牌宣传.品牌认可.品牌互动.客户服务等营销目标,它们笼统体现为带来的流量.粉丝数.转发数.评论数.而后几个目标是目前无法区分量化衡量的,这是我们不情愿看到的. 图一:社会化媒体时代 本文主要与大家一起探讨如何用Google Analytics UTM参数标记信息被分享后带回来的访客流量,以便权衡其转化价值.此处

如何修改TextView链接点击实现(包含链接生成与点击原理分析)

*这篇文章的主要目的是想要大家学习如何了解实现,修改实现,以达到举一反三,自行解决问题的目的. 某天遇到这么一个需求:在TextView中的文本链接要支持跳转,嗯,这个好办,TextView本身是支持的,我们只用添加一项属性就可以搞定: android:autoLink="web" 在添加后发现确实是有效果了.但是如果我们不想使用系统默认的浏览器,而是想要这个地址跳入某个页面或者自己应用内的浏览器该怎么办呢? 好,接下来就是我们要实现的步骤. 俗话说,知己知彼,百战不殆.所以将我们的步

如何为你的App集成Google Analytics

第一部分 Analytics让我们知道用户如何与我们的应用进行交互,并帮助我们做出一些决策,例如: 了解应用的哪些部分最受用户欢迎并集中开发些部分 了解应用的哪些部分较少被用到,以便重新设计或清楚这些部分 找到潜在的导向问题,获取更多信息等等. 所以,在应用中集成一个分析系统会使你的应用如虎添翼. 1.下载Google Analytics库 首先,我们需要从Google开发者网站上下载到所需要添加到工程的类. 2.在我们的Android工程中添加Google Analytics库 解压下载的文件

【转载】国内网站博客数据统计选免费Google Analytics还是百度统计

[转载]国内网站博客数据统计选免费Google Analytics还是百度统计 Google Analytics谷歌统计是我用的第一个网站统计工具,当然现在也一直在用.Google Analytics凭借其强大的功能和超强的稳定性.快速的反应能力.广泛的数据应用功能,受到了广大站长的追捧. 使用Google Analytics的站长们应该不在少数吧,每天登录Google Analytics免费网站上查看网站的流量也是我们这些站长们必须做的事情,认真分析Google Analytics当中的数据信

Google Analytics自定义广告系列

通过向监控网址中添加广告系列参数,可以标识为网站带去流量的广告系列. 用户点击带有广告系列参数的链接,这些参数会发送到Google Analytics,这样就可以了解各个广告推广系列的效果. ? 设置自定义广告系列: 1. 手动向网址中添加参数,包括参数:utm_source.utm_medium.utm_campaign.utm_term.utm_content 2. 使用网址构建工具来定义和附加网址参数:https://support.google.com/analytics/answer/

js javascript 模拟点击 超级链接点击 转

转自:http://mo2g.com/view/42/ 我尝试过多次用jQuery模拟用户点击a标签的功能,但都没有成功,并且困扰了很久.前段时间的一次发呆,冒出了新的想法,于是就动手进行了测试. 先看下边的代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <html> <head> <meta charset="UTF-8"> <title>磨途歌-A标签测试1</tit

c#控制IE浏览器自动点击等事件WebBrowser,mshtml.IHTMLDocument2 .

c#控制IE浏览器自动点击等事件WebBrowser,mshtml.IHTMLDocument2 分类: c# 2013-02-06 15:18 3008人阅读 评论(0) 收藏 举报 可以实现例如通过应用程序操作google搜索,用户输入要搜索的内容,然后在google中搜索:可以自动点击网页上的按钮等功能 1. 加入对Microsoft Internet Controls的引用:    2. 加入对Microsoft HTML Object Library的引用: (要引入Microsoft