如何确定sitecore页面的访问者是否唯一?

时间:2014-09-17 15:14:45

标签: sitecore

我想确定查看sitecore页面的用户是否是唯一的(首次访问该页面)。我试图使用以下代码,但它似乎只是基于会话。是否有可以跨会议使用的替代方案?

    protected bool First_Visit()
    {
        var pageId = ActionItem.ID.ToGuid();

        var visitCount = Sitecore.Analytics.Tracker.Visitor.DataContext.Pages.Select(pagesRow =>
            pagesRow.ItemId.Equals(pageId)
        ).Count();

        return visitCount == 1;
    }

2 个答案:

答案 0 :(得分:0)

我认为你需要先做Tracker.Visitor.LoadAll()。这将加载该特定访问者的所有访问数据。

修改

话虽如此,毋庸置疑,如果访问者来自一个未识别的设备(即现有的访问者来自他们尚未识别自己的设备),那么它将被视为该用户的首次访问。

答案 1 :(得分:0)

这就是我提出的,似乎在各会议期间按预期工作:

    protected bool First_Visit()
    {
        var pageId = ActionItem.ID.ToGuid();
        var visitor = Sitecore.Analytics.Tracker.Visitor;
        var visits = from visit in visitor.DataContext.Visits
                     from page in visit.GetPages()
                     where page.ItemId.Equals(pageId)
                     select page;

        return visits.Count() == 1;
    }