2016-04-26 105 views
1

我正试图在一种桌面应用程序中引入Google Analytics,所有加载文件都是通过file:// not http或localhost完成的(因为大多数时候它工作正常离线)。任何使用Google Analytics或Google跟踪代码管理器跟踪应用使用的尝试都不起作用。使用文件的网站上的Google Analytics(分析)://

例如,我使用:

ga('create', 'UA-XXXXX-Y', 'auto'); 
ga('set', 'checkProtocolTask', null); 
ga('set', 'checkStorageTask', null); 
ga('send', 'pageview'); 

如所解释的here(添加GA( '设置', 'checkStorageTask',NULL); )没有结果。

有没有人处理这种情况?

+0

您还需要设置显式页面,并且可能需要使用localStorage进行用户身份跟踪。我试图在一个不同的问题的答案中详细说明所有方面:https://stackoverflow.com/a/47251006/1090166 –

回答

3

我运行了一个非常快速的测试。 ga('set', 'checkStorageTask', null);没有为我做任何事情,而是我发现有必要在创建跟踪器时将存储设置为空(这很有意义,因为您无法使用文件协议设置cookie)。这也意味着你可能不会有会话跟踪,因为每个命中都会生成一个新的ID。

ga('set', 'checkProtocolTask', null)似乎有必要 - 否则调试器抱怨(自然)该文件不是一个有效的协议。

之后,数据已成功发送,但没有显示在实时视图中。我怀疑报告引擎可能不喜欢文件协议,并使用正确的协议设置“位置”字段。所以我结束了:

ga('create', 'UA-XXXXXX-5' , {'storage':'none'}); 
    ga('set', 'checkProtocolTask', null); 

    ga('send', 'pageview' , {'location' : document.location.href.replace('file','http') }); 

和在实时报告中显示。这是一个真正的快速测试,所以你需要独立验证。请注意,您无需设置cookie域(您的代码示例中的“auto”参数),因为无论如何您都无法设置cookie(没有设置cookie的域)。

此外,如果您在大多数时间脱机工作,GA将无法工作(您需要加载analytics.js文件,并且需要将呼叫发送到跟踪服务器),但您可能已经意识到了这一点。

相关问题