我正在尝试在一种桌面应用程序中引入Google Analytics,所有加载文件都是通过 file://而不是http或localhost完成的(因为大多数时候它都可以离线工作)。任何使用Google Analytics或Google Tag Manager跟踪应用程序使用情况的尝试都不起作用。
例如,我使用过:
ga('create', 'UA-XXXXX-Y', 'auto');
ga('set', 'checkProtocolTask', null);
ga('set', 'checkStorageTask', null);
ga('send', 'pageview');
正如这里所解释的(添加 ga('set', 'checkStorageTask', null);) 没有结果。
有人处理过这种情况吗?
我运行了一个非常快速的测试。 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 将不起作用(您需要加载分析.js文件,并且需要向跟踪服务器发送调用),但您可能知道这一点。