通过Sitecore 7中的DMS规则计算访问次数不起作用

时间:2016-06-28 08:14:07

标签: c# sitecore sitecore7 sitecore-analytics

我遇到了Sitecore 7解决方案的问题。我无法使DMS规则正常工作。

当站点上的访问者访问次数大于3时,必须显示一些特定内容。我已经制定了自定义DMS规则以便能够调试问题。

var renderingItem = ruleContext.Reference == null ? null : ruleContext.Reference.RenderingItem;

var pageEvents = Tracker.Visitor.DataContext.PageEvents;
        pageEvents =
            pageEvents.Where(y => y.ItemId == renderingItem.ID.ToGuid() && y.Data == PageEventDataName).ToArray();

var count = pageEvents.Count();

int elementVisits = Tracker.Visitor.DataContext.Pages
            .Where(x => x.ItemId == ruleContext.Item.ID.ToGuid())
            .SelectMany(x => x.PageEvents.Where(y => y.ItemId == renderingItem.ID.ToGuid() && y.Data == PageEventDataName))
            .Count();

bool itemHasReachedMaxVisitCount = !Compare(elementVisits);

if (itemHasReachedMaxVisitCount)
            return false;

elementVisits整数在很短的时间内计算正常,但过了一段时间它会重置为0,即使访问者是相同的。看起来标准的DMS规则也不起作用。

Sitecore visit no. DMS rule

我可以看到 Sitecore_analytics 数据库中访问者表 VisitCount 列未更新。

是否有其他人遇到类似问题并知道出了什么问题?

1 个答案:

答案 0 :(得分:0)

您可以尝试调用Tracker.Visitor.LoadAll()方法,以确保从内存和分析数据库中提取访问数据。