如何追踪siteB跳转至iframe嵌入的siteB.siteA.com并标记为引荐流量?
解决方案:追踪iframe嵌入场景下的引荐流量
一、当前流量显示为(direct)/(none)的原因
当siteB.siteA.com以iframe形式嵌入在siteB.com中时,GA默认会将这类流量识别为直接流量。核心原因是父页面siteB.com未部署追踪代码,GA无法获取父页面的来源上下文,只能检测到iframe页面的加载行为,因此归类为(direct)/(none)。
二、无需siteB.com部署代码的可行方案
1. 通过document.referrer手动标记引荐流量
你可以在siteB.siteA.com的GTM中添加自定义逻辑,获取父页面域名并标记为引荐来源:
在GTM中创建自定义JavaScript变量,代码如下:
function() { try { const parentReferrer = document.referrer; const domain = new URL(parentReferrer).hostname; if (domain.includes('siteB.com')) { return domain; } return undefined; } catch(e) { // 跨域限制下无法获取referrer时返回undefined return undefined; } }在GTM的GA配置标签中,找到「Fields to set」,添加以下字段:
referrer: 绑定上述自定义变量source: 设置为siteB.commedium: 设置为referral
注意:部分浏览器的跨域策略可能限制
document.referrer的获取,此时该方法会失效。
2. 通过iframe URL参数传递来源信息
如果siteB.com的维护方可以配合修改iframe嵌入代码(无需部署追踪工具,仅修改src参数),可让他们在嵌入URL中添加?source=siteB&medium=referral这类参数。后续在GTM中:
- 创建URL查询参数变量,分别提取
source和medium参数; - 在GA配置标签的「Fields to set」中,将
source和medium字段与对应变量绑定。
这种方法不受跨域策略限制,可靠性更高。
三、GA跨域功能的适用性说明
GA的跨域追踪功能(自动或手动配置allowLinker)要求所有涉及的域名都部署GA代码,因为它需要通过_ga等参数传递用户标识符,实现跨域会话关联。由于你无法在siteB.com部署代码,该方案完全不可行,无需考虑。
内容的提问来源于stack exchange,提问作者Daria Ermolina
相关产品推荐
相关产品推荐

