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

Sitecore的API提供了各种方法来识别访问者并将有关访问者的各种详细信息与联系人记录联系起来。

如何识别匿名访客?

这是识别匿名访客过程中的主要要求之一,以下是我们可以尝试通过各种用户操作捕获有关访问者的信息的一些方法,其中一些列在下面

  • 登录网站(注册,使用社交媒体,如Facebook,Twitter等)
  • 在网站上提交表格(联系我们,反馈等)
  • 使用他们的电子邮件地址订阅时事通讯,文章,白皮书

以上所有选项都需要用户至少向我们提供他们的电子邮件地址,从那里我们可以将唯一的电子邮件地址绑定到访问者。

Sitecore开箱即用,为我们提供了许多方面来存储有关联系人的其他信息。这些数据可以帮助我们填写Sitecore体验资料。

这些方面在此配置{root} \ Website \ App_Config \ Include \ Sitecore.Analytics.Model.config

[sourcecode language =“xml”] 
<facets> 
<facet name =“Personal”contract =“Sitecore.Analytics.Model.Entities.IContactPersonalInfo,Sitecore.Analytics.Model”/> 
<facet name =“Addresses”contract =“Sitecore .Analytics.Model.Entities.IContactAddresses,Sitecore.Analytics.Model“/> 
<facet name =”Emails“contract =”Sitecore.Analytics.Model.Entities.IContactEmailAddresses,Sitecore.Analytics.Model“/> 
<facet name =”电话号码“contract =”Sitecore.Analytics.Model.Entities.IContactPhoneNumbers,Sitecore.Analytics.Model“/> 
<facet name =”Picture“contract =”Sitecore.Analytics.Model.Entities。IContactPicture,Sitecore.Analytics.Model“/> 
</ facets> 
[/ sourcecode]

将访客的电子邮件地址存储到联系人记录中

我们将使用电子邮件方面 将当前访客的电子邮件地址存储到当前联系人记录中。在电子邮件方面,您可以通过为每个电子邮件地址提供密钥来指定任意数量的电子邮件地址,如下所示,我提供了名为Work Email的 密钥用于存储访问者工作电子邮件地址。您还可以将特定电子邮件地址关联为首选  电子邮件地址,然后将其用于使用电子邮件地址识别联系人。

Sitecore允许您使用电子邮件地址搜索体验资料中的联系人

[sourcecode language =“csharp”]

if(Sitecore.Analytics.Tracker.Current.Contact!= null)
{ 
var emailFacet = Tracker.Current.Contact.GetFacet <IContactEmailAddresses>(“Emails”); 
//检查联系人
是否已存在工作电子邮件地址if(!emailFacet.Entries.Contains(“工作电子邮件”))
{ 
IEmailAddress email = emailFacet.Entries.Create(“工作电子邮件”); 
email.SmtpAddress =“访客的电子邮件地址”; 
emailFacet.Preferred =“工作电子邮件”; 
} 
}

[/源代码]

将访客的个人信息存储到联系人记录中

我们将使用Personal  facet 将当前访问者的个人信息存储到当前联系人记录中.Sitecore允许您使用任何名称属性(如FirstName,LastName,Surname)搜索体验配置文件中的联系人。

[sourcecode language =“csharp”]

if(Sitecore.Analytics.Tracker.Current.Contact!= null)
{ 
var personalFacet = Tracker.Current.Contact.GetFacet <IContactPersonalInfo>(“Personal”); 
personalFacet.Title =“Name_Title”; 
personalFacet.FirstName =“First_Name”; 
personalFacet.MiddleName =“Middle_Name”; 
personalFacet.Surname =“Last_Name”; 
personalFacet.Gender =“性别”; 
personalFacet.JobTitle =“Job_Title”; 
personalFacet.BirthDate = new DateTime(1983,01,01); 
}

[/源代码]

将访客的电话号码存储到联系人记录中

我们将使用电话号码方面 将当前访客的电话号码存储到当前的联系人记录中。在电话号码  方面,您可以通过为每个电话号码提供密钥来指定任意数量的电话号码,如下所示我有提供称为手机 的密钥来存储访客的手机号码。您还可以将特定号码关联为首选  电话号码。

[sourcecode language =“csharp”]

if(Sitecore.Analytics.Tracker.Current.Contact!= null)
{ 
var phoneFacet = Tracker.Current.Contact.GetFacet <IContactPhoneNumbers>(“Phone Numbers”); 
if(!phoneFacet.Entries.Contains(“Cell Phone”))
{ 
IPhoneNumber cellPhone = phoneFacet.Entries.Create(“Cell Phone”); 
cellPhone.CountryCode =“001”; 
cellPhone.Number =“612-000-0000”; 
cellPhone.Extension =“8455”; 
phoneFacet.Preferred =“手机”; 
} 
} 
[/源码]

将访客的图像/图片存储到联系人记录中

我们将使用Picture facet 将当前访客的图片存储到当前的联系人记录中,

[sourcecode language =“csharp”]

if(Sitecore.Analytics.Tracker.Current.Contact!= null)
{ 
MediaItem mediaItem = Sitecore.Context.Database.GetItem(“媒体项目的指南”); 
var stream = mediaItem.GetMediaStream(); 
var memoryStream = new MemoryStream(); 
if(stream!= null)stream.CopyTo(memoryStream); 
var pictureFacet = Tracker.Current.Contact.GetFacet <IContactPicture>(“Picture”); 
pictureFacet.Picture = memoryStream.ToArray(); 
pictureFacet.MimeType = mediaItem.MimeType; 
}

[/源代码]

如何识别已知访客?

一旦我们使用上述方法存储了有关访问者的信息,Sitecore就允许我们使用Sitecore.Analytics.Tracker.Current.Session.Identify方法识别已知访问者。此方法接受一个字符串变量,该变量是访问者的电子邮件地址。

[sourcecode language =“csharp”]

var identifiers = Sitecore.Analytics.Tracker.Current.Contact.Identifiers; 
if(identifiers.IdentificationLevel == ContactIdentificationLevel.Anonymous)
{ 
Sitecore.Analytics.Tracker.Current.Session.Identify(“访客的电子邮件地址”); 
} 
[/ sourcecode]

摘要

使用Sitecore的新API,开发人员现在可以更轻松地关联访问者的各种信息并将其与联系人卡片联系起来,这将极大地帮助营销人员更好地了解访问者。一旦我们能够使用电子邮件地址关联访问者,我们还可以使用来自CRM系统(如Salesforce或Dynamics)的信息更新记录。

sitecore系列教程之如何以编程方式将访客数据关联到联系人卡片的更多相关文章

  1. Shell脚本系列教程二: 开始Shell编程

    Shell脚本系列教程二: 开始Shell编程 2.1 如何写shell script? (1) 最常用的是使用vi或者mcedit来编写shell脚本, 但是你也可以使用任何你喜欢的编辑器; (2) ...

  2. sitecore系列教程之目标功能有什么新意?

    由于SItecore 8中有很多令人兴奋的东西,我选择专注于体验平台的特定领域,这篇文章的主题是目标. 1.客户智能选项  目标项目(/ sitecore / system / Marketing C ...

  3. sitecore系列教程之简单和个性化

    现代Web开发倾向于关注内容管理系统(CMS)的功能丰富的程序.最终用户可以做什么?作为内容管理者,我们可以为最终用户实现其目标提供哪些功能?开发人员可以为内容管理员构建哪些组件来实现它们? 相关内容 ...

  4. JXLS 2.4.0系列教程(二)——循环导出一个链表的数据

    请务必先看上一篇文章,本文在上一篇文章的代码基础上修改而成. JXLS 2.4.0系列教程(一)--最简单的模板导出 上一篇文章我们介绍了JXLS和模板导出最简单的应用,现在我们要更进一步,介绍在模板 ...

  5. sitecore系列教程之营销人员和技术人员如何策划与消费者的对话以提升体验?

    “每次良好的交谈都要从良好的倾听开始.” - 未知 你是如何听取网站访问者的?你是在倾听还是只是回复? 拥有内容管理系统只是良好网站战略的一个要素.毕竟,内容必须是动态的,及时的和相关的. 当网站访问 ...

  6. Python Twisted系列教程2:异步编程初探与reactor模式

    作者:dave@http://krondo.com/slow-poetry-and-the-apocalypse/  译者:杨晓伟(采用意译) 这个系列是从这里开始的,欢迎你再次来到这里来.现在我们可 ...

  7. sitecore系列教程场所分类简介

    在Sitecore体验平台(XP)中,场所是可跟踪的离线交互发生的位置.这些是发生交互的物理位置,例如特定的零售场所或公共汽车站. 您可以使用场所分类记录特定交互发生的位置.此信息保存在体验数据库(x ...

  8. sitecore系列教程之更改您的个人设置

    在Sitecore控制面板中,您可以设置个人设置,例如密码或区域和语言选项,以使应用程序满足您的需求. 要更改您的个人设置: 在Sitecore Launchpad上,单击“ 控制面板”. 在“控制面 ...

  9. sitecore系列教程之改进Sitecore编辑体验的5个步骤

    Sitecore完全关注客户体验,在适当的时间为合适的人提供合适的体验.虽然没有人会不同意客户体验是王道,但我们仍然需要记住每天使用Sitecore的人们为客户带来惊人体验的体验. 我看到无数客户通过 ...

随机推荐

  1. 《linux 字符处理》- grep/sort/uniq/tr/paste

    一:基本 字符处理主要是文本的搜索和处理. 搜索也主要使用到了 管道 作为媒介. 二: grep 搜索文本 基本语法 * grep [-incv] ’文本’ 文件 * i 不区分大小写 * c 匹配行 ...

  2. java 集合(三)List接口

    package cn.sasa.demo1; import java.util.ArrayList; import java.util.LinkedList; import java.util.Lis ...

  3. maven项目里jar包显示灰色

    在spring boot项目加载Junit jar包之后,发现jar的颜色是灰色的,和其它的不一样. 带着好奇问了问身边的大神,大神解释说是因为pom文件里依赖项带上了<scope>tes ...

  4. CAS 原理

    基础模式 1. 访问服务:  客户端发送请求访问应用系统提供的服务资源. 2. 定向认证:  客户端会重定向用户请求到 服务器. 3. 用户认证:用户身份认证. 4. 发放票据: 服务器会产生一个随机 ...

  5. 【Linux】阿里云服务器部署--禅道

    Xshell部署环境 回到Xshell界面,连上阿里云服务器,参考上一篇[linux学习1-Xshell连接阿里云ECS服务器](https://www.cnblogs.com/yoyoketang/ ...

  6. 数据库级别DML操作监控审计、表触发器/对象触发器

    使用触发器记录DML,使用触发器记录表的DML 数据库级别DML操作监控审计.表触发器/对象触发器 --创建记录表 CREATE TABLE T_SHALL_LOG ( ID , ) , EVTIME ...

  7. vue中less的使用

    1.安装:npm install less less-loader --save 2.修改webpack.config.js文件,配置loader加载依赖,让其支持外部的less,在原来的代码上添加 ...

  8. [django]前后端分离之JWT用户认证

    在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当我们透过帐号密码验证一个使用者时,当下一个request请求时它就把刚刚的资料忘了.于是我 ...

  9. [vue]基础篇stepbystep案例实践(废弃)

    去看这个就好了 总结: 1.子组件可以触发父组件的方法,this.$emit() //(通知父组件干活) 2.父组件可以调用子组件的方法() // ref 如果放在组件上 获取的是组件的实例 并不是组 ...

  10. javaBean转为json

    一个测试用例 javabean转json @Test @Rollback(false) public void policyQueryTest() throws Exception { // 查询数据 ...