30

我正在使用新的 Google Analytics(分析)跟踪代码进行设置。

<script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'MYUACODE', 'MYDOMAIN');
      ga('send', 'pageview', {
          'page': '/setup',
          'title': 'Setup Page'
        });

    </script>

正如 Google 告诉你的那样,我在我的 HEAD 标记中得到了这个显然 MYUACODE 和 MYDOMAIN 是我页面中的真正变量:)

但是,当我使用 Google Chrome 运行它并打开 Google Analytics Debug 扩展时,我收到以下消息:

Registered new plugin: "linker"       analytics_debug.js:5
Creating new tracker: t0              analytics_debug.js:5
New visitor. Generating new clientId  analytics_debug.js:5
Storage not available. Aborting hit.  analytics_debug.js:5

它似乎正确启动并开始设置项目,但随后它说存储不可用,谷歌似乎没有任何东西。

现在,如果我删除所有这些代码并返回到原始的 Google 跟踪代码,它工作正常,我似乎无法让这种新样式正确触发。

有什么想法吗?帮助?提前致谢

4

6 回答 6

37

我有同样的错误信息。这似乎与无法正确设置cookie有关。就我而言,它发生在我测试 localhost 并且我没有将我的 cookieDomain 设置为 none 时。

您可能想尝试以下类似的方法,看看它是否有效。我不确定传递您的域的方法是否有效。

ga('create', 'MYUACODE', {
  'cookieDomain': 'none'
});
于 2013-04-17T22:03:46.210 回答
13

谷歌分析过去常常在方法中使用硬编码的主机名生成跟踪代码create,这可能会在测试不同的主机名时导致此错误。现在,当 GA 生成它使用的跟踪代码时

ga('create', 'UA-XXXXXXXX-X', 'auto');

它会自动确定 cookieDomain 值。将此方法调用中的硬编码主机名更改为'auto'已在生成旧跟踪代码的多个站点上为我解决了此问题。

于 2014-07-28T18:59:07.743 回答
5

实际上,提供的大多数选项都可以使用。但是,它们都应该应用于不同的场景。请参阅GoogleA 的 Domains & Cookies - Web Tracking (analytics.js)以获取完整列表。

我处理我客户的情况有点不同,以处理语言变体,其中一个是在一个单独的域上。在下面,您将看到跟踪器创建调用后跟的域:

  1. en.client.en, ga('create', 'UA-XXXXXXXX-X', 'client.en');
  2. fr.client.com, ga('create', 'UA-XXXXXXXX-X', 'client.com');
  3. de.client.com, ga('create', 'UA-XXXXXXXX-X', 'client.com');
  4. xx.client.com, ga('create', 'UA-XXXXXXXX-X', 'client.com');

我没有使用的原因

ga('创建', 'UA-XXXXXXXX-X', '自动')

域参数或“无”是因为该配置不太可能跟踪子域。我的客户可能希望按国家/语言查看转换。因此,该帐户将具有分组视图(如上配置),以及按子域(国家/语言)过滤的单个视图。在 Google 文档中,它在自动 Cookie 域配置下明确指出:

Analytics.js 将无法在 co.uk 上写入 cookie,但会在 example.co.uk 上成功。由于 cookie 已成功写入更高级别的域,因此 www.example.co.uk 将被跳过。

并在本地主机上设置 cookie(其中 cookieDomain 设置为“无”):

注意:这将设置一个仅限主机的 cookie 域。cookie 不会传播到任何子域。但是,Internet Explorer 不遵循这种模式。

希望这可以帮助。

于 2014-09-01T09:49:36.463 回答
1

玩“MYDOMAIN”为我解决了问题

ga('create', 'MYUACODE', 'MYDOMAIN');

我完全删除了“MYDOMAIN”并留下了

ga('create', 'MYUACODE');

重新启动页面,然后, 'MYDOMAIN'再次添加 n 并且这有效

我第二次遇到这个问题时,它解决了将“MYDOMAIN”更改为我正在加载页面的域的问题(从生产域到我的托管域)

于 2013-07-10T09:13:11.553 回答
1

另一种选择是将域添加到您的主机文件,然后使用它而不是 localhost。我的看起来像:

127.0.0.1 localhost mytest.com

使用 mytest.com 而不是 localhost,您将能够检查您的信息,并且您不必向 ga create 方法调用添加任何选项。

于 2014-05-23T21:25:17.887 回答
0

我认为问题在于 chrome 中的另一个扩展。使用空配置文件 (--user-data-dir=/tmp/foo) 为我解决了这个问题。

于 2013-05-10T19:14:29.413 回答