アナリティクスデータクラス
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
カスタムAnalytics Dataクラスは、データがインタラクションにシリアライズされる際に2つのメソッドを公開し、1つのコンテンツリハイドレートメソッドを公開します。


名称
概要
初期化
ページイベントの文脈では、このメソッドを呼び出し、呼び出し中に受け取った引数をサービス層に渡します。シリアライズしたいデータを抽出するためにRequestオブジェクトとResultオブジェクトを解析する方法を知るのは、特定の AnalyticsEntity オブジェクトの責任です。
> [!注]
> 一部の実装では、明示的な順序がECSから引き戻されないなど、異なる入力パラメータに対応するためにオーバーロード初期化が作成されています。
連載
このメソッドを呼び出して、内容を指定された辞書にシリアライズし、そのインタラクションのページイベントや目標のカスタム値に書き込まれます。
デシリアライズ
このメソッドを呼び出してデータクラスの内容を再水和化します。現在、Connect Experience ProfileおよびExperience Analyticsのレポートコンポーネントで使用されています
データをシリアライズする際には、以下のユーティリティ手法が利用可能です:

- 名称
- AddEntityToEventDictionary、カスタム値辞書にConnectエンティティを追加する際に使用されます。注意、このメソッドを使用することが重要です。このメソッドはいくつかのことをします。まず、ECSによって追加された拡張機能を除去したベースエンティティの値のみを保存します。これは分散環境では、ECS固有のデータ型が利用できない可能性があり、デシリアル化フェーズ中にレポーティングや処理サーバーに問題を引き起こす可能性があるためです。これら両方のサーバーが自分のドメインと制御内にある場合、元の「カスタム」ECSエンティティを持つことが望ましい場合があります。この場合、Sitecoreで以下の設定が利用可能です。Commerce.configファイル:有効な値は以下の通りです - ベースエンティティのみを保存します。Custom - 元のエンティティを保存します。Both - ベースエンティティと元のバージョンを保存します。デフォルトではBaseが設定されています。詳細については、Experience Profile Commerce タブのトピックをご覧ください。
データをリハイドレートする際は、以下のユーティリティ手法を使用します。

上記のメソッドは、必要な型のシリアライズ済みリストから値を取得できます。 GetMandatory* メソッドは、必須パラメータが見つからない場合に備え、適切なnullチェックやエラーログの追加など、追加のエラー処理コードを追加します。
Get Optional*メソッドはGetMandatory*メソッドと同じですが、キーが存在しない場合はエラーログが発生します。
以下は、新しいビジターオーダーが作成された際に登録される注文目標のConnect実装を示しています:
public class OrderGoalAnalyticsData : BaseAnalyticsData { public string ExternalId { get; set; } public string ShopName { get; set; } public Total Total { get; set; } public Order Order { get; set; } public bool? IsOfflineOrder { get; set; } public override void Initialize(Pipelines.ServicePipelineArgs args) { base.Initialize(args); this.Order = this.GetOrderFromArgs();
this.ExternalId = this.Order.ExternalId;
this.ShopName = this.Order.ShopName;
this.Total = this.Order.Total.ToBaseType
いくつか言及すべきことがあります:
- 2つの Initialize メソッドがあります。1つ目はトリガーページイベント機構によって呼び出される際にその ServicePipelineArgs を受け取ります。2つ目はオフライン命令の登録プロセス中に使われるOrderを受け取ります。
- Totalプロパティを設定する際には、ToBaseType
()が使用されます。これは、カスタム拡張がページイベントに保存されるようにしたくないため重要です。これらのデータ型はレポーティングや処理サーバー(マルチサーバー展開)で利用できない可能性があるためです。 - SerializeメソッドはAddEntityToEventDictionary()テンプレートメソッドを利用してページイベントに順序を追加します。
以下のコードスニペットは、分析データの利用方法を示しています:
var customData = AnalyticsDataInitializerFactory.Create
上記は、Sitecoreインタラクションからのページイベントデータがあると仮定しています。 Deserializeメソッドを呼び出すと、SearchAnalyticsDataオブジェクトプロパティに情報が入力されます。