この節では、ContextHub を使用したセグメント化の設定について説明します。ClientContext 機能を使用する場合は、ClientContext のセグメント化の設定に関するドキュメントを参照してください。
キャンペーンを作成する場合、セグメント化を考えることが重要になります。セグメント化の仕組みと主な用語について詳しくは、オーディエンスの管理を参照してください。
サイト訪問者についてこれまでに収集した情報と、達成する目標に応じて、ターゲットコンテンツに必要なセグメントと戦略を定義する必要があります。
このようなセグメントを使用して、訪問者に特定のターゲットコンテンツを提供します。このコンテンツは、web サイトの「パーソナライズ機能」セクションで管理されます。ここで定義したアクティビティは、任意のページに追加でき、専用のコンテンツを適用できる訪問者セグメントを指定できます。
AEM では、ユーザーエクスペリエンスを簡単にパーソナライズできます。また、セグメント定義の結果を検証することもできます。
オーディエンスコンソールは、ContextHub または ClientContext のセグメントを管理したり、Adobe Target アカウントのオーディエンスを管理したりする目的で使用します。このドキュメントでは、ContextHub のセグメントの管理について取り上げます。ClientContext セグメントおよび Adobe Target セグメントについては、それぞれ関連するドキュメントを参照してください。
セグメントにアクセスするには、グローバルナビゲーションで「ナビゲーション/パーソナライズ機能/オーディエンス」を選択します。
セグメントエディターを使用すると、セグメントを簡単に変更できます。セグメントを編集するには、セグメントリストからセグメントを選択し、「編集」ボタンをクリックします。
コンポーネントブラウザーを使用すると、AND および OR コンテナを追加してセグメントロジックを定義してから、別のコンポーネントを追加してプロパティや値を比較できます。また、スクリプトやその他のセグメントを参照して選択条件を定義する(新しいセグメントの作成を参照)ことによって、セグメントの選択シナリオを正確に定義できます。
ステートメント全体が true と評価されると、セグメントは解決されます。複数のセグメントを適用可能な場合、ブースト係数も使用されます。ブースト係数について詳しくは、「新しいセグメントの作成」を参照してください。
セグメントエディターは、循環参照をチェックしません。例えば、セグメント A が別のセグメント B を参照していて、そのセグメント B がセグメント A を参照している場合などです。このため、セグメントに循環参照が存在しないことを必ず確認してください。
次のコンテナは標準で用意されており、比較や参照をグループ化してブール評価をおこなうために使用できます。これらはコンポーネントブラウザーからエディターにドラッグできます。詳しくは、「AND コンテナと OR コンテナの使用」の節を参照してください。
コンテナ AND |
AND ブール演算子 |
コンテナ OR |
OR ブール演算子 |
次のセグメント比較は標準で用意されており、セグメントプロパティを評価するために使用できます。これらはコンポーネントブラウザーからエディターにドラッグできます。
プロパティ - 値 |
ストアのプロパティと定義済みの値を比較 |
プロパティ - プロパティ | ストアの 1 つのプロパティと別のプロパティを比較 |
プロパティ - セグメントの参照 | ストアのプロパティを参照先の別のセグメントと比較 |
プロパティ - スクリプトの参照 | ストアのプロパティとスクリプトの結果を比較 |
セグメントリファレンス - スクリプトリファレンス | 参照先セグメントとスクリプトの結果を比較 |
値の比較時に比較のデータタイプが設定されていない場合(つまり、自動検出に設定されている場合)、ContextHub のセグメント化エンジンでは、javascript と同じように値が比較されます。値が想定されたタイプにキャストされないので、誤解を招く結果となることがあります。次に例を示します。
null < 30 // will return true
したがって、セグメントの作成時に比較対象の値のタイプがわかる場合は、常にデータタイプを選択してください。次に例を示します。
profile/age
プロパティを比較する場合は、比較対象のタイプが数値であることが既にわかっているので、profile/age
が設定されていなくても、profile/age
が 30 より小さいという比較では、想定どおりに false が返されます。
次の参照は標準で用意されており、スクリプトや別のセグメントに直接リンクするために使用できます。これらはコンポーネントブラウザーからエディターにドラッグできます。
セグメントの参照 |
参照先セグメントを評価 |
スクリプト参照 | 参照先セグメントをします。詳しくは、次の「スクリプト参照の使用」の節を参照してください。 |
新しいセグメントを定義するには、次の手順に従います。
セグメントへのアクセス後、「作成」ボタンをクリックまたはタップし、「ContextHub セグメントを作成」を選択します。
「新しい ContextHub セグメント」で、セグメントのタイトルと必要に応じてブースト値を入力し、「作成」をタップまたはクリックします。
各セグメントには、重み付け係数として使用されるブーストパラメーターがあります。複数のセグメントが有効である場合、数値が小さいセグメントよりも、数値が大きいセグメントのほうが優先して選択されます。
0
1000000
比較または参照をセグメントエディターにドラッグすると、デフォルトの AND コンテナに表示されます。
新しい参照またはセグメントの設定オプションをダブルクリックまたはタップして、特定のパラメーターを編集します。この例では、サンノゼの人物をテストしています。
比較が適切に評価されるように、可能であれば常に「データタイプ」を設定します。詳しくは、比較を参照してください。
「OK」をクリックして定義を保存します。
必要に応じてその他のコンポーネントを追加します。AND 比較および OR 比較のコンテナコンポーネントを使用して、ブール式を作成できます(後述の AND コンテナと OR コンテナの使用を参照)。セグメントエディターでは、不要になったコンポーネントを削除したり、コンポーネントをステートメント内の別の場所へドラッグしたりすることができます。
AND および OR コンテナコンポーネントを使用すると、AEM で複雑なセグメントを作成できます。この際、次の基本事項に留意してください。
次の例では、プライムエイジグループに属すると見なされる訪問者を選択しています。
30 才~ 59 才の男性
OR
30 才~ 59 才の女性
最初に、OR コンテナコンポーネントをデフォルトの AND コンテナ内に配置します。OR コンテナ内に 2 つの AND コンテナを追加し、それらの両方にプロパティまたは参照コンポーネントを追加できます。
スクリプト参照コンポーネントを使用すると、セグメントプロパティの評価を外部スクリプトに委任できます。適切に設定したスクリプトは、セグメント条件の他のコンポーネントと同じように使用できます。
contexthub.segment-engine.scripts
クライアントライブラリにファイルを追加します。
値を返す関数を実装します。次に例を示します。
ContextHub.console.log(ContextHub.Shared.timestamp(), '[loading] contexthub.segment-engine.scripts - script.profile-info.js');
(function() {
'use strict';
/**
* Sample script returning profile information. Returns user info if data is available, false otherwise.
*
* @returns {Boolean}
*/
var getProfileInfo = function() {
/* let the SegmentEngine know when script should be re-run */
this.dependOn(ContextHub.SegmentEngine.Property('profile/age'));
this.dependOn(ContextHub.SegmentEngine.Property('profile/givenName'));
/* variables */
var name = ContextHub.get('profile/givenName');
var age = ContextHub.get('profile/age');
return name === 'Joe' && age === 123;
};
/* register function */
ContextHub.SegmentEngine.ScriptManager.register('getProfileInfo', getProfileInfo);
})();
スクリプトを ContextHub.SegmentEngine.ScriptManager.register
に登録します。
その他のプロパティに依存するスクリプトでは、this.dependOn()
を呼び出す必要があります。例えば、スクリプトが profile/age
に依存する場合は次のようになります。
this.dependOn(ContextHub.SegmentEngine.Property('profile/age'));
セグメントを定義したら、ContextHub を使用して、考えられる結果についてテストすることができます。
例えば、この例のプライムエイジグループに属するユーザーを識別するための単純なセグメント定義は、ユーザーの年齢と性別に基づいています。これらの条件に一致する特定のペルソナを読み込むと、次のようにセグメントが正常に解決されたかどうかがわかります。
解決されていない場合は次のようになります。
すべての特性がただちに解決されます。ただし、ほとんどの特性はページを再読み込みしたときにのみ変更されます。
このようなテストは、ターゲットコンテンツや関連するアクティビティおよびエクスペリエンスと組み合わせて、コンテンツページでも実行できます。
前述のプライムエイジグループセグメントの例を使用してアクティビティおよびエクスペリエンスを設定した場合は、そのアクティビティを使用してセグメントを簡単にテストできます。アクティビティの設定について詳しくは、ターゲットコンテンツのオーサリングに関するドキュメントを参照してください。
ターゲットコンテンツを設定したページの編集モードでは、ターゲットとなるコンテンツが矢印アイコンによって示されます。
プレビューモードに切り替えてから、ContextHub を使用して、エクスペリエンスに設定されているセグメント化と一致しないペルソナに切り替えます。
エクスペリエンスに設定されているセグメント化と一致するペルソナに切り替え、それに応じてエクスペリエンスが変化することを確認します。
これらのセグメントを使用して、特定のターゲットオーディエンスに向けられた実際のコンテンツを制御することができます。オーディエンスおよびセグメントについて詳しくは、オーディエンスの管理を参照してください。オーディエンスおよびセグメントを使用したコンテンツのターゲティングについては、ターゲットコンテンツのオーサリングを参照してください。