Javascript Analytics代码操作(G.Analytics)
Javascript Analytics Code Manipulation (G. Analytics)
为了我的工作,我正在做一个关于谷歌分析有效性的研究项目(主要是关于flippa上经过验证的报告)-->看看是否有可能完全伪造G.分析(简单的"是"不会删除它)!
我修改了G.Analytics代码如下:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-19629541-5']);
_gaq.push(['_setAllowHash', false]);
_gaq.push(['b._setAccount', 'UA-19629541-5']);
_gaq.push(['b._setAllowHash', true]);
for (var i=0;i<=10;i++) {
_gaq.push(['_trackPageview']);
_gaq.push(['b._trackPageview']);
}
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
当你运行它时,它现在会产生多个访问和访客。你可以看到__utma上的第二个数字对每个页面视图都会发生变化,这个数字就是visitorId,当它发生变化时,意味着你得到了一个新的访客
问题是我现在得到的统计数据是这样的:
- 访问次数:1785
- 独特访客:1781
- 页面浏览量:2188
- 页数/访问次数:1.23
- 平均。就诊时间:00:00:03
- 反弹率:96.13%%
- 新访问量:99.78%
请不要在平均访问持续时间中出现极端的减少!
之前它们与此类似:
- 访问次数:135
- 独特访客:118
- 页面浏览量:383
- 页数/访问次数:2.84
- 平均。就诊时间:00:04:22
- 反弹率:57.78%
- %新访问量:68.89%
现在我的问题是:我需要如何修改G.Analytics Code(如果可能的话),使其看起来像这样:
- 访问量:135*10=1350
- 唯一访问者:118*10=1180
- 页面浏览量:383*10=3830
- 页数/访问次数:2.84
- 平均。就诊时间:00:04:22
- 反弹率:57.78%
- %新访问量:68.89%
因此,基本上将访问量、唯一访问者、页面浏览量增加了10倍,但其他统计数据保持不变。
上的示例http://jsfiddle.net非常受欢迎
PS:很抱歉我的英语不好(不是我的母语)
Google Analytics在服务器端定义了timeOnPage和timeOnSite,代码基于您发送的页面浏览之间的时间。由于所有这些都是在服务器端完成的,所以没有办法伪造,除非你按照你想要伪造的时间间隔你的页面浏览量。
您还需要为每个跟踪器发送1次以上的页面浏览量,才能获得正确的页面/访问量。目前,每次您在2个跟踪器之间切换时,您都会重置cookie,并且以前的访问者ID将永远丢失。
所以你想做这样的事情:
- 创建第一个跟踪器
- 激发页面视图
- 等待1到2秒
- 激发另一个页面视图
- 也许80%的时间在1或2秒后触发第三次页面浏览,以接近正确的平均值
- 创建新跟踪器
- 漂洗重复
我想说,你可能想引入一些更多的随机性,仍然保持相同的平均值。例如,为了获得正确的BounceRate,您需要有57%的访问触发单个页面视图。为了获得正确的新访客指标,你需要带着一个旧id回来,但在新的访问中产生一个返回的访客。您可以通过删除__utmb或__utmc cookie来触发新的访问,或者在新的页面视图之间等待超过30分钟。
正如你所看到的,你越想以假乱真,可能就越难。
现在,这对于单页脚本来说有点不切实际。因为它可能需要几秒钟才能完成,而且你可能想模仿它数千次。因此,也许最好使用像phantom.js这样的无头浏览器来创建它,您可以同时触发的多个实例来获得您想要的结果。
我想知道你打算从中提取什么样的分析。根据分析的类型,你已经拥有的就足够了,或者为了更好地模拟而付出的努力不值得深入了解。
您将无法在一个网页中做到这一点。问题是,每当你重置哈希时,它就会产生一个新的会话,这将导致第一个"访客"离开,从而降低持续时间的平均访问量并增加跳出率。
我相信你可以通过以下操作完成除了独特访客*10要求之外的一切:
- 创建一个基本的HTML页面,其中只有标准的Google Analytics代码,我们称之为
ga.htm
- 创建一个包含文件,该文件包含9个0x0大小的iFrame,每个iFrame的
src
为ga.htm
,我们称之为include-ga.htm
- 将
include-ga.htm
文件包含在所有页面的底部
这应该会人为地让GA认为用户一次查看10个页面,这应该会同时乘以你的所有统计数据,除了唯一访问者。
这是我假设的概念证明。
您的代码不是已经证明了您可以操作GA统计数据吗?操作的唯一提示是平均访问时间。
我发现有趣的是G.A是如何确定它是否是一个独特的访客的。你可能会认为谷歌做了某种检查,IP/Mac/主机名或主机上的秘密唯一id。在GA帮助中,它声明
独特访客(或绝对独特访客):Unique Visitors表示未复制(仅计数一次)在指定时间内访问您的网站时期使用cookie确定唯一访问者。
也许你的平均访问持续时间:可以在GA cookie中进行操作。有一个jquery插件,可以通过java脚本制作cookie。
有兴趣知道你的项目是否成功。
为了完整起见,谷歌关于GA 的帮助
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何确定javascript已经完成了某些操作.ios上的
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 从JavaScript访问struts操作中的属性
- fluxxor向一个flux实例添加一组以上的操作
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 操作放置在画布上的元素之间的连接
- 使用“+="操作人员
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- Jquery未定义函数正在停止其他操作
- 如何操作iframe之外的元素
- javascript对象操作:根据指定条件选择属性
- jQuery:暂停按钮可以暂停所有其他操作
- 如何在Analytics.js中始终了解最新的cookie过期时间
- 用于选择/文本框操作的JavaScript
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 在Google Analytics中跟踪用户,但只能在两个操作之间跟踪
- Javascript Analytics代码操作(G.Analytics)
- 操作返回Javascript中的Google Analytics API数据