为了在mv3中使用Google Analytics,最简单的方法是使用
测量协议(Measurement Protocol)。简而言之,它允许您通过普通的POST调用向Google Analytics发送事件跟踪信息。
以下是我用来跟踪点击/其他事件的设置:
1. 用户在扩展中点击按钮
2. 内容脚本/popup.html通过消息传递(Message Passing)将要记录的事件发送给服务工作者(background.js)。
3. 服务工作者使用fetch()将事件发布到Google Analytics
以下是运行在服务工作者中的一些示例代码:
const ANALYTICS_PATH = "https://www.google-analytics.com/collect";
async function postData(url = '', data = {}) {
const response = await fetch(url, {
method: 'POST',
mode: 'no-cors',
cache: 'no-cache',
credentials: 'same-origin',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
redirect: 'follow',
referrerPolicy: 'no-referrer',
body: data
});
}
var gaParams = new URLSearchParams();
gaParams.append("v", 1);
gaParams.append("tid", "UA-XXXX-X");
gaParams.append("cid", xxxxx);
gaParams.append("t", "event");
gaParams.append("ec", "myEventCategory");
gaParams.append("ea", "myEventAction");
postData(ANALYTICS_PATH, gaParams)
注意:此API如果出现问题不会返回响应代码,因此在生产环境上直接使用
https://www.google-analytics.com/mp/collect之前,应该先尝试使用
https://www.google-analytics.com/debug/mp/collect。
附注:我从这个资源的评论中找到了这个解决方案:
https://www.indiehackers.com/post/how-to-add-google-analytics-with-manifest-v3-468f1750dc。