为什么我的“存储不可用”。中止命中。使用Google Analytics?

时间:2013-04-13 20:46:06

标签: debugging google-analytics

我正在设置新的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>

我在HEAD标签中有这个,就像谷歌告诉你的那样 显然MYUACODE和MYDOMAIN是我页面中的真正变量:)

但是当我使用谷歌浏览器运行此操作并打开Goog​​le 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。

现在,如果我删除所有这些代码并返回到最初的Google跟踪代码,它运行正常,我似乎无法正确启动这种新风格。

有什么想法?救命? 提前致谢

6 个答案:

答案 0 :(得分:36)

我有同样的错误消息。这似乎与无法正确设置cookie有关。在我的情况下,它发生在我测试localhost时,我没有将我的cookieDomain设置为none。

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

ga('create', 'MYUACODE', {
  'cookieDomain': 'none'
});

答案 1 :(得分:13)

Google Analytics用于生成跟踪代码,其主机名采用create方法硬编码,这可能会在测试其他主机名时导致此错误。现在当GA生成跟踪代码时,它使用

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

自动确定cookieDomain值。在此方法调用中将硬编码主机名更改为'auto'已在几个生成旧跟踪代码的网站上修复了此问题。

答案 2 :(得分:5)

实际上,提出的大多数选项都有效。但是,它们都应该应用于不同的场景中。有关完整列表,请参阅GoogleA's Domains & Cookies - Web Tracking (analytics.js)

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

  1. en.client.en,ga(&#39;创建&#39;,&#39; UA-XXXXXXXX-X&#39;,&#39; client.en&#39;);
  2. fr.client.com,ga(&#39;创建&#39;,&#39; UA-XXXXXXXX-X&#39;,&#39; client.com&#39;);
  3. de.client.com,ga(&#39;创建&#39;,&#39; UA-XXXXXXXX-X&#39;,&#39; client.com&#39;);
  4. xx.client.com,ga(&#39;创建&#39;,&#39; UA-XXXXXXXX-X&#39;,&#39; client.com&#39;);
  5. 我没有使用的原因

      

    ga(&#39;创建&#39;,&#39; UA-XXXXXXXX-X&#39;,&#39;自动&#39;)

    或&#39; none&#39;对于domain参数,因为该配置不太可能跟踪子域。我的客户可能希望按国家/地区/语言进行视图转换。因此,该帐户将具有分组视图(在上面配置),以及由子域(国家/语言)过滤的各个视图。在Google文档中,它明确指出了自动Cookie域配置:

      

    Analytics.js将无法在co.uk上写一个cookie,但会成功   example.co.uk。因为cookie已成功写在更高的上面   级域名,www.example.co.uk将被跳过。

    并在localhost上设置cookie(其中cookieDomain设置为&#39; none&#39;):

      

    注意:这将设置仅限主机的cookie域。 cookie不会   支持任何子域名。但是,Internet Explorer不遵循   这种模式。

    希望这有帮助。

答案 3 :(得分:1)

玩'MYDOMAIN'解决了我的问题

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

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

ga('create', 'MYUACODE');

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

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

答案 4 :(得分:1)

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

127.0.0.1 localhost mytest.com

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

答案 5 :(得分:0)

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