当我从应用程序登录然后从应用程序移动到网站时,跨域访问者ID不一致

时间:2019-02-07 16:53:16

标签: tags adobe adobe-analytics adobe-dtm

使用了体验云访问者ID。 App,Web使用相同的Adobe启动库。当我登录到应用程序url更改和mid更改,然后从应用程序导航到Web响应页面时,mid更改了,并且看不到从app到Web的任何跨域路径报告?

我需要与s.cookiedomainperiod做任何事情或使其工作吗?

1 个答案:

答案 0 :(得分:0)

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

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

Android

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];

如果实施正确,您现在应该在目标URL后面看到一个adobe_mc=参数。然后在目标页面的页面视图中,如果您已实现Adobe Analytics javascript和Experience Cloud Visitor ID库,它们将自动查找并使用该值,而不是生成新值(此端不需要任何配置/编码)。

更新

@Ramaiyavraghvendra您发表了评论:

  

您好,@ Crayon,谢谢您的深刻回答。对不起,我   错过了通知此应用程序不是本地应用程序,但这是SPA   应用程式。因此整个应用的实施也需要通过启动来完成。   那么,您能在这种情况下提供帮助吗?

我不确定我是否完全理解您的问题。如果您不打算从本机移动应用程序移动到网页,而您的移动应用程序实际上是基于Web的SPA,并且在整个应用程序中将“启动”输出为常规javascript代码,那么您就无需做任何事情; Experience Cloud ID服务应将ID逐页保留。

因此,听起来好像您的Experience Cloud Visitor ID和/或Adobe Analytics收集服务器设置未正确配置。如果登录涉及从例如www.mysite.com到www.mysite.co.uk或类似网站的登录,则cookie域期限变量可能是个问题,但是如果TLD具有相同的时期数,这应该不成问题。

或者,trackingServertrackingServerSecure变量可能配置不正确。实际上,我通常根本不设置trackingServerSecure。这些变量在与您所使用的场景不同的情况下会造成混乱和IMO错误,因此我倾向于在trackingServer字段中使用“安全”值,而将trackingServerSecure留空,然后再进行体验Cloud Visitor ID和Adobe Analytics将仅100%地使用安全版本。

Or..it可能是许多其他未正确设置的配置变量。如果没有访问应用程序和启动容器,很难说这是否已关闭。

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

或者..也许您的应用属于本地移动应用,但是使用http包装器提取网页,因此它基本上是网络浏览器,但实际上就像是从一个网络浏览器移至另一个(例如在Chrome上www.site.com/pageA,然后将该URL复制/粘贴到Internet Explorer进行查看)。如此有效,不同的饼干罐。

Launch (or DTM) + Experience Cloud ID(JavaScript方法)

在诸如后两段之类的情况下,您必须使用我的原始答案来装饰目标链接,但要使用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);
    }
}