カスタム条件とセグメンテーションクエリを作成してください
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
カスタム条件とセグメンテーションクエリを作成して、連絡先を特定しマーケティングオートメーションプランに登録することができます。以下の例では、Sitecore:
- 顧客を好みの映画館ごとにセグメント化し、毎週最も関連性の高いプロモーションを送ることができます。例えば、Sitecore Cityの映画館を訪れた顧客は、今後開催されるクラシック映画祭のチケットを3-2で購入できます。
- 顧客が希望する映画館に応じて自動化プランの進路を変更します。例えば、Free Popcornプランに登録している顧客は、East Sitecoreを好む映画館であればチョコレートのクーポンを受け取ります。East Sitecore映画館は誤って2000本のチョコレートバーを20,000本注文してしまいました。
この例では、単一のクラス(述 語とも呼ばれる)を作成し、以下のインターフェースを実装します。
- ICondition実装はマーケティングオートメーションエンジンで使用されます。
- IContactSearchQueryContext実装はList Managerがセグメント化されたリストを作成するために使用されます。
!注ほとんどの場合、条件とセグメンテーションクエリの両方を作成するのは理にかなっています。しかし、会員権IDのように特定の連絡先に特有のデータを対象とする場合は、セグメンテーションクエリを作成する意味がありません。この場合、IContactSearchQueryContextを実装しないでください。
この例は、以下の条件を満たす場合にtrueを返すカスタム条件およびセグメンテーションクエリクラスの作成方法を示しています。
- 接触は少なくとも一度は相互作用します。
- 提供された映画館名は、連絡先の希望する映画館名と一致します。
!注Sitecoreのパーソナライズエンジンは、異なる条件の実装を使用しています。
CinemaDetailsの側面を作成して展開します
カスタム ファセット、例えばCinemaDetailsファセットを作成し、それを条件クラスで使用するためにデプロイする必要があります。
CinemaDetailsの側面を作成・展開するには:
-
Sitecoreを継承するクラスを作成してください。XConnect.Facet。
using System; using System.Linq.Expressions; using Sitecore.Framework.Rules; using Sitecore.XConnect; using Sitecore.XConnect.Segmentation.Predicates;
namespace Documentation.Examples { // Contact facet that stores contact's preferred cinema name Serializable public class CinemaDetails : Facet { public const string DefaultFacetKey = "CinemaDetails"; public string PreferredCinema { get; set; } } }
-
コレクションモデルを実装し登録します。
条件クラスを作成する
CinemaDetailsのファセットを作成したら、カスタムファセットを使う条件ロジックを持つ条件クラスを作成する必要があります。
条件クラスを作成するには:
- 以下のコードサンプルに示すように、 ICondition と IContactSearchQueryFactory を継承するクラスを作成します。
!重要結合はすべての検索プロバイダーでサポートされているわけではないため、contact.InteractionsプロパティではなくInteractionsCacheファセットを使う必要があります。
using System; using System.Linq.Expressions; using Sitecore.Framework.Rules; using Sitecore.XConnect; using Sitecore.XConnect.Segmentation.Predicates; using Sitecore.XConnect.Collection.Model; using System.Linq;
namespace Documentation.Examples { public class PreferredCinemaMatches : ICondition, IContactSearchQueryFactory { public string PreferredCinema { get; set; }
// TIP: There are other operation types in theSitecore.XConnect.Segmentation.Predicates namespace public StringOperationType Comparison { get; set; }
// Evaluates condition for single contact
public bool Evaluate(IRuleExecutionContext context)
{
var contact = context.Fact
return Comparison.Evaluate(contact.GetFacet
// Evaluates contact in a search context
// IMPORTANT: Use InteractionsCache() facet rather than contact.Interactions as some search providers do not provide joins.
public Expression<Func<Contact, bool>> CreateContactSearchQuery(IContactSearchQueryContext context)
{
return contact => Comparison.Evaluate(contact.GetFacet
条件記述子を作成する
条件記述子は条件タイプと関連するテキストを定義します。Sitecoreユーザーはその後、List Managerおよびマーケティングオートメーションのユーザーインターフェースで条件テキストを検索できます。
条件記述子を作成するには:
-
カスタム条件およびセグメンテーションクエリDLLを、すべてのコアロール(Content Management、Content Delivery、xDB Processing、xDB Reporting)に展開します。
-
/sitecore/system/Settings/Rules/Definitions/Elementsの条件に合った場所を選びましょう。例えば、/sitecore/system/Settings/Rules/Definitions/Elements/XConnect - Contact Personal Details。
!注状態の場所によって、どのユーザーインターフェースで利用可能かが決まります。
-
以下のテンプレートを使って条件を作成します /sitecore/Templates/System/Rules/Condition template:

-
以下の例のようにTypeとTextフィールドを指定します。この例では文字列比較を用いています:

List Managerでカスタムセグメンテーションルール用のセクションを作成する
セグメント作成時にカスタムルールを見つけやすくするために、「 ルール作成 」ダイアログボックスに表示するセクションを作成できます。

カスタムセグメンテーションルール用のセクションを作成するには、List Manager内で以下を行います:
- マスターデータベースの /sitecore/System/Settings/Rules/Definitions 項目に行ってください。
- Elementフォルダを右クリックしてから「挿入、要素フォルダ」をクリックします。
- メッセージダイアログボックスでフォルダ名を入力し、OKをクリックします。
- 新しく作成した Element フォルダを展開し、 Tags/Default アイテムに移動します。
- Defaultアイテムを選択し、コンテンツタブのタクソノミーセクションのタグフィールドで、xConnect – Search Queryタグをダブルクリックして**「選択済み**リスト」に移動してください。
- 変更を保存してください。
!注カスタムセクションは少なくとも1つのルールが含まれている場合にのみ表示されます。
マーケティングオートメーションエンジンの設定
マーケティングオートメーションエンジンは、カスタム条件に照らしてコンタクトを評価するために、条件とセグメンテーションクエリDLLのコピーが必要です。
!注マーケティングオートメーションエンジンの文脈では、条件クエリとセグメンテーションクエリの組み合わせは構成における 述語 と呼ばれます。
マーケティングオートメーションエンジンの設定:
!注デフォルトの述語はsc.XConnect.Segmentation.Predicates.Model.xml設定ファイルで定義されます。