我想顯示一些不同的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個性化 - DropLink
- 2. Sitecore性別個性化
- 3. Sitecore的個性化實施
- 4. Sitecore個性化 - 前一頁
- 5. Sitecore個性化效果
- 6. Sitecore性能優化 - Sitecore配置,IIS配置
- 7. Sitecore性能優化 - 圖像存儲
- 8. Sitecore - 可以個性化樹中的內容項目嗎?
- 9. Sitecore的個性化首先訪問規則
- 10. 如何管理sitecore記錄上的個性化
- 11. Sitecore,渲染項目代碼與mvc中的個性化
- 12. 非管理員用戶的Sitecore「個性化」按鈕訪問
- 13. 不同多租戶sitecore網站之間的預測性個性化
- 14. 如何使用Link.aspx觸發sitecore個性化?
- 15. Sitecore序列化Powershell
- 16. Sitecore的出版初始化
- 17. Sitecore的XSL本地化
- 18. 在Sitecore中的序列化
- 19. Sitecore性能增強
- 20. Sitecore Image屬性中的CSS
- 21. Sitecore個性化 - 根據訪客個人資料更改子佈局參數
- 22. 在Sitecore中存儲匿名訪問者的個性化詳細信息6.4
- 23. 沒有在Core數據庫中存儲用戶的Sitecore個性化
- 24. Sitecore Powershell反序列化
- 25. Sitecore URL優化和語言
- 26. Sitecore緩存和變化
- 27. SiteCore項目序列化
- 28. Sitecore Azure部署自動化
- 29. 優化Sitecore Lucene/Solr查詢
- 30. Sitecore Tracker.Current未初始化
您使用的Sitecore 8的修訂版本是什麼? 「我不知道如何使用它」是什麼意思?您是否已經在子佈局中設置了規則並將其發佈? –
這裏有一篇關於建立個性化的好文章 - http://www.nonlinearcreations.com/Digital/how-we-think/articles/2014/06/Sitecore-DMS-personalization-howto.aspx –
' 。比較......規則意味着它是用戶在該網站上的第n次訪問,而不是該用戶多次打開其中一個頁面。 –