体验数据库(xDB)是Sitecore平台的关键元素,特别是当您希望将解决方案提升到简单的内容管理要求之外时。它用于跟踪您的用户(即联系人,访客,客户)与您网站的互动方式。营销人员可以使用此数据来了解客户行为,开发和优化广告系列,通过购买流程跟踪用户并衡量网站的成功与否。
在您的Sitecore仪表板上,您可能已经看过体验配置文件磁贴。
点击此按钮后,系统会显示您网站的访问者列表。如果您对网站进行过多次访问,则可能会包含大量行。不幸的是,他们可能都是名字 “匿名”和电子邮件 “未知”。我们该如何解决这个问题?我们为什么要这样做?
我们为什么要识别用户?
识别用户有许多好处:
- 为Sitecore体验配置文件和体验分析报告提供有用的上下文 - 当个人客户具有高价值时(例如在B2B方案中),这一点尤其重要。
- 如果我们的网站有经过身份验证的部分(登录),那么它会将这些用户带到Sitecore后端报告中,就像营销用户所期望的那样。
- 提供跨不同浏览器会话,浏览器,设备(计算机,电话等)甚至渠道(在线,离线等)的客户的单一视图。
- 它使Sitecore后端看起来好多了!
Sitecore体验配置文件与您的身份验证/成员资格/用户存储不同。通过xDB和Sitecore联系人,我们可以以相同的方式跟踪和识别经过身份验证的用户和未经身份验证的用户。
我们如何识别用户?
这可以通过多种方式完成,包括Web Forms for Marketers(WFFM)提交或代码。
无论哪种方式,它都将使用以下Sitecore API:
// identify the user
Sitecore.Analytics.Tracker.Current.Session.Identify(identifier)
这里标识符可以是用户唯一的任何字符串。您通常会使用以下之一:
- 用户名/登录/用户ID - 如果用户已通过身份验证
- 电子邮件地址 - 如果用户通过订阅注册或联系表单等交互提供了电子邮件
在我们使用上述代码识别用户之后,期望体验资料相应地更新是合理的。不幸的是情况并非如此!它现在只是说“未知”而不是“匿名”。
这不是营销人员在“识别”客户时所期望的。用户已被识别为Sitecore,但Sitecore不会让Sitecore后端用户知道这一点。要更新此列表中显示的名称和电子邮件,我们需要更多代码:
// get the contact
var contact = Sitecore.Analytics.Tracker.Current.Session.Contact;
// get the personal facet
var contactPersonalInfo = contact.GetFacet("Personal");
// set the contact's name
contactPersonalInfo.FirstName = "Brad";
contactPersonalInfo.Surname = "Curtis";
// get the email facet
var contactEmail = contact.GetFacet("Emails");
// Create an email if not already present.
// This can be named anything, but must be the same as "Preferred" if you want
// this email to show in the Experience Profiles backend.
if (!contactEmail.Entries.Contains("Home"))
{
contactEmail.Entries.Create("Home");
}
// set the email
var email = contactEmail.Entries["Home"];
email.SmtpAddress = "myemail@**.com";
contactEmail.Preferred = "Home";
在这里,我们设置了一些开箱即用的Sitecore联系方面。这里需要注意的一件事是Sitecore联系人可以拥有多个关联的电子邮件地址。在此示例中,我们创建了一个标有“Home”的电子邮件。要在体验资料访问者列表中显示的电子邮件地址,我们必须将首选电子邮件设置为此相同标签。
我创建了一个测试页面,以便您可以在自己的网站上使用此代码。只需将其放入Sitecore网站目录即可。