如果用户访问某个页面的次数超过2次,我想显示一些不同的子布局,因此我想使用此规则"其中访问次数为#。比较数字"但我不知道如何使用它?我尝试添加此规则并替换" number"到2但它不起作用。
答案 0 :(得分:2)
正如马雷克所说,你使用的条件是不可能的。但是,您可以通过查看页面的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;
}
}
答案 1 :(得分:2)
正如Marek Musielak所说,Where the visit no. compares to ..
与访问该网站有关,而不是单独的网页。
我查看了Sitecore API,它的Tracker
命名空间,我可以找到的最接近的属性是单个页面查看计数VisitPageIndex
但是反编译代码并检入MongoDB
显示只是该网页的索引被访问了,因此这对您不起作用。
查看MongoDB
没有用于存储网页浏览量的属性,但它确实存储了Pages
查看的Interactions
,因此您可以编写一个自定义规则来计算该网页的显示次数在Pages数组中
e.g。
int pageViewed = Tracker.Current.Session.Interaction.Pages.Count(p => p.Item.Id.Equals(yourPageId))
如果您不想编写自定义内容,另一种选择是改变您的方法,使其与Sitecore个性化扫描的开箱即用方式相符。
您希望在profile keys
中使用或创建Marketing Centre
,例如&#39;品牌意识&#39;。将新profile key
分配给相关网页,并为其指定分数,例如10.这意味着每次用户访问此页面时,他们都会获得10分的“品牌意识”。
现在为个性化位。使用&#39;在现有sublayout
上创建新的个性化规则,其中特定配置文件密钥的值与特定值&#39;相比较。如果分数为greater than or equal to
,则将其设置为隐藏20.如果值为sublayout
20,则创建另一个以显示新的greater than or equal to
。