体验数据库(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. scapy 中的ARP

    scapy 常用命令 ls() //查看支持的协议对象lsc() //查看函数show() //查看数据包结构send() //三层发包sr() //三层收发sr1() //三层收发只收一 timeo ...

  2. 一步步搭建 Spring Boot maven 框架的工程

    摘要:让Spring应用从配置到运行更加快速,演示DIY Spring Boot 框架时,如何配置端口号,如何添加日志. Spring Boot 框架帮助开发者更容易地创建基于Spring的应用程序和 ...

  3. 浏览器的兼容性(CSS浏览器兼容性、CSS hack)

    一.关于CSS hack(尽量不用或者少用,减少页面复杂度) 1.条件注释法:(我的测试是IE9及其以下才有效) 这种方式是IE浏览器专有的Hack方式,微软官方推荐使用的hack方式.举例如下 只在 ...

  4. linux hostname 命令 显示当前主机域名 /etc/hostname

    hostname显示当前主机域名, 我们可以使用 hostname 命令来修改主机名,但这种修改方式只有当前有效,等服务器重启后hostname就会失效,回到原来的hostname. [root@my ...

  5. 利用Linux的硬连接删除MySQL大文件

    利用Linux的硬连接删除MySQL大文件 http://blog.csdn.net/wxliu1989/article/details/22895201 原理:硬链接基础当多个文件共同指向同一ino ...

  6. what's the 回抽

    出自 MBA智库百科(https://wiki.mbalib.com/) 什么是回抽 由于近年来证券投资领域中技术分析的不断普及,许多投资者都认识到了股价(汇价)一旦突破颈线压力,后市看好.但是还有一 ...

  7. 802.11n 连接的建议设置是什么?

    这些是用于支持 802.11N 的英特尔无线适配器的默认设置. 这些建议采用的设置可以在英特尔® PROSet/ 无线软件的 高级菜单上找到. 属性 值 频带 2.4 的 802.11n 通道宽度 自 ...

  8. javascript篇-slice(),splice(),split(),substring(),substr()的用法以及区别

    1.slice(),从已经有的数组中返回选定的元素, 使用范围是:Array,string 语法:obj.slice(start,end) 参数: start: 必需.规定从数组(字符串)的哪个ind ...

  9. 常见的local variable 'x' referenced before assignment问题

    def fun1(): x = 5 def fun2(): x *= 2 return x return fun2() 如上代码,调用fun1() 运行会出错:UnboundLocalError: l ...

  10. JAVA基础——时间Date类型转换

    在java中有六大时间类,分别是: 1.java.util包下的Date类, 2.java.sql包下的Date类, 3.java.text包下的DateFormat类,(抽象类) 4.java.te ...