我正在使用 Sitecore 6.5 开发网站
其中一项要求是在右上角显示 5 个最受欢迎的页面。
为此,我考虑使用分析报告用于页数的函数。
我想知道是否可以通过使用 Analytics API 来做到这一点Sitecore.Analytics
如果是这样,我可以有一些代码片段来做,因为我完全迷失了。
我正在使用 Sitecore 6.5 开发网站
其中一项要求是在右上角显示 5 个最受欢迎的页面。
为此,我考虑使用分析报告用于页数的函数。
我想知道是否可以通过使用 Analytics API 来做到这一点Sitecore.Analytics
如果是这样,我可以有一些代码片段来做,因为我完全迷失了。
我知道这已经回答了,但是为什么不直接使用 PageDataTable 来查询呢?我做了这样的事情:
public static Dictionary<Item, int> GetVisitsCountForItem(Item item)
{
Sitecore.Analytics.Data.DataAccess.DataSets.VisitorDataSet.PagesDataTable pagesDataTable = new VisitorDataSet.PagesDataTable();
var pageViews = pagesDataTable.Select(p => p.ItemId == item.ID.Guid);
var dic = new Dictionary<Item, int>();
dic.Add(item, pageViews.Count());
return dic;
}
以下是在 DMS 中执行此操作的方法:
private const string CommandText = "\r\nSELECT \r\ncount(distinct {0}VisitId{1})\r\n FROM {0}Pages{1}\r\n WHERE {0}ItemId{1} = {2}YourItemId{3}";
public static int GetPageViews(ID pageId)
{
return DataAdapterManager.Provider.Sql.ReadOne<int>(CommandText, ReadPageViews, new object[] { "YourItemId", pageId.ToString() });
}
private static int ReadPageViews(DataProviderReader reader)
{
return DataAdapterManager.Provider.Sql.GetInt(0, reader);
}
您可以查看博客文章“ Sitecore OMS 数据查询 – 浏览次数最多的页面”,该文章旨在获取 OMS(而非DMS)的浏览次数最多的页面。这至少可以为您提供一个起点,但您需要调整代码以匹配更新的 API。