体验数据库(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<Sitecore.Analytics.Model.Entities.IContactPersonalInfo>("Personal"); // set the contact's name
contactPersonalInfo.FirstName = "Brad";
contactPersonalInfo.Surname = "Curtis"; // get the email facet
var contactEmail = contact.GetFacet<Sitecore.Analytics.Model.Entities.IContactEmailAddresses>("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网站目录即可。

Sitecore xDB基础知识 - 识别用户,联系人,访客,客户的更多相关文章

  1. Linux基础知识之用户和用户组以及 Linux 权限管理

    已经开始接触Linux用户管理,用户组管理,以及权限管理这几个逼格满满的关键字.这几个关键字对于前端程序猿的我来说真的是很高大上有木有,以前尝试学 Linux 的时候看到这些名词总是下意识的跳过不敢看 ...

  2. Sitecore个性化 - 基础知识

    许多组织选择Sitecore作为其高级个性化功能的网站平台.Sitecore个性化需要什么以及它能为您的品牌提供什么? 今天, 对于希望提供更好的客户体验的组织来说,个性化不仅仅是一个很好的选择 - ...

  3. CSS3 基础知识[转载minsong的博客]

    CSS3 基础知识1.边框    1.1 圆角  border-radius:5px 0 0 5px;    1.2 阴影  box-shadow:2px 3px 4px 5px rgba(0,0,0 ...

  4. sitecore系列教程之如何以编程方式将访客数据关联到联系人卡片

      在我之前关于Sitecore体验资料的帖子中,我们看到了我们如何了解访问者的一切,包括访问他们在访问期间触发的事件.在这篇博客文章中,我将引导您完成识别匿名用户并将用户访问与联系人记录联系起来的过 ...

  5. 守护线程在logback中的使用 - 论基础知识的重要性

    守护线程在logback中的使用 先说问题,在java应用中,logback的异步Appender是怎么在主线程结束后,停下来的? 复盘 我在一个logback的测试用例中,写了这样的代码和logba ...

  6. OLAP和OLTP的区别(基础知识) 【转】

    联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则.OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 ( ...

  7. 7.Flink实时项目之独立访客开发

    1.架构说明 在上6节当中,我们已经完成了从ods层到dwd层的转换,包括日志数据和业务数据,下面我们开始做dwm层的任务. DWM 层主要服务 DWS,因为部分需求直接从 DWD 层到DWS 层中间 ...

  8. .net core 和 WPF 开发升讯威在线客服系统:使用本地IP数据库实现访客来源快速定位,支持国外

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 免费使用 & 私有化部署:https://kf.shengxun ...

  9. 【RL-TCPnet网络教程】第16章 UDP用户数据报协议基础知识

    第16章      UDP用户数据报协议基础知识 本章节为大家讲解UDP(User Datagram Protocol,用户数据报协议),需要大家对UDP有个基础的认识,方便后面章节UDP实战操作. ...

随机推荐

  1. Linux7安装Oracle 11g 86%报错:Error in invoking target 'agent nmhs' of makefile

    解决方案在makefile中添加链接libnnz11库的参数修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将$(MK_EMAGENT_NMECTL)修改为:$(MK ...

  2. LeetCode 669 Trim a Binary Search Tree 解题报告

    题目要求 Given a binary search tree and the lowest and highest boundaries as L and R, trim the tree so t ...

  3. SQL[Err]ORA-00XXX: missing 相关

    1.[Err]ORA-00936: missing expression 造成这个错误的原因是:选取的最后一个字段与from之间有逗号 解决方法:将字段与from之间的逗号去掉. 2.[Err] OR ...

  4. eclipse怎么解决Failed to load the JNIshared library

    Q: 打开eclipse打开报Failed to load the JNIshared library的错误. A:jdk的位数跟eclipse位数一致即可解决. 把eclipse下载64位即可 cm ...

  5. vue脚手架用axios请求本地数据

    首先需要声明的是:本地请求,不用考虑跨域问题,这适用刚入坑的前端小白看,小白在做自己的项目时,通常都是用自己写的json数据,之后用axios请求过来,渲染到页面上. 1.cnpm install a ...

  6. 重读《深入理解Java虚拟机》三、Java虚拟机执行的数据入口(类文件结构)

    1.Java如何实现平台无关系 Java要实现平台无关系就需要在Java代码和本地机器之间引入一个中间层,实现Java代码和本地机器的解耦,而这个中间层就是字节码.字节码独立于本地机器,以实现代码的可 ...

  7. es中的停用词

    停用词主要是为了提升性能与精度.从早期的信息检索到如今,我们已习惯于磁盘空间和内存被限制为很小一部分,所以 必须使你的索引尽可能小. 每个字节都意味着巨大的性能提升. 词干提取的重要性不仅是因为它让搜 ...

  8. 数据库——MongoDB

    what's the MongoDB MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bson格式 ...

  9. [django]cbv方式

    cbv的方式 1.简单的url from django.views.generic import TemplateView path('', TemplateView.as_view(template ...

  10. IOP知识点(2)

    1   URL资源访问不足时,需要添加URL权限 2   重定向问题解决办法:3  cloud-service-factory 项目 gradlew方法 1   URL资源访问不足时,需要添加URL权 ...