SItecore中的个性化

SItecore中的个性化,sitecore,sitecore8,personalization,Sitecore,Sitecore8,Personalization,如果用户访问某个页面超过2次,我想显示一些不同的子布局,因此我想使用此规则“访问编号与编号的比较位置”,但我不知道如何使用它?我尝试添加此规则并将“number”替换为2,但它不起作用。正如Marek所说,在您使用的条件下,这是不可能的。但是,您可以通过查看页面的VisitPageIndex来调整规则条件以实现这一点 公共类ContactVisitPageIndexCondition:OperatorCondition其中T:RuleContext { 公共国际号码 { 收到 设置 } 公共ID

如果用户访问某个页面超过2次,我想显示一些不同的子布局,因此我想使用此规则“访问编号与编号的比较位置”,但我不知道如何使用它?我尝试添加此规则并将“number”替换为2,但它不起作用。

正如Marek所说,在您使用的条件下,这是不可能的。但是,您可以通过查看页面的VisitPageIndex来调整规则条件以实现这一点

公共类ContactVisitPageIndexCondition:OperatorCondition其中T:RuleContext
{
公共国际号码
{
收到
设置
}
公共ID页面GUID
{
收到
设置
}
公共联系人VisitPageIndexcondition()
{
}
受保护的覆盖布尔执行(T规则上下文)
{
Assert.ArgumentNotNull(ruleContext,“ruleContext”);
Assert.IsNotNull(Tracker.Current,“Tracker.Current未初始化”);
Assert.IsNotNull(Tracker.Current.Session,“Tracker.Current.Session未初始化”);
Assert.IsNotNull(Tracker.Current.Session.Interaction,“Tracker.Current.Session.Interaction未初始化”);
int contactVisitPageIndex=Tracker.Current.Session.Interaction.Pages.SingleOrDefault(p=>p.Item.Id==PageGUID).VisitPageIndex;
开关(base.GetOperator())
{
大小写条件运算符。相等:
{
return contactVisitPageIndex==this.No;
}
case ConditionOperator.GreaterThanOrEqual:
{
返回contactVisitPageIndex>=此。否;
}
case ConditionOperator.GreaterThan:
{
返回contactVisitPageIndex>this.No;
}
case ConditionOperator.LessThanOrEqual:
{

return contact visitpageIndex正如Marek Musielak所说,
其中的访问编号与..
相关,与网站访问相关,而不是单个页面

我查看了Sitecore API,它的
Tracker
名称空间和我能找到的最接近单个页面查看计数的属性是
VisitPageIndex
,但是反编译代码并签入
MongoDB
显示,这只是页面的索引是为访问该站点而查看的,所以这对我来说不起作用你

MongoDB
中查找时,没有存储页面视图的属性,但它确实存储为
交互查看的
页面
,因此您可以编写一个自定义规则,计算页面在页面数组中的次数

e、 g

int pageview=Tracker.Current.Session.Interaction.Pages.Count(p=>p.Item.Id.Equals(yourPageId))
如果您不想编写自定义,另一种选择是根据Sitecore个性化扫描的开箱即用方式改变方法

您需要在
营销中心中使用或创建
配置文件键
,例如“品牌意识”。将您的新
配置文件键
分配给相关页面,并为其分配分数,例如10。这意味着用户每次访问此页面时,都会在“品牌意识”中获得10分

现在进入个性化位。使用“特定配置文件键的值与特定值的比较位置”在现有的
子布局上创建新的个性化规则。如果分数
大于或等于
20,则将其设置为隐藏。如果值大于
则创建另一个规则以显示新的
子布局大于或等于
20


我已经写了一篇关于这一点的博客,如果

你使用的是什么版本的Sitecore 8?你说的“我不知道如何使用它”是什么意思。您是否在子版面上设置了规则并发布了它?这里有一篇关于设置个性化的好文章-
,其中访问号与…
相比。规则意味着这是用户在站点上的第n次访问,而不是用户多次打开其中一个页面。
VisitPageIndex
是一个难题,只返回页面的索引在联系人的访问中查看了年龄,但这是一个很好的答案-只需替换
Tracker.Current.Session.Interaction.Pages.SingleOrDefault(p=>p.Item.Id==PageGUID)。VisitPageIndex;
Tracker.Current.Session.Interaction.Pages.Count(p=>p.Item.Id.Equals(yourPageId))