Sitecore联系人跟踪:它是如何工作的?

Moh*_*ari 5 sitecore sitecore-xdb sitecore8.1

我已阅读 https://sitecore-community.github.io/docs/xDB/the-xdb-contact/https://doc.sitecore.net/sitecore_experience_platform/81/setting_up__maintaining/xdb/contacts/contact_tracking.

我想知道Sitecore联系人跟踪是否适用于我的客户.

我创建了一个简单的新闻订阅功能(没有WFFM表单提交).一旦用户提交了他的信息以及个人信息和电子邮件,我就会发送一封确认电子邮件链接.确认电子邮件地址后,我正在通过代码创建联系人.感谢Brian!

我的应用程序会话状态模式是InProc.

我的问题是,如果用户在订阅后通过新会话与网站进行交互(提交电子邮件后):

Sitecore会将用户识别为联系人(并合并现有的匿名联系人),还是每次都会创建新的匿名联系人?

我在我的解决方案中没有使用以下任何服务:

  • 设备检测
  • GeoIp服务
  • FXM

Dmy*_*nko 6

你的方法

在我看来,在您的情况下完全没有必要手动创建联系人.

据我的帖子了解,这是发生的事情:

  1. 用户访问您的网站.
  2. Sitecore创建一个新联系人(ID:xxx).
  3. 用户浏览网站并提交表单.
  4. 确认电子邮件将发送到用户的电子邮件地址.
  5. 用户单击电子邮件中的链接并点击该站点上的确认页面.
  6. 您的代码在xDB中创建一个新联系人(ID:yyy).

因此,从Sitecore的角度来看,xDB中有两个彼此不相关的单独联系人.

现在,问你的问题:

Sitecore会将用户识别为联系人(并合并现有的匿名联系人),还是每次都会创建新的匿名联系人?

如果用户从同一浏览器访问,Sitecore将根据cookie 将其识别为原始联系人(ID:xxx).在这种情况下,Sitecore不会创建新联系人.

如果用户正在从其他浏览器或设备访问,则不会将其识别为任何现有联系人,并且将创建新的匿名联系人(ID:zzz).

如您所见,Sitecore无法自动使用您创建的联系人(ID:yyy).

建议的解决方案

使Sitecore将用户识别为特定联系人的唯一方法是使用标识API.简而言之,你能做的就是:

Sitecore.Analytics.Tracker.Current.Session.Identify(identifier);
Run Code Online (Sandbox Code Playgroud)

这是我建议你做的事情:

  • 难道不是创建新的联系人手动这里还有没有必要.
  • 当用户提交表单时,您将调用Identify()并传递用户的电子邮件地址identifier.这会将用户的电子邮件地址设置为当前联系人的标识符.
  • 当用户从您发送的电子邮件链接返回时,您将Identify()再次调用.这将确保即使用户来自其他设备,也会在其会话中使用相同的xDB联系人.您需要将相同的电子邮件地址传递给Identify(),因此请确保您可以访问它 - 例如,您可以将其作为查询字符串参数包含在电子邮件确认链接中.
  • 使用Sitecore.Analytics.Tracker.Current.Contact并填充当前联系人的方面以及您收集的有关用户的信息.
  • 如果您具有登录功能,请记住Identify()在成功登录尝试时再次调用- 这是为了确保同一联系人用于同一用户的所有会话.