我想显示一些不同的sublayout,如果用户访问了一些页面超过2次,所以我想使用这个规则“访问号码与数字比较”,但我不知道如何使用它?我试图添加此规则并将“数字”替换为2,但它不起作用。SItecore的个性化
回答
正如马雷克所说,这是不可能的,因为你正在使用的条件。但是,您可以通过查看页面的VisitPageIndex来调整Rule条件以实现此目的。
public class ContactVisitPageIndexCondition<T> : OperatorCondition<T> where T : RuleContext
{
public int No
{
get;
set;
}
public ID PageGUID
{
get;
set;
}
public ContactVisitPageIndexCondition()
{
}
protected override bool Execute(T ruleContext)
{
Assert.ArgumentNotNull(ruleContext, "ruleContext");
Assert.IsNotNull(Tracker.Current, "Tracker.Current is not initialized");
Assert.IsNotNull(Tracker.Current.Session, "Tracker.Current.Session is not initialized");
Assert.IsNotNull(Tracker.Current.Session.Interaction, "Tracker.Current.Session.Interaction is not initialized");
int contactVisitPageIndex = Tracker.Current.Session.Interaction.Pages.SingleOrDefault(p => p.Item.Id == PageGUID).VisitPageIndex;
switch (base.GetOperator())
{
case ConditionOperator.Equal:
{
return contactVisitPageIndex == this.No;
}
case ConditionOperator.GreaterThanOrEqual:
{
return contactVisitPageIndex >= this.No;
}
case ConditionOperator.GreaterThan:
{
return contactVisitPageIndex > this.No;
}
case ConditionOperator.LessThanOrEqual:
{
return contactVisitPageIndex <= this.No;
}
case ConditionOperator.LessThan:
{
return contactVisitPageIndex < this.No;
}
case ConditionOperator.NotEqual:
{
return contactVisitPageIndex != this.No;
}
}
return false;
}
}
'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))' –
由于马雷克Musielak说,Where the visit no. compares to ..
有关访问该网站,而不是一个人的页面。
我有Sitecore的API中一看,其Tracker
命名空间,我可以找到具体的网页浏览次数最接近的属性是VisitPageIndex
但反编译的代码,并检查MongoDB
表明,仅仅是页面的索引被视为对于访问该网站,所以这不会为你工作。
展望MongoDB
没有属性来存储页面访问量,但它确实存储了观看Interactions
Pages
所以你可以写一个自定义规则计数的次数是页面的页面数组中
例如
int pageViewed = Tracker.Current.Session.Interaction.Pages.Count(p => p.Item.Id.Equals(yourPageId))
,如果你不想编写自定义的另一种方法是用怎样Sitecore的个性化扫描工作有点直列改变你的方法开箱。
您会想在Marketing Centre
例如Marketing Centre
中使用或创建profile keys
。 “品牌知名度”。将新的profile key
分配给相关页面,并为其指定一个分数。 10.这意味着每次用户访问该页面时,他们都会获得“品牌知名度”中的10分。
现在为个性化位。在现有的sublayout
上创建新的个性化规则,如果分数为greater than or equal to
,则使用'其中特定配置文件键的值与特定值进行比较'将其设置为隐藏。20.如果值为greater than or equal to
20.创建另一个以显示新的sublayout
20.
我写了一篇关于这个的博客,如果you need more info
- 1. Sitecore性别个性化
- 2. Sitecore个性化 - 前一页
- 3. Sitecore个性化效果
- 4. Sitecore性能优化 - Sitecore配置,IIS配置
- 5. Sitecore的个性化首先访问规则
- 6. 不同多租户sitecore网站之间的预测性个性化
- 7. 在Sitecore中的序列化
- 8. Sitecore的XSL本地化
- 9. 在Sitecore中存储匿名访问者的个性化详细信息6.4
- 10. Sitecore URL优化和语言
- 11. sitecore发布初始化7.1
- 12. 优化Sitecore Lucene/Solr查询
- 13. 如何优化sitecore查询?
- 14. Sitecore缓存和变化
- 15. Sitecore Azure部署自动化
- 16. sitecore RTE删除空属性
- 17. Sitecore 5.3(Intranet)GetUser和性能
- 18. 的Sharepoint个性化
- 19. aspnet个性化
- 20. 访问Sitecore中的IsActive属性
- 21. 使用Lucene改善Sitecore中的性能
- 22. 几个Sitecore问题
- 23. Sitecore发布停滞初始化6.4
- 24. Sitecore的:
- 25. 我的iAds个性化
- 26. 个性化网址
- 27. 个性化内容
- 28. Sitecore性能:Caching.DisableCacheSizeLimits设置为“false”
- 29. SiteCore链接不添加属性
- 30. Sitecore Droplink设置属性不起作用
您使用的Sitecore 8的修订版本是什么? “我不知道如何使用它”是什么意思?您是否已经在子布局中设置了规则并将其发布? –
这里有一篇关于建立个性化的好文章 - http://www.nonlinearcreations.com/Digital/how-we-think/articles/2014/06/Sitecore-DMS-personalization-howto.aspx –
' 。比较......规则意味着它是用户在该网站上的第n次访问,而不是该用户多次打开其中一个页面。 –