【必読】なぜ今、Aura ではなく LWR を選ぶべきなのか?

【LWR】コンポーネントの表示制御はこれで決まり!「Personalize Anything」徹底解説

この記事はバージョン Winter ’26 において執筆しています。
現在の動作と異なる場合がありますので、ご認識おきください。

LWR サイトは、その高速なパフォーマンスと柔軟性から、今や Salesforce のコミュニティ・ポータル構築の主流となっています。しかし、標準機能だけでは「もう少し踏み込んだ出し分けをしたい」「特定の条件でコンポーネントの表示を制御したい」といった要望に完璧に応えるのは難しいと感じる場面も多いのではないでしょうか。

例えば、

  • 「特定の URL パラメータでアクセスしてきた訪問者にだけ、特別なバナーを表示したい」
  • 「ログインユーザーの取引先責任者レコードのカスタム項目を見て、コンテンツを出し分けたい」
  • 「ブラウザの Cookie 値によってレコメンドを制御したい」

こうした高度なパーソナライゼーション(個別最適化)を実現するために、今回は Salesforce Labs 製の強力なオープンソースコンポーネント「Personalize Anything for Experience Cloud (LWR)」を徹底解説します。

Personalize Anything とは?

「Personalize Anything」は、配置したコンポーネント領域全体に、柔軟な表示・非表示のロジックを組み込むことができるユーティリティコンポーネントです。

標準の「オーディエンス」設定は強力ですが、設定が組織レベルで複雑になりがちです。一方でこのコンポーネントは、ページ上の単一のブロック単位で、直感的かつ多種多様な条件を設定できるのが最大の特長です。

コアとなる仕組み:2つの領域

このコンポーネントをページにドラッグ&ドロップすると、内部に以下の2つのコンポーネント領域(リージョン)が生成されます。

  1. Personalized Region(パーソナライズ領域)
    • あなたが設定した表示条件が True(真)になった場合に、この領域内のコンポーネントが表示されます。
  2. Default Region(デフォルト領域)
    • 表示条件が False(偽)になった場合(条件に合致しなかった場合)に、この領域内のコンポーネントが表示されます。

利用方法はシンプルです。まずこのコンポーネントを配置し、その内部に他の標準コンポーネントやカスタムLWCを組み込んで、表示条件を設定するだけです。

DXforce Point

最重要注意事項:セキュリティとアクセス制御について

ドキュメントでも強調されていますが、本コンポーネントはあくまで「ユーザー体験(UX)向上のためのコンテンツ表示制御」を目的としています。

機密データや特定の情報へのアクセス権限そのものを制御するためには、必ず Salesforce 標準のプロファイル、権限セット、共有設定を利用してください。このコンポーネントの表示ロジックは、セキュリティバリアとして機能するよう設計されていません。

インストール方法

はじめに、LWRサイトの構築におすすめのAppExchangeコンポーネントをインストールしましょう。

インストールしたい組織にログインした状態でURLの末尾に以下を追加するとインストール画面を開くことができます。
/packagingSetupUI/ipLanding.app?apvId=04t8X000000xJ5FQAU&src=U

例: https://xxx.lightning.force.com/packagingSetupUI/ipLanding.app?apvId=04t8X000000xJ5FQAU&src=U

「管理者のみインストール」を選択して完了してください。

  • インストールするアプリ
  • 組織を選択
  • チェックを入れてインストール
  • 管理者のみでOK

Personalize Anything の強力な表示条件(Criteria)

このコンポーネントの真価は、その「条件(Source Values)」の多様性にあります。

標準の {!fieldName} といったLWR式に加え、@ を冠したカスタムな評価元を指定できます。

評価元(Source Value Type)記述例取得できる情報
LWR Expressions{!recordId}ページのコンテキスト情報(レコードID、オブジェクト名など)
ユーザーレコード項目@User.Title認証済みユーザーのUserオブジェクトの任意の項目(API参照名)
取引先責任者項目@Contact.Level__c認証済みユーザーに紐づくContactオブジェクトの任意の項目
取引先項目@Account.Industry認証済みユーザーに紐づくAccountオブジェクトの任意の項目
URL情報@currentURL現在のURL全体(パラメータ含む)
ブラウザ言語@languageユーザーのブラウザの言語設定(例: ja-JP
デバイス情報Form Factorブラウザのウィンドウ幅(Desktop, Tablet, Mobile)
Cookie値@cookie.nameブラウザに保存されている特定のCookieの値
カスタムイベント@customEventIdentifier独自のLWCから渡された動的なデータ(開発者向け)

ハマりやすいポイント:User/Contact/Account項目の利用

@User.Title@Contact.Level__c のように、ユーザー情報や関連オブジェクトの項目を条件に使う場合、セキュリティ上の理由から、参照を許可するフィールドをカスタムメタデータタイプで事前に設定する必要があります。

  • 設定場所: [設定] > [カスタムメタデータ型] > [Allow Fields Setting]
  • 作業: Allowed Fields に、利用したいフィールドの API 参照名を許可リストに追加します(カンマ区切り)。これを怠ると、コンポーネント上でエラーが発生します。
  • エラーになる様子
  • Allowed Fieldsを設定
  • エラー解消

具体的な活用ユースケースと設定イメージ

最も利用頻度の高い活用例を3つご紹介します。

Case 1: URLパラメータによるコンテンツの出し分け

キャンペーンや広告からの流入ユーザーに対して、特別なメッセージを表示したい場合に有効です。

Case 1: URLパラメータによるコンテンツの出し分け

キャンペーンや広告からの流入ユーザーに対して、特別なメッセージを表示したい場合に有効です。

項目設定例説明
Criterion Source@currentURL現在のURLを評価元とする
Comparison OperatorContains評価元が目標値を含む
Target Valueutm_source=spring_campaign特定のキャンペーンパラメータ
Personalized Region「スプリングキャンペーン特別オファー実施中!」のバナー
Default Region通常のコンテンツ

Case 2: デバイス(フォームファクタ)に応じた最適な UI

LWR のレスポンシブデザインだけでは対応しきれない複雑な出し分け(例:PCでは複雑なデータテーブル、モバイルではシンプルなリスト表示)に利用します。

項目設定例説明
Criterion SourceForm Factorデバイスのウィンドウ幅を評価元とする
Comparison OperatorEquals評価元が目標値と一致する
Target ValueDesktop-onlyデスクトップの幅(1024px以上)
Personalized Region大量のデータを表示するカスタムデータグリッド LWC
Default Regionモバイルユーザー向けの簡略化されたカードリスト

Case 3: ログインユーザーの属性によるコンテンツ出し分け

社内ポータルや顧客ポータルで、ユーザーの役割や契約レベルに応じた情報を表示します。

項目設定例説明
Criterion Source@User.UserTypeユーザー種別項目を評価元とする
Comparison OperatorEquals評価元が目標値と一致する
Target ValueStandard標準ユーザー(顧客ポータルでよくあるタイプ)
Personalized Region「よくあるご質問」へのリンク集
Default Region「サポートに問い合わせる」ボタン(Standard以外向け)

【開発者向け】カスタムデータプロバイダの応用

@customEventIdentifier を利用することで、Apex の実行結果外部APIの応答といった動的なデータをパーソナライズの条件に組み込めます。

仕組みの概要

  1. Personalize Anything が、条件判定時に特定のイベント(personalizeAnything:dataRequest)を発火させます。
  2. サイト内のカスタムLWC(Custom Data Provider)がそのイベントをリッスン(傍受)します。
  3. LWC は Apex や JavaScript で必要なデータ(例:特定の権限セットを持っているか、外部APIから最新の在庫情報を取得など)を取得します。
  4. LWC は、取得したデータを含めて新しいイベント(personalizeAnything:dataResponse)を返し、Personalize Anything に判定結果を渡します。

これにより、Salesforce 標準では到達できない、きわめて複雑なビジネスロジックに基づいたパーソナライズがノーコード/ローコードで実現可能になります。

まとめ

「Personalize Anything for Experience Cloud (LWR)」は、LWR サイト構築において、柔軟な UX 設計を求めるアドミニストレーターと開発者にとって必須級のツールです。

標準機能の表示制御がサイト全体の訪問者レベルでマクロな出し分けを行うのに対し、このコンポーネントはページ上の要素レベルでミクロな、詳細な条件に基づくパーソナライズを可能にします。

ぜひ、皆さんのLWRサイトに導入し、よりコンバージョン率の高い、ユーザーフレンドリーなサイト構築に役立ててください。

DXforceの管理人

福島 瑛二

2013年にJavaエンジニアとしてのキャリアをスタート。2019年にSalesforceと出会い、Salesforceエンジニアの道へ。

デザインや UI/UX の観点からもシステムを捉え、ユーザーにとって心地よい体験を実装することにやりがいを感じています。

CRM(顧客データ)や Data Cloud と連携した高度なサイトを目に見える形で表現できる Experience Cloud に大きな可能性を見出しており、バックエンドのデータ構造とフロントエンドの表現力を極めることがこれからの Salesforce エンジニアに求められるスキルだと確信しています。

Trailblazer: efukushima

福島 瑛二をフォローする

読者の声

タイトルとURLをコピーしました