我想确定查看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;
}
答案 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;
}