Sitecore 6.5 を使用して Web サイトを開発しています
要件の 1 つは、最も人気のある 5 つのページを右隅に表示することです。
そのためには、Analytic レポートがページ数に使用する関数を使用することを考えています。
Analytics API を使用してそれが可能かどうかを知りたいSitecore.Analytics
もしそうなら、私は完全に迷っているので、それを行うためのコードスニペットをいくつか用意できますか.
Sitecore 6.5 を使用して Web サイトを開発しています
要件の 1 つは、最も人気のある 5 つのページを右隅に表示することです。
そのためには、Analytic レポートがページ数に使用する関数を使用することを考えています。
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);
}
OMS ( DMS ではなく)で最も多く閲覧されたページを取得するために書かれたブログ記事「Sitecore OMS データ クエリ - 最も閲覧されたページ」をご覧ください。これは少なくとも出発点にはなりますが、更新された API に合わせてコードを調整する必要があります。