1. インタラクションの集約

ファセットとサービスへのアクセス

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このトピックでは、インタラクション アグリゲーション プロセッサのコンテキストで、コンタクト ファセット、インタラクション ファセット、およびxConnectクライアントAPIなどのサービスにアクセスする方法について説明します。

ファセットの読み込み

インタラクション集約処理パイプラインは、xConnect Client APIを使用してコンタクトとインタラクションを取得します。取得するコンタクトファセットとインタラクションファセットを指定するには、次の属性のいずれかまたは両方でプロセッサを装飾する必要があります。

  • UsesInteractionFacets

  • UsesContactFacets

メモ

ファセットは、集約パイプラインの実行時にxConnectから要求されます。パフォーマンスへの影響を軽減するために、プロセッサが必要とするファセットのみを要求します。

次の例では、プロセッサは1つのインタラクションファセットと1つのコンタクトファセットをロードします。

[UseInteractionFacets(WebVisit.DefaultFacetKey)]
[UsesContactFacets(PersonalInformation.DefaultFacetKey,Classification.DefaultFacetKey)]
public class UserAgentProcessor:InteractionAggregationPipelineProcessor
{
 protected override void OnProcess(InteractionAggregationPipelineArgsargs)
 {
 }
}
大事な

特定のファセットを明示的に要求しない場合、処理中にそのファセットは使用できません。その理由を理解するには、連絡先やインタラクションを取得する際の拡張オプションの役割について詳しくお読みください。

連絡先とインタラクションへのアクセス

連絡先とインタラクションは、args.Contextプロパティで使用できます。

[UseInteractionFacets(WebVisit.DefaultFacetKey)]
[UsesContactFacets(PersonalInformation.DefaultFacetKey, Classification.DefaultFacetKey)]
public class UserAgentProcessor: InteractionAggregationPipelineProcessor
{
protected override void OnProcess(InteractionAggregationPipelineArgsargs)
  {
  var contact=args.Context.Contact;
  var interaction=args.Context.Interaction;
  }
}

インタラクションまたはコンタクトファセットをリクエストした場合は、.GetFacet<T> 拡張メソッドを使用してアクセスできます。

var personalFacet=args.Context.Contact.GetFacet<PersonalInformation>
(PersonalInformation.DefaultFacetKey);

または、Sitecore.XConnect.Collection.Modelにある拡張メソッドを使用します。

var personalFacet=args.Context.Contact.Personal();

他のサービスへのアクセス

すべてのプロセッサは、args.Context.Sourcesを介して次のAPIにアクセスできます。

  • xConnectクライアントAPI

  • リファレンスデータサービス

  • 定義マネージャー

  • タクソノミーマネージャー

大事な

集計プロセッサのコンテキストでは、すべてのサービス エンドポイント (xConnect、定義、分類、参照データ サービス) は読み取り専用です。

xConnectへのアクセス

xConnect Client APIの読み取り専用インスタンスには、args.Context.Sources.Collection.連絡先とインタラクションのデータを検索または取得できます。

[UseInteractionFacets(WebVisit.DefaultFacetKey)]
[UsesContactFacets(PersonalInformation.DefaultFacetKey, Classification.DefaultFacetKey)]
public class UserAgentProcessor: InteractionAggregationPipelineProcessor
{
  protected override void OnProcess(InteractionAggregationPipelineArgsargs)
  {
    // Searching
    var contacts = args.Context.Sources.Collection.Contacts.Where(x=>x.Identifiers.Any(c=>c.IdentifierType==ContactIdentifierType.Known));
  var interactions = args.Context.Sources.Collection.Interactions.Where(x=>x.EngagementValue>20);
  // Get some contact or interaction that is not available in the args
  var someID=Guid.NewGuid();
  var contactRef=newList<ContactReference>(){newContactReference(someID)};
  var getContact=args.Context.Sources.Collection.GetAsync<Contact>(contactRef,newContactExpandOptions());
  }
}
手記

連絡先とインタラクションは、それぞれargs.Context.Contactargs.Context.Interactionを介して利用できることに注意してください。

定義マネージャーへのアクセス

[UseInteractionFacets(WebVisit.DefaultFacetKey)]
[UsesContactFacets(PersonalInformation.DefaultFacetKey, Classification.DefaultFacetKey)]
public class UserAgentProcessor:InteractionAggregationPipelineProcessor
{
  protected overridevoidOnProcess(InteractionAggregationPipelineArgsargs)
  {
    protected overridevoidOnProcess(InteractionAggregationPipelineArgsargs)
    {
      var goalManager=
args.Context.Sources.Definitions.GetDefinitionManager<IGoalDefinition>();
    }
  }
}
手記

汎用的な定義マネージャーは存在しないため、探しているイベントのタイプを把握し、適切な定義マネージャーを使用する必要があります。

タクソノミーマネージャーへのアクセス

[UseInteractionFacets(WebVisit.DefaultFacetKey)]
[UsesContactFacets(PersonalInformation.DefaultFacetKey, Classification.DefaultFacetKey)]
public class UserAgentProcessor: InteractionAggregationPipelineProcessor
{
  protected override void OnProcess(InteractionAggregationPipelineArgsargs)
  {
   protected override void OnProcess(InteractionAggregationPipelineArgsargs)
  {
    var assetTaxonomyManager = 
args.Context.Sources.Taxonomies.GetManager<AssetTaxonomyManager>();
  }
 }
}
手記

一般的なタクソノミー マネージャーは存在しないため、探しているタクソノミーのタイプを把握し、適切なタクソノミー マネージャーを使用する必要があります。

参照データ サービスへのアクセス

[UseInteractionFacets(WebVisit.DefaultFacetKey)]
[UsesContactFacets(PersonalInformation.DefaultFacetKey, Classification.DefaultFacetKey)]
public class UserAgentProcessor: InteractionAggregationPipelineProcessor
{
  protected override void OnProcess(InteractionAggregationPipelineArgsargs)
  {
     var definitionType=args.Context.Sources.Reference.EnsureDefinitionType("alpha");
     var criteria=newDefinitionCriteria("enterprise",definitionType)
     {
        Culture=newCultureInfo("da")
     };
     Definition<string,string>definition=args.Context.Sources.Reference.GetDefinition<string,string>(criteria,true);
  }
}
手記

集計パイプラインは、Reference Data Serviceデータベースに直接接続する読み取り専用バージョンのReference Data Service APIを使用します。

この記事を改善するための提案がある場合は、 お知らせください!