要将 client_id 从一个域传递到另一个域,Google 支持向作为跨域跟踪设置一部分的传出链接添加“链接器”参数。此链接器参数包含client_id, session_id(我相信,有关 Google Ads 的信息,例如gclid)和基本指纹 + 时间戳。在接收域上,如果浏览器指纹匹配并且时间戳不是太远,则传递的client_id和session_id会存储在第二域上的第一方 cookie 中并随后使用。
使用analytics.js(GA-UA),您可以轻松执行以下操作,手动修饰 URL:
function decorateUrl(urlString) {
var ga = window[window['GoogleAnalyticsObject']];
var tracker;
if (ga && typeof ga.getAll === 'function') {
tracker = ga.getAll()[0]; // Uses the first tracker created on the page
urlString = (new window.gaplugins.Linker(tracker)).decorate(urlString);
}
return urlString;
}
Run Code Online (Sandbox Code Playgroud)
然而,当仅加载 gtag 时,window.ga并且window.gaplugins未定义。据我所知,目前没有记录的方法可以使用 gtag 的链接器参数手动生成链接。
在 Google 的文档中,他们建议手动设置链接器。(https://support.google.com/analytics/answer/10071811?hl=en#zippy=%2Cmanual-setup)但这有几个缺点,例如我必须创建一个自定义的“指纹”逻辑(以便修饰的URL不共享),例如不包含 …