我对Sitecore Analytics和用户个人资料密钥有疑问。我需要能够获得单个页面的个人资料关键字的分数。例如,如果我有一个配置文件密钥“ traveler”,在给定的页面上其值可以为1-10,那么我需要能够获取由内容作者分配的该密钥的值。我发现使用以下方法:

Sitecore.Analytics.AnalyticsTracker.Current.Data.Profiles.GetProfile("Profile Name").GetProfileKeyValue("traveler")


我可以获取用户在整个会话中积累的总得分,但是似乎无法找到一种方法来仅获取当前页面的得分。

任何人都可以提供的任何见解将不胜感激。谢谢。

最佳答案

我知道这篇文章比较老,但是为了将来参考,Sitecore发生了很多变化。
我不知道2010年是否有可能,但是至少在2013年,有API方法可以提取页面的跟踪值。

我从不建议手动在__Tracking字段中解析原始数据。

这是使用Sitecore Analytics API读取Persona个人资料的跟踪数据的方法:

public static string ProfileValues(this Item item)
{
        StringBuilder sb = new StringBuilder();

        TrackingField trackingField = new TrackingField(item.Fields[Constants.Sitecore.FieldIDs.Tracking]);
        ContentProfile profile = trackingField.Profiles.FirstOrDefault(profileData =>
                                profileData.Name.Equals("Persona") && profileData.IsSavedInField);

        ContentProfileKeyData[] profileKeys = profile.Keys;

        foreach (ContentProfileKeyData profileKey in profileKeys)
        {
            sb.AppendLine(string.Format("{0}:{1};", profileKey.Name, profileKey.Value));
        }
        return sb.ToString();
    }


最好的祝福
拉瑟·拉施(Lasse Rasch)

关于sitecore - 在Sitecore中获取个人页面的个人资料关键得分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3943186/

10-10 20:53