我已经通读了 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会将用户识别为联系人(并合并现有的匿名联系人),还是每次都会创建新的匿名联系人?
我不在我的解决方案中使用以下任何服务:
答案 0 :(得分:6)
在我看来,在您的情况下完全没有必要手动创建联系人。
据我的帖子了解,现在发生了什么:
因此,从Sitecore的角度来看,xDB中有两个彼此无关的单独联系人。
现在,问你的问题:
Sitecore会将用户识别为联系人(并合并现有的匿名联系人),还是每次都会创建新的匿名联系人?
如果用户正在使用同一浏览器访问,则Sitecore会根据Cookie将其识别为原始联系人(ID: xxx )。在这种情况下,Sitecore不会创建新联系人。
如果用户正在访问其他浏览器或设备,则不会将其识别为任何现有联系人,并且会创建新的匿名联系人(ID: zzz )。
如您所见,Sitecore无法自动使用您创建的联系人(ID: yyy )。
使Sitecore将用户识别为特定联系人的唯一方法是使用identification API。简而言之,你能做的就是:
Sitecore.Analytics.Tracker.Current.Session.Identify(identifier);
我建议您这样做:
Identify()
并将用户的电子邮件地址作为identifier
传递。这会将用户的电子邮件地址设置为当前联系人的标识符。Identify()
。这将确保即使用户来自其他设备,也会在其会话中使用相同的xDB联系人。您需要将相同的电子邮件地址传递给Identify()
,因此请确保您可以访问它 - 例如,您可以将其作为查询字符串参数包含在电子邮件确认链接中。Sitecore.Analytics.Tracker.Current.Contact
并使用您收集的有关用户的信息填充当前联系人facets。Identify()
- 这是为了确保同一用户的所有会话都使用相同的联系人。