如何检查我的 google 分析是否在 chrome 扩展上工作?
How to check if my google analytics is working on a chrome extension?
我正在尝试在 Google Analytics 上跟踪 chrome 扩展程序。
看起来配置正确,但我在仪表板上看不到数据。不确定是否是延迟,是否因为我是 运行 开发模式的扩展而被忽略,或者我是否需要配置其他东西。
我正在使用以下代码:
const gaScript = document.createElement('script');
gaScript.type = 'text/javascript';
gaScript.async = true;
gaScript.src = 'https://ssl.google-analytics.com/analytics.js';
gaScript.onload = function() {
ga.l = +new Date;
ga('create', 'MY_CODE', 'auto');
ga('set', 'checkProtocolTask', null); // Disables file protocol checking.
ga('send', 'pageview');
}
const s = document.getElementsByTagName('script')[0];
s.parentNode?.insertBefore(gaScript, s);
当我检查后台控制台时,在“网络”选项卡上我可以看到:
- 请求“analytics.js”,我可以看到文件正在正确加载
- 请求 URL“collect?v=...”,这似乎表明扩展正在将数据正确发送到 google 服务器。当我检查这个 URL 时,我可以看到它正在发送 MY_CODE 作为跟踪 ID
的参数
但我仍然无法在分析仪表板上看到任何记录的数据。知道为什么会这样吗?
更新:
多亏了 Michele,我才能够理解这个问题。 Google 创建了一种新的跟踪形式:Global Analytics 并且代码不同于标准的 Universal Analytics。
今天创建分析项目的人将默认获得全局分析。我研究了它,我认为该标准目前更适合扩展。我会等待 Google 更新他们的文档以包含此案例以开始使用它
将 'MY_CODE' 替换为您的跟踪 ID 的实际值。应该类似于 'UA-1233445-2'。
在 Google Analytics 中,转到管理 > 属性 设置以查找您的跟踪 ID
为什么不使用显式代码:
// Standard Google Universal Analytics code
(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','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXXX-1', 'auto');
ga('set', 'checkProtocolTask', function(){});
ga('send', 'pageview', '/chrome-extension/popup.html');
我已经在我的扩展中试过了,效果很好。
这是我完整的工作示例代码:
https://www.michelepisani.it/articoli/creare-un-estensione-di-chrome-e-tracciarla-con-google-analytics/
将analytics.js
替换为analytics_debug.js
,并检查控制台中的日志。 Docs
我正在尝试在 Google Analytics 上跟踪 chrome 扩展程序。
看起来配置正确,但我在仪表板上看不到数据。不确定是否是延迟,是否因为我是 运行 开发模式的扩展而被忽略,或者我是否需要配置其他东西。
我正在使用以下代码:
const gaScript = document.createElement('script');
gaScript.type = 'text/javascript';
gaScript.async = true;
gaScript.src = 'https://ssl.google-analytics.com/analytics.js';
gaScript.onload = function() {
ga.l = +new Date;
ga('create', 'MY_CODE', 'auto');
ga('set', 'checkProtocolTask', null); // Disables file protocol checking.
ga('send', 'pageview');
}
const s = document.getElementsByTagName('script')[0];
s.parentNode?.insertBefore(gaScript, s);
当我检查后台控制台时,在“网络”选项卡上我可以看到:
- 请求“analytics.js”,我可以看到文件正在正确加载
- 请求 URL“collect?v=...”,这似乎表明扩展正在将数据正确发送到 google 服务器。当我检查这个 URL 时,我可以看到它正在发送 MY_CODE 作为跟踪 ID 的参数
但我仍然无法在分析仪表板上看到任何记录的数据。知道为什么会这样吗?
更新:
多亏了 Michele,我才能够理解这个问题。 Google 创建了一种新的跟踪形式:Global Analytics 并且代码不同于标准的 Universal Analytics。
今天创建分析项目的人将默认获得全局分析。我研究了它,我认为该标准目前更适合扩展。我会等待 Google 更新他们的文档以包含此案例以开始使用它
将 'MY_CODE' 替换为您的跟踪 ID 的实际值。应该类似于 'UA-1233445-2'。 在 Google Analytics 中,转到管理 > 属性 设置以查找您的跟踪 ID
为什么不使用显式代码:
// Standard Google Universal Analytics code
(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','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXXX-1', 'auto');
ga('set', 'checkProtocolTask', function(){});
ga('send', 'pageview', '/chrome-extension/popup.html');
我已经在我的扩展中试过了,效果很好。
这是我完整的工作示例代码: https://www.michelepisani.it/articoli/creare-un-estensione-di-chrome-e-tracciarla-con-google-analytics/
将analytics.js
替换为analytics_debug.js
,并检查控制台中的日志。 Docs