Frage

Ich habe eine Frage in Bezug auf Sitecore Analytics und Benutzerprofil Tasten. Ich muss in der Lage, die Partitur eines Profilschlüssel für eine einzelne Seite zu bekommen. Zum Beispiel, wenn ich ein Profil Schlüssel namens „Reisende“ habe, die einen Wert von 1 bis 10 auf einer bestimmte Seite haben könnten, muß ich in der Lage sein, den Wert für diesen Schlüssel zu erhalten, die durch den Inhalt Autor zugewiesen wurde. Ich habe festgestellt, dass durch die folgende Verwendung:

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

Ich kann die Gesamtnote erhalten, dass der Benutzer während ihrer Sitzung angesammelt hat, aber ich kann nicht scheinen, einen Weg zu finden, die Partitur nur für die aktuelle Seite zu erhalten.

Jeder Einblick könnte jemand würde bieten sehr geschätzt. Danke.

War es hilfreich?

Lösung

Ich weiß, dass dieser Beitrag ist ziemlich alt, aber für zukünftige Referenzen hat sich viel in Sitecores geändert. Ich weiß nicht, ob dies möglich war, im Jahr 2010, aber zumindest im Jahr 2013 gibt es API-Methoden für den Tracking-Wert einer Seite zu extrahieren.

Ich würde nie von Hand empfehlen, um die Rohdaten in dem __Tracking Feld zu analysieren.

Hier ist, wie für die Persona Profil Tracking-Daten zu lesen, die Sitecore Analytics API:

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();
    }

Mit freundlichen Grüßen Lasse Rasch

Andere Tipps

Nach einigen Recherchen fand ich, dass diese als XML-String in einem Feld __Tracking für jedes Element genannt gespeichert werden. Es kann wie jedes andere Datenfeld zugegriffen werden, die Fields Sammlung verwenden. Zum Beispiel:

Item itemToCheck = Sitecore.Context.Database.GetItem("/path to item/");
string trackingXml = itemToCheck.Fields["__Tracking"].ToString();

Die XML in der Zeichenfolge ist wie folgt aufgebaut:

<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>

Diese Zeichenfolge kann auf eine XmlDocument umgewandelt werden und mit SelectNodes wie normale verarbeitet

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top