【问题标题】:Javascript Analytics Code Manipulation (G. Analytics)Javascript 分析代码操作 (G. Analytics)
【发布时间】:2012-07-14 13:57:41
【问题描述】:

为了我的工作,我正在做一个关于 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:对不起我的英语不好(不是我的母语)

【问题讨论】:

  • 这对我来说似乎很合乎逻辑,因为您在极短的时间内创建了 10 次浏览量,因此访问持续时间当然会大大减少。
  • 从来没有说过这不合逻辑我只是在问是否有办法真正伪造 Google 分析报告 - 我们正在尝试伪造我们自己的报告以便我们可以检查模式(例如访问减少持续时间)
  • 我希望 Google Analytics 不会轻易被骗。
  • 好吧,但它是......我想知道这可以做到什么程度
  • Chriswede,您是否能够解决页面/访问,平均。 Google Analytics(分析)代码中的访问持续时间、跳出率或新访问统计问题?我看到您如何在您的代码中获得访客人数,但其他统计数据仍为旧数字。对此的任何见解都会很棒。我正在尝试和您做同样的事情,并想知道您是否能够解决您的问题。谢谢!特拉维斯

标签: javascript google-analytics data-manipulation


【解决方案1】:

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

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

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

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

【讨论】:

  • 为什么要停在 9 点?您可以做数千次,并使用 setTimeout 将每个配置为每分钟刷新一次。让它设置几分钟,您将获得数千次访问,每次访问几分钟。
  • 结合我和你的方法是否允许我(稍作调整)增加所有甚至唯一访问者的数量?
  • @yahelc 我在 9 点停了下来,因为他想要 10 倍的访问次数。哎呀,我猜应该是 10 LOL。
  • @Chriswede 我认为这行不通,如果您在任何页面上重置会话,它会在整个会话中重置它,即您网站上的所有页面。这样做的唯一方法是从单独的浏览器或单独的内存空间进行。
  • 我是否也随机显示任一脚本并通过它获得两种效果(或至少让它们相互平衡)?
【解决方案2】:

这是我假设的概念证明。

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

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

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

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

有兴趣了解您的项目是否成功。

为了完整起见,Google help on GA

【讨论】:

    【解决方案3】:

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

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

    所以你想做这样的事情:

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

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

    正如您所见,您想伪造的数字越接近真实的数字就越难。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 2015-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多