【问题标题】:Google Analytics on site that uses file://使用 file:// 的网站上的 Google Analytics
【发布时间】:2016-08-20 13:20:10
【问题描述】:

我正在尝试在一种桌面应用程序中引入 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');

正如here 解释的那样(添加 ga('set', 'checkStorageTask', null); ) 没有结果。

有人处理过这种情况吗?

【问题讨论】:

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

标签: google-analytics google-tag-manager offline-mode


【解决方案1】:

我运行了一个非常快速的测试。 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 文件并且需要向跟踪服务器发送调用),但您可能已经意识到这一点。

【讨论】:

  • since you cannot set cookies with the file protocol 不一定是事实,例如在 android webview 中,可以在 file:// 协议上存储 cookie,这要归功于 CookieManager.setAcceptFileSchemeCookies(true) 每个应用程序都可以,因为每个应用程序都有自己的用于 file:// 协议的 cookie 存储。另一个有趣的信息是,对于新的 GA4 属性 (G-XXXXXXXX),ga('set', 'checkProtocolTask', null) 没有替代品,因此对于 GA4,无法跟踪 file:// 协议(到目前为止?)。 GA4 是新的,缺少 GA3(通用分析)的许多功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-19
  • 2011-06-01
  • 2014-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多