Sitecore 联系人跟踪:它是如何工作的?
Sitecore contact tracking: how does it work?
我已阅读
https://sitecore-community.github.io/docs/xDB/the-xdb-contact/ and https://doc.sitecore.net/sitecore_experience_platform/81/setting_up__maintaining/xdb/contacts/contact_tracking.
我想知道 Sitecore 联系人跟踪是否适用于我的客户。
我创建了一个简单的时事通讯订阅功能(无需 WFFM 表单提交)。一旦用户提交了他的信息以及个人详细信息和电子邮件,我就会发送一封确认电子邮件 link。确认电子邮件地址后,我正在通过代码创建联系人。感谢 Brian!
我的应用程序会话状态模式是InProc
。
我的问题是,如果用户在订阅后(提交电子邮件后)通过新会话与网站交互:
Sitecore 会将用户识别为联系人(并合并到现有的匿名联系人中)还是每次都会创建新的匿名联系人?
我没有在我的解决方案中使用以下任何服务:
- 设备检测
- GeoIp 服务
- FXM
你的方法
在我看来,您的情况完全没有必要手动创建联系人。
据我从您的 post 了解到,情况如下:
- 一位用户访问了您的网站。
- Sitecore 创建新联系人(ID:xxx)。
- 用户浏览网站并提交您的表单。
- 一封确认电子邮件会发送到用户的电子邮件地址。
- 用户点击电子邮件中的 link 并点击网站上的确认页面。
- 您的代码在 xDB 中创建了一个新联系人(ID:yyy)。
因此,从 Sitecore 的角度来看,您在 xDB 中有两个彼此不相关的独立联系人。
现在,回答你的问题:
Will Sitecore identify user as contact (and merge in existing anonymous contact) or will it create new anonymous contact each time?
如果用户从同一浏览器访问,Sitecore 将根据 cookie 将他们识别为原始联系人(ID:xxx)。在这种情况下,Sitecore 不会创建新联系人。
如果用户从其他浏览器或设备访问,他将不会被识别为任何现有联系人,并且会创建一个新的匿名联系人(ID:zzz) .
如您所见,Sitecore 无法自动使用您创建的联系人(ID:yyy)。
建议的解决方案
让 Sitecore 将用户识别为特定联系人的唯一方法是使用 identification API。简而言之,您可以做的是:
Sitecore.Analytics.Tracker.Current.Session.Identify(identifier);
以下是我建议您执行的操作:
- 不要手动创建新联系人——没有必要这样做。
- 当用户提交表单后,您调用
Identify()
并将用户的电子邮件地址作为 identifier
传递。这会将用户的电子邮件地址设置为当前联系人的标识符。
- 当用户从您发送的电子邮件 link 返回时,您再次调用
Identify()
。这将确保即使用户来自另一台设备,也会在他的会话中使用相同的 xDB 联系人。您需要将相同的电子邮件地址传递给 Identify()
,因此请确保您有权访问它——例如,您可以将其作为查询字符串参数包含在您的电子邮件确认 link 中。
- 使用
Sitecore.Analytics.Tracker.Current.Contact
并使用您收集的有关用户的信息填充当前联系人的 facets。
- 如果您有登录功能,请记住在成功登录尝试时调用
Identify()
— 同样,这是为了确保同一用户的所有会话都使用同一联系人。
我已阅读 https://sitecore-community.github.io/docs/xDB/the-xdb-contact/ and https://doc.sitecore.net/sitecore_experience_platform/81/setting_up__maintaining/xdb/contacts/contact_tracking.
我想知道 Sitecore 联系人跟踪是否适用于我的客户。
我创建了一个简单的时事通讯订阅功能(无需 WFFM 表单提交)。一旦用户提交了他的信息以及个人详细信息和电子邮件,我就会发送一封确认电子邮件 link。确认电子邮件地址后,我正在通过代码创建联系人。感谢 Brian!
我的应用程序会话状态模式是InProc
。
我的问题是,如果用户在订阅后(提交电子邮件后)通过新会话与网站交互:
Sitecore 会将用户识别为联系人(并合并到现有的匿名联系人中)还是每次都会创建新的匿名联系人?
我没有在我的解决方案中使用以下任何服务:
- 设备检测
- GeoIp 服务
- FXM
你的方法
在我看来,您的情况完全没有必要手动创建联系人。
据我从您的 post 了解到,情况如下:
- 一位用户访问了您的网站。
- Sitecore 创建新联系人(ID:xxx)。
- 用户浏览网站并提交您的表单。
- 一封确认电子邮件会发送到用户的电子邮件地址。
- 用户点击电子邮件中的 link 并点击网站上的确认页面。
- 您的代码在 xDB 中创建了一个新联系人(ID:yyy)。
因此,从 Sitecore 的角度来看,您在 xDB 中有两个彼此不相关的独立联系人。
现在,回答你的问题:
Will Sitecore identify user as contact (and merge in existing anonymous contact) or will it create new anonymous contact each time?
如果用户从同一浏览器访问,Sitecore 将根据 cookie 将他们识别为原始联系人(ID:xxx)。在这种情况下,Sitecore 不会创建新联系人。
如果用户从其他浏览器或设备访问,他将不会被识别为任何现有联系人,并且会创建一个新的匿名联系人(ID:zzz) .
如您所见,Sitecore 无法自动使用您创建的联系人(ID:yyy)。
建议的解决方案
让 Sitecore 将用户识别为特定联系人的唯一方法是使用 identification API。简而言之,您可以做的是:
Sitecore.Analytics.Tracker.Current.Session.Identify(identifier);
以下是我建议您执行的操作:
- 不要手动创建新联系人——没有必要这样做。
- 当用户提交表单后,您调用
Identify()
并将用户的电子邮件地址作为identifier
传递。这会将用户的电子邮件地址设置为当前联系人的标识符。 - 当用户从您发送的电子邮件 link 返回时,您再次调用
Identify()
。这将确保即使用户来自另一台设备,也会在他的会话中使用相同的 xDB 联系人。您需要将相同的电子邮件地址传递给Identify()
,因此请确保您有权访问它——例如,您可以将其作为查询字符串参数包含在您的电子邮件确认 link 中。 - 使用
Sitecore.Analytics.Tracker.Current.Contact
并使用您收集的有关用户的信息填充当前联系人的 facets。 - 如果您有登录功能,请记住在成功登录尝试时调用
Identify()
— 同样,这是为了确保同一用户的所有会话都使用同一联系人。