欢迎访问我的博客,有问题可以在任意文章底部留言评论

Adobe Analytics如何实现跨域跟踪?

Adobe Analytics Haran 4年前 (2022-11-01) 3107次浏览 0个评论

企业可能同时经营多个不同域名,例如:

www.example.com
shop.example.cn
booking.example.net

用户从一个域名进入另一个域名时,Adobe Analytics能否继续将其识别为同一个访客,取决于浏览器Cookie限制、Adobe组织ID、数据采集方式和Report Suite配置。

情形一:同一根域名下的子域名

例如:www.example.com 和 store.example.com

这是最理想的情况。Cookie(包括存放 ECID 的 AMCV_ Cookie)默认可以共享给同根域名下的所有子域名。

做法:在配置Web SDK或 AppMeasurement 时,将cookieDomain设置为 .example.com(注意前面的点)即可。浏览器会在访问 store.example.com时自动带上这个Cookie,ECID自然就通了,无需额外操作。

 

情形二:同一Adobe组织的不同根域名

传统方式:依赖第三方Cookie

在早期,跨域跟踪主要依赖第三方Cookie来实现,:Adobe 会在一个公共的第三方域(如 demdex.net)下设置一个 Cookie,不同网站通过请求这个 Cookie 来识别同一用户。

随着 Safari、Firefox 和 Chrome 等主流浏览器逐步淘汰第三方 Cookie,这种方式的可靠性大幅降低,甚至完全失效。因此,它已不再是主流推荐方案。

 

现代核心方案:基于ECID的URL参数传递

现在,Adobe主推的方式是利用 Experience Cloud ID (ECID) 服务,通过URL参数在不同的自有域名间传递用户标识

Web SDK:使用appendIdentityToUrl

如果网站使用Adobe Experience Platform Web SDK,建议使用:

alloy("appendIdentityToUrl", {
  url: "https://shop.example.com/"
}).then(function(result) {
  window.location.href = result.url;
});

该命令会返回带有adobe_mc参数的URL: https://shop.example.com/?adobe_mc=…

当目标页面加载Web SDK并发送第一次Edge Network请求时,Web SDK会读取adobe_mc中的ECID,并将其应用到目标域名。

 

VisitorAPI.js:使用appendVisitorIDsTo

如果仍然使用AppMeasurement和VisitorAPI.js,可以调用:

//Code on Domain A
var destinationURL = "www.destination.com";

//Call the ID service
var visitor = Visitor.getInstance(...);

//Append visitor IDs to the destination URL
var destinationURLWithVisitorIDs = visitor.appendVisitorIDsTo(destinationURL);
     //Result of appendVisitorIDsTo includes destination URL, Experience Cloud ID (MCMID), and Analytics ID (MCAID)
     "www.destination.com?adobe_mc=MCMID=1234|MCAID=5678"
//Redirect to the destination

 

生成的URL大致如下:

Adobe Analytics如何实现跨域跟踪?

URL为:

https://www.mercedes-benz.com.cn/?adobe_mc=MCMID%3D73523137719293136182488349979580499820%7CMCORGID%3D097B467352782F130A490D45097B467352782F130A490D45%2540AdobeOrg%7CTS%3D1667270300

主要字段包括:

字段 含义
MCMID Experience Cloud ID,即ECID
MCORGID Experience Cloud Organization ID
MCAID 旧版Analytics Visitor ID,可能为空
TS 用于验证参数有效性的时间戳

 

目标域名已有ECID怎么办?

如果奔驰网站原本是有ECID,如:

Adobe Analytics如何实现跨域跟踪?

就会出现奔驰的ECID和奥迪的是不一样。

如果要用新的覆盖旧的,可以使用overwriteCrossDomainMCIDAndAID去覆盖它:

var visitor = Visitor.getInstance("INSERT-MARKETING-CLOUD-ID-HERE", {
     ...

     //Set overwrite property
     overwriteCrossDomainMCIDAndAID: true
});

ECID的Extensions里也可以设置,设置为true:

Adobe Analytics如何实现跨域跟踪?

覆盖后,奔驰的ECID是73523137719293136182488349979580499820

Adobe Analytics如何实现跨域跟踪?

两个网站跳转就可以识别为同一个用户。

 

情形三:不同Adobe组织

不同Adobe组织会使用不同的Experience Cloud Organization ID,因此即使同一个用户访问两个网站,也可能分别生成不同的ECID

例如:

  • 网站A:ORG-A@AdobeOrg → ECID 111
  • 网站B:ORG-B@AdobeOrg → ECID 222

这种情况下,appendVisitorIDsTo或appendIdentityToUrl不能直接把两个组织的ECID体系打通。即使两个网站把数据发送到同一个Report Suite,也只能实现数据集中,不能自动将用户识别为同一个Visitor。

要实现跨站跟踪,需要同时满足:数据进入同一Report Suite+两个网站使用统一的访客标

通常有以下两种方案:
  • 统一ECID体系:两个网站的数据采集层使用同一个Experience Cloud Organization ID,再通过appendVisitorIDsTo或appendIdentityToUrl传递ECID。这是更接近Adobe标准机制的方案,但需要双方Adobe管理员、数据治理及合同权限允许。
  • 统一自定义Visitor ID:两个网站在每个Hit中发送相同且稳定的s.visitorID。这种方式技术上可行,但Adobe不建议作为常规方案,任何漏传、变更或中途设置都会造成Visitor拆分,也可能影响A4T、Customer Attributes和共享受众等功能。

因此,更准确的结论是:

不同Adobe组织可以将数据发送到同一个Report Suite,但不能通过各自的ECID自动实现跨站跟踪。只有进一步统一ECID Organization ID,或实施严格一致的自定义Visitor ID,才能形成连续的跨站访客路径。


有疑问可以在底部留言
喜欢 (4)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址