احصل على درجة مفتاح الملف الشخصي للصفحة الفردية في Sitecore
-
30-09-2019 - |
سؤال
لدي سؤال بخصوص Sitecore Analytics ومفاتيح ملف تعريف المستخدم. يجب أن أكون قادرًا على الحصول على درجة مفتاح الملف الشخصي لصفحة فردية. على سبيل المثال ، إذا كان لدي مفتاح ملف تعريف يسمى "Traveler" يمكن أن يكون له قيمة من 1 إلى 10 على صفحة معينة ، فيجب أن أكون قادرًا على الحصول على القيمة لهذا المفتاح الذي تم تعيينه من قبل مؤلف المحتوى. لقد وجدت ذلك باستخدام ما يلي:
Sitecore.Analytics.AnalyticsTracker.Current.Data.Profiles.GetProfile("Profile Name").GetProfileKeyValue("traveler")
يمكنني الحصول على النتيجة الإجمالية التي جمعها المستخدم طوال جلسته ، لكن لا يبدو لي أن أجد طريقة للحصول على النتيجة فقط للصفحة الحالية.
أي رؤية يمكن لأي شخص تقديمها موضع تقدير كبير. شكرًا.
المحلول
أعلم أن هذا المنشور قديم إلى حد ما ، ولكن بالنسبة للمراجع المستقبلية ، تغير الكثير في Sitecore. لا أعرف ما إذا كان هذا ممكنًا في عام 2010 ، ولكن على الأقل في عام 2013 ، هناك طرق API لاستخراج قيم تتبع الصفحة.
لن أوصي أبدًا بتحليل البيانات الأولية يدويًا في حقل __tracking.
إليك كيفية قراءة بيانات تتبع ملف تعريف persona باستخدام API Sitecore Analytics:
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
نصائح أخرى
بعد بعض الأبحاث ، وجدت أن هذا يتم تخزينه كسلسلة XML في حقل يسمى __Tracking
على كل عنصر. يمكن الوصول إليه تمامًا مثل أي حقل بيانات آخر ، باستخدام Fields
مجموعة. فمثلا:
Item itemToCheck = Sitecore.Context.Database.GetItem("/path to item/");
string trackingXml = itemToCheck.Fields["__Tracking"].ToString();
يتم تنظيم XML في السلسلة على هذا النحو:
<tracking>
<profile name="profile1">
<key name="key1" value="1" />
<key name="key2" value="10" />
</profile>
<profile name="profile2">
<key name="key3" value="12" />
<key name="key4" value="4" />
</profile>
</tracking>
يمكن تحويل هذه السلسلة إلى XmlDocument
ومعالجتها باستخدام SelectNodes
كالعادة