体验数据库(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. 【pyqtgraph绘图】在pyqtgraph中绘图

    解读pyqtgraph官方API-在pyqtgraph中绘图 参考: http://www.pyqtgraph.org/documentation/plotting.html 在pyqtgraph中绘 ...

  2. Log4j rootLogger配置

    Log4j 根配置语法 log4j.rootLogger = [ level ] , appenderName, appenderName, … 指代 把指定级别的日志信息输出到指定的一个或者多个位置 ...

  3. zabbix准备:mysql安装

    php在编译时需要mysql的配置,这样PHP远程连接mysql才有用.1.创建mysql用户和相关目录(配置文件里设置的目录) groupadd mysql useradd -g mysql -M ...

  4. VMware Workstation 不可恢复错误 解决方法

    问题: VMware Workstation 不可恢复错误: (vcpu-0) vcpu-0:VERIFY vmcore/vmm/main/cpuid.c:386 bugNr=1036521 日志文件 ...

  5. 20180925 SQL Server游标使用

    之前写了一个存储过程 目标: 根据时间,获取指定范围的数据集A, 再从数据集A 中,取出每行数据中的两个时间,卡另外一个B表里面的某列时间范围的值集.得到均值进行配置值比对. 这里有个问题,就是取得B ...

  6. Redis基本管理

    Redis介绍 开源 内存存储 数据结构存储  1.字符串(数字)    2.列表    3.hash    4.set 集合   5.sorted set 有序集合 用途 :数据库  缓存  消息队 ...

  7. Java中的枚举Enum

    public class TestEnum { /*最普通的枚举*/ public enum ColorSelect { red, green, yellow, blue; } /* 枚举也可以象一般 ...

  8. 微信支付-微信公众号支付,微信H5支付,微信APP支付,微信扫码支付

    在支付前,如果使用第三方MVC框架,则使用重写模式,服务器也需要配置该项 if (!-e $request_filename){ rewrite ^/(.*)$ /index.php/$ last; ...

  9. jQuery-velocity.js 插件的简易使用

    初识Velocity动画,感觉它并没有那么强大,但是渐渐感觉它的ui动画可以让我们简易的使用到我们的项目中. Velocity动画的简介: 下载地址:http://www.julian.com/res ...

  10. 116A

    #include <stdio.h> int main() { int n; int a1,a2; int min=0; int cap=0; scanf("%d",& ...