首页 > 解决方案 > 当我从应用程序登录然后从应用程序移动到网络时,访问者 ID 中间值在各个域之间不一致

问题描述

使用体验云访问者 ID。应用程序、网络使用相同的 adobe 启动库。当我登录到应用程序 url 更改和 mid 更改,然后如果我从应用程序导航到 web 响应页面 mid 更改并且我没有看到任何从应用程序到 web 的跨域路径报告?

我需要对 s.cookiedomainperiod 做些什么或做任何事情来完成这项工作?

标签: tagsadobeadobe-analyticsadobe-dtm

解决方案


Experience Cloud 访客 ID 不会自动从本机移动应用程序转移到(移动)网页。长话短说,本机应用程序并没有像 Web 浏览器那样真正在本地存储数据,因此两者之间没有自动使用相同本地存储机制/源的能力。

为此,您必须向移动应用程序添加一些代码以将mid值附加到目标 URL,例如:

安卓

String urlString = "http://www.example.com/index.php";
String urlStringWithVisitorData = Visitor.appendToURL(urlString);
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlStringWithVisitorData));
startActivity(browserIntent);

iOS

NSURL *url = [NSURL URLWithString:@”http://www.example.com/index.php"];
NSURL *urlWithVisitorData = [ADBMobile visitorAppendToURL:url];
[[UIApplication sharedApplication] openURL:urlWithVisitorData];

如果实施得当,您现在应该会看到adobe_mc=附加到目标 URL 的参数。然后在目标页面的页面视图中,如果您实施了 Adob​​e Analytics javascript 和 Experience Cloud 访客 ID 库,他们将自动查找并使用该值而不是生成新值(在此端不需要任何配置/编码)。

更新:

@Ramaiyavraghvendra你发表了评论:

嗨@Crayon,非常感谢您的深刻回答。很抱歉,我错过了通知这个应用程序不是原生应用程序,而是一个 SPA 应用程序。所以整个app的实现也是通过launch完成的。那你能在这种情况下帮忙吗?

我不完全确定我理解你的问题。如果您没有从原生移动应用程序迁移到网页,并且您的移动应用程序实际上是一个基于 Web 的 SPA,它在整个应用程序中将 Launch 作为常规 javascript 代码输出,那么您不必做任何事情;Experience Cloud ID 服务应在页面之间传递 id。

因此,在我看来,您的 Experience Cloud 访客 ID 和/或 Adob​​e Analytics 收集服务器设置可能配置不正确。如果登录涉及从 www.mysite.com 移动到 www.mysite.co.uk 或类似内容,则 cookie 域周期变量可能是一个问题,但如果 TLD 具有相同的周期数,则不应该成为问题。

或者,trackingServertrackingServerSecure变量可能没有正确配置。在实践中,我通常根本不设置trackingServerSecure。这些变量在与您使用的不同的场景中会让人感到困惑和 IMO 错误,因此我倾向于在该trackingServer字段中使用“安全”值并trackingServerSecure留空,然后 Experience Cloud 访客 ID 和 Adob​​e Analytics 将只使用100% 的安全版本。

或者..它可能是许多其他配置变量未正确设置。如果无法访问应用程序和启动容器,很难说这是否已关闭。

此外,您可能需要检查已登录页面的响应标头。可能是它们被配置为拒绝某些现有的非 https cookie 或其他有效地导致现有 cookie 不可读并使 Experience Cloud ID 服务生成新 ID 和 cookie 的东西。

或者..也许你的应用程序是一个本地移动应用程序,但使用 http 包装器来拉入网页,所以它基本上是一个网络浏览器,但它实际上就像从一个网络浏览器移动到另一个网络浏览器(例如从 www.site 开始.com/pageA 在 Chrome 上,然后将该 URL 复制/粘贴到 Internet Explorer 以查看)。如此有效,不同的饼干罐。

启动(或 DTM) + Experience Cloud ID(Javascript 方法)

在最后 2 段等情况下,您必须像我原来的答案一样装饰您的目标链接,但使用 Launch + Experience Cloud ID Service javascript 语法:

_satellite.getVisitorId().appendVisitorIDsTo('[your url here]');

您编写一些代码来获取链接的目标 URL。然后通过此代码运行它以返回添加了参数的 url,然后使用新 URL 更新链接。

超级通用示例,仅更新页面上的所有链接。实际上,您应该只对访问者被重定向到的相关链接执行此操作。

var urls = document.querySelectorAll('a');
for (var i = 0, l = urls.length; i < l; i++) {
    if (urls[i].href) {
        urls[i].href = _satellite.getVisitorId().appendVisitorIDsTo(urls[i].href);
    }
}

推荐阅读