視聴者検出
ベータ版機能 Liferay DXP 2026.Q3+
オーディエンス検出は、訪問者のブラウザ上で実行されます。 Liferay DXPは、インスタンスのオーディエンス定義を取得するブートストラップスクリプトをページに追加します。 このスクリプトは、各視聴者の状況をブラウザが観測できる値と比較して評価します。 一致したオーディエンスはクッキーに保存され、 要素のバリエーション と独自の JavaScript がそれらを読み取ることができます。
このプロセスの仕組みは、自分のコードからオーディエンスを読み取る場合や、オーディエンスが一致しない理由を突き止める場合に最も重要になります。
オーディエンスは、 LPD-85746 機能フラグ の背後にあるベータ機能です。 フラグがオフになっている間は、オーディエンスアプリケーションは非表示になり、Liferay DXPはページに検出マークアップを追加しません。
Liferay DXPがページに追加するもの
Liferay DXP は検出マークアップをページの top_head セクションに書き込みますが、これはページがビューモードでレンダリングされている場合に限ります。 検出機能はページエディタでは実行されません。
オーディエンスが存在するかどうかにかかわらず、マークアップが追加されます。 インスタンスに何も指定されていない場合、定義は空になります。
{"視聴者":[]}
Liferay DXPは、ページにバリエーションがない場合でも、ページの要素バリエーションバンドルを識別するメタタグを書き込みます。 その コンテンツ 属性には、ページレイアウト ID、セグメントエクスペリエンス ID、およびバンドルのハッシュがコロンで区切られて格納されます。
<meta content="20125:41302:a1b2c3d4" name="audiences-variations">
スクリプトタグは、定義ハッシュとログ設定をリクエストパラメータとして渡します。 また、 data-senna-track="permanent"とマークされているため、シングルページアプリケーションのナビゲーションでは再実行されません。
<script data-senna-track="permanent" id="audiencesBootstrap" src="/o/audiences/bootstrap.(HASH).js?audiencesDefinitionHash=HASH&enableLog=false" type="module"></script>
検出サイクル
検出は、ページが読み込まれたときと、各シングルページアプリケーション(SPA)のナビゲーション時に実行されます。 検出が実行されると、次のサイクルが実行されます。
-
視聴者のCookieを削除します。
-
対象者の定義を取得し、検証する。
-
ブラウザが観測可能な値に基づいて、すべてのオーディエンスを評価する。
-
一致したオーディエンスをクッキーに保存します。
-
各マッチング対象オーディエンスに属する要素のバリエーションを適用する。
SPAナビゲーションが短時間のうちに連続して行われる場合、複数のサイクルが重複する可能性がある。 最新のサイクルのみ、変更が適用されます。 Cookieには、現在のページで一致したオーディエンスの情報のみが保持され、メタタグのないページでは、メタタグがあった最後のページの値が保持されます。
オーディエンスの定義
定義は、インスタンスごとに /o/audiences/definition.(HASH).json で提供される単一の JSON ドキュメントです。
オーディエンス 配列の各エントリには、 ID、 結合 (つまり、 AND / OR)、および ルール の配列が含まれています。 ルールは、1 つの属性 (属性、 演算子、および 値) を比較するか、 結合 および ルールをネストします。これが条件グループの表現方法です。
視聴者のIDは、その視聴者の外部参照コードです。 オーディエンスを参照するものはすべて、要素のバリエーションやオーディエンスのクッキーを含め、そのコードを使用します。
ブラウザは、何かを評価する前に文書全体を検証し、検証に失敗すると、いかなる変更も適用される前に処理サイクルが停止します。 ルールの評価は、同様の理由で失敗する可能性があります(例:カスタム属性が読み取れない場合)。 たった1つのエラーでも、ページ上のすべての要素バリエーションが無効になり、エラーの原因となったルールとは無関係なバリエーションもすべて無効になります。 利用可能な属性については、 オーディエンス属性リファレンス を参照してください。
アナリティクスクラウドセグメントメンバーシップ
検出レイヤーは、評価のたびに Analytics Cloud を呼び出すのではなく、訪問者のセグメント コードを sessionStorage の liferay.audiences.acSegments キーの下に、取得元のユーザー ID と共にキャッシュします。 ログインまたはログアウトすると、それらは無効になります。
訪問者の最初のページビューは、Analytics Cloudのセグメントに一致しません。 コードはまだ読み込まれておらず、検出はコードの読み込みを待たないため、セグメント条件のマッチングは後のページビューで開始されます。 キャッシュはセッション終了まで有効なので、セッションの途中でセグメントに参加した訪問者は、次のセグメントに参加するまで反映されません。
バッチコードとリアルタイムコードは両方とも一緒にキャッシュされるため、セグメントの条件はどちらの種類のメンバーシップにも一致させることができます。 この経路で何らかの不具合が発生した場合、エラーが発生するのではなく、訪問者にはコードが何も表示されません。そのため、セグメントの条件はページを壊すのではなく、一致しなかったことを黙って示します。
観客優先
訪問者は複数のオーディエンスに同時にマッチングさせることができる。 複数の作品が同じ要素のバリエーションを持っている場合、最も年齢の高い観客層が自動的に優先される。 ページ表示の順序は、この順序を上書きできます。 ページエディターの要素バリエーションパネルで、 オーディエンス優先度 設定を開き、オーディエンスを希望の順序にドラッグします。
Liferay DXPは、サイトごと、エクスペリエンスごとに1つの順序付きリストを保存し、そのリストがエクスペリエンス内のすべての要素を制御します。 個々の要素に個別の順序はありません。 リストに追加したオーディエンスは、リストから除外したオーディエンスよりも常に上位にランク付けされ、除外されたオーディエンスの中で同順位の場合は、デフォルトで古い順で順位が決定されます。
オーディエンスクッキー
マッチングされたオーディエンスはCookieに保存されるため、ページの読み込み後も保持され、サイト上のどのスクリプトでも読み取ることができます。 クッキーが空または読み取り不能な場合、その訪問者はどのオーディエンスにも一致しないことを意味します。
| 財産 | 値 |
|---|---|
| 名称 | com.liferay.frontend.js.audiences |
| パス | / |
| 最大年齢 | 31536000 秒 (365 日) |
| 価値 | 一致した外部参照コードを改行で結合し、URLエンコードします |
このクッキーには外部参照コードのみが格納されます。 個人情報、属性値、過去のページ履歴は一切記録されません。
検出結果をブラウザコンソールにログ記録する
デフォルトでは、検出はサイレントで行われます。 動作を確認するには、ログ記録を有効にしてページを再読み込みしてください。
-
グローバルメニュー (
) を開き、 コントロールパネル → インスタンス設定 → インフラストラクチャ → フロントエンドオーディエンスインフラストラクチャ に移動します。 -
ログを有効にする を選択し、 保存 をクリックします。
-
サイトページを再読み込みしてください。
メッセージには @liferay/audiences:というプレフィックスが付いているので、その文字列でコンソールをフィルタリングできます。
トラブルシューティング時以外は、この設定をオフにしておいてください。コンソールを開いている人なら誰でもメッセージを見ることができるためです。