3

Sitecore Analytics とユーザー プロファイル キーについて質問があります。個々のページのプロファイル キーのスコアを取得できる必要があります。たとえば、特定のページで 1 ~ 10 の値を持つ「traveler」というプロファイル キーがある場合、コンテンツ作成者によって割り当てられたそのキーの値を取得できる必要があります。私は以下を使用してそれを発見しました:

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

ユーザーがセッション中に蓄積した合計スコアを取得できますが、現在のページだけのスコアを取得する方法が見つからないようです。

誰でも提供できる洞察は大歓迎です。ありがとう。

4

2 に答える 2

2

__Tracking調査の結果、これは各項目で呼び出されるフィールドに XML 文字列として格納されていることがわかりました。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

于 2010-10-20T14:44:30.533 に答える
2

この投稿がかなり古いことは承知していますが、今後の参考のために、Sitecore では多くの変更が行われています。2010 年にこれが可能だったかどうかはわかりませんが、少なくとも 2013 年には、ページのトラッキング値を抽出するための API メソッドがあります。

__Tracking フィールドの生データを手動で解析することは決してお勧めしません。

サイトコア アナリティクス 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();
    }

よろしくラッセ・ラッシュ

于 2013-12-28T20:34:12.403 に答える