6

对于我的工作,我正在做一个关于 Google Analytics 有效性的研究项目(主要是关于 Flippa 上经过验证的报告)-> 看看是否有可能完全伪造 G. Analytics(简单的“是”不会削减它)!

我修改了 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,当它发生变化时,意味着您获得了新的访问者

问题是我现在得到的统计数据如下所示:

  • 访问量:1,785
  • 独立访客:1,781
  • 浏览量:2,188
  • 页数/访问:1.23
  • 平均 参观时间: 00:00: 03
  • 跳出率:96.13 % %
  • 新访问:99.78 %

请不要在平均极端下降。访问时长!

在它们与此类似之前:

  • 访问:135
  • 独立访客:118
  • 浏览量:383
  • 页数/访问:2.84
  • 平均 参观时间:00 :04:22
  • 跳出率:57.78 %
  • % 新访问:68.89 %

现在我的问题是:我需要如何修改 G. Analytics 代码(如果可能的话)以使其看起来与此类似:

  • 访问:135 * 10 = 1350
  • 独立访客:118 * 10 = 1180
  • 浏览量:383 * 10 = 3830
  • 页数/访问:2.84
  • 平均 参观时间:00 :04:22
  • 跳出率:57.78%
  • % 新访问:68.89%

所以基本上将访问量、唯一身份访问者、网页浏览量增加10倍,但其他统计数据保持不变。

非常欢迎http://jsfiddle.net上的示例

PS:对不起我的英语不好(不是我的母语)

4

3 回答 3

1

您将无法在一个网页中执行此操作。问题是,每当您重置哈希时,它都会产生一个新会话,这将导致第一个“访问者”离开,从而降低 avg。访问持续时间并提高跳出率。

我相信您可以通过执行以下操作来完成除了唯一访问者 * 10 要求之外的所有事情:

  • 创建一个包含标准 Google Analytics 代码的基本 HTML 页面,我们将其命名为ga.htm.
  • 创建一个包含 9 个 0x0 大小的 iFrame 的包含文件,每个 iFrame 都带有srcof ga.htm,我们称之为include-ga.htm.
  • include-ga.htm文件包含在所有页面的底部。

这应该会人为地让 GA 认为用户一次浏览了 10 个页面,这应该会同时增加所有统计数据,唯一身份访问者除外。

于 2012-07-17T16:34:00.353 回答
1

Google Analytics 在服务器端定义了 timeOnPage 和 timeOnSite,代码基于您发送的浏览量之间经过的时间。由于所有这一切都是在服务器端完成的,因此除非您按您希望伪造的时间间隔来分隔浏览量,否则无法伪造。

您还需要为每个跟踪器发送 1 次以上的综合浏览量才能获得正确的页面/访问量。目前,每次您在 2 个跟踪器之间切换时,您都会重置 cookie,并且之前的 visitorId 将永远丢失。

所以你想做这样的事情:

  • 创建第一个跟踪器
  • 触发综合浏览量
  • 等待 1 到 2 秒
  • 触发另一个综合浏览量
  • 80% 的时间可能会在 1 或 2 秒后触发第三次网页浏览,以接近正确的平均值。
  • 创建一个新的跟踪器
  • 冲洗重复

我会说您可能想要引入更多随机性,但仍保持相同的平均值。例如,为了获得正确的 BounceRate,您需要有 57% 的访问触发一次网页浏览。为了获得正确的新访问者指标,您需要使用其中一个旧 ID 回来,但在新访问中产生回访者。您可以通过删除 __utmb 或 __utmc cookie 来触发新的访问,或者在新的网页浏览之间等待超过 30 分钟。

正如您所看到的,您想用真实的数字伪造数字越近,它可能会变得越难。

现在,在单页脚本中生活变得有点不切实际。因为它可能需要几秒钟才能完成,并且您可能想要模拟数千次。所以也许最好使用像phantom.js这样的无头浏览器来创建它,您可以同时触发多个实例以获得您想要的结果。

我想知道你打算从这些中提取什么样的分析。根据分析的类型,您已经拥有的就足够了,或者为更好的仿真所做的努力可能不值得洞察。

于 2012-07-23T22:29:14.437 回答
0

这是我假设的概念证明。

您的代码是否已经证明您可以操纵 GA 统计数据,唯一的操纵提示是平均访问时间。

我发现有趣的是 GA 如何确定它是否是唯一访问者。你会认为谷歌会检查某种类型的 IP/Mac/主机名或主机上的秘密唯一 ID。在 GA 帮助中指出

唯一身份访问者(或绝对唯一身份访问者):唯一身份访问者表示在指定时间段内访问您网站的不重复(仅计算一次)访问者的数量。唯一访问者是使用 cookie 确定的。

也许你的平均。访问时长:可以在 GA cookie 中进行操作。有一个 jquery 插件/插件,可用于通过 java 脚本制作 cookie。

有兴趣知道您的项目是否成功。

为了完整起见,谷歌在 GA 上的帮助

于 2012-07-23T16:48:53.633 回答