
【第621回】 Real-Time Offer Management : 特典の管理・配信に向けた初期設定
これまでの Salesforce Personalization シリーズ では、架空のアウトドア用品のデモサイト「TrailNest」を使い、顧客の興味に合わせて Hero Banner やレコメンド商品を切り替えてきました。
今回からのシリーズ記事では、Summer '26 でリリースされたばかりの新しいマーケティングツールである Real-Time Offer Management を使って、顧客に合わせた「特典」の案内に取り組みます。
例えば、テントを探している顧客にはキャンプ向けの特典を、寝袋を探している顧客には Sleeping 向けの特典を案内します。
さらに、同じ特典を Web サイトと Marketing Cloud NEXT のメールで利用する構成を作ります。
本シリーズでは、Real-Time Offer Management を利用できる専用の Salesforce 組織を使用します。Salesforce Personalization の記事同様、 TrailNest のデザインや考え方を活かしながら、必要な設定を新しい組織に作成していきます。
今回は、その第 1 回(全 7 回)として、機能の有効化、権限セットの割り当て、プロモーションの基盤設定、Data 360 との連携準備を行います。
以下で Real-Time Offer Management のトライアル環境 を取得できます。
※ 「プライベートモード」で申請することをオススメします。
取得できる環境は Developer Edition ではなく、Enterprise Edition です。利用期間は SDO と同様に 30 日間となっています。
Salesforce パートナー以外の方も利用可能です。
現時点では Marketing Cloud Next の初期セットアップを完了できませんが、利用可能となるよう改善を要望しています。
2026 年 10 月下旬より、「リアルタイムデータグラフ」が利用可能になりました。
私の認識では、数あるデモ組織・トライアル組織の中で、リアルタイムデータグラフを利用できる唯一の環境です。
※ https://developer.salesforce.com/free-trials に掲載されています。
Real-Time Offer Management シリーズ
Real-Time Offer Management とは
Real-Time Offer Management は、割引や特典の内容、適用条件、顧客に届けるコンテンツを管理するための仕組みです。
例えば、TrailNest では次のような使い方が考えられます。
テントに興味を示した顧客に、テントの割引を案内する。
寝袋を閲覧した顧客に、Sleeping カテゴリの特典を案内する。
同じ特典を、Web ではバナー、メールでは画像と説明文を組み合わせて届ける。
主に、次の 2 つの機能で構成されます。
Global Promotions Management:割引や特典の条件を定義する。
Offer Management:その特典を、誰に、どのチャネルで、どのように案内するかを管理する。
さらに Salesforce Personalization と組み合わせることで、顧客の情報や直近の行動をもとに、案内するオファーを選択できます。
これまでの TrailNest では「どの商品をおすすめするか」を扱ってきました。今回は「どの特典を案内するか」に取り組みます。
今回作るもの
今回は、次の 3 種類のオファーを用意する予定です。
Weekend Adventure Offer
一定金額以上の購入に対する特典。Camp Under the Stars Offer
テントカテゴリの商品に関する特典。Sleep Better Outdoors Offer
寝袋など、Sleeping カテゴリの商品に関する特典。
まずはルールベースの構成で、顧客の閲覧行動によって案内するオファーが変わることを確認します。
最初に理解しておきたい 3 つの用語
Promotion:特典のルール
「テントを購入すると 10% 割引」のように、適用条件と特典の内容を定義するものです。
Offer:顧客に案内するオファー
Promotion と関連付け、対象となる顧客や公開期間、優先順位などを管理するものです。
Offer Treatment:チャネルごとの案内内容
同じ Offer を、Web やメールなど、それぞれのチャネルでどのように見せるかを用意するものです。
例えば、テントの割引を案内する Offer に対して、Web 用と Email 用の Offer Treatment を作成します。
Promotion:どのような条件で、どの特典を提供するか。
Offer:その特典を、誰に、いつ案内するか。
Offer Treatment:各チャネルで、どのような内容を表示するか。
この関係を意識しておくと、設定画面の役割が分かりやすくなります。
① メイン機能の有効化
設定のクイック検索で、Global Promotions Management Settings を検索して開きます。

Global Promotions Management や Promotion Evaluation and Execution が有効されていない場合は、「有効化」してください。
今回の構成では、次のように進めます。
Global Promotions Management:有効
プロモーションを作成・管理するための基本機能です。Product Catalog Management:対応不要
商品の属性やセット商品を使った、より詳細な条件設定に利用します。無効でも、商品やカテゴリを対象とするプロモーションは作成できます。Promotion Evaluation and Execution:有効
カートに対するプロモーションの優先順位、組み合わせ、割引適用を扱います。今回はマニュアルに合わせて有効化しますが、Web やメールにオファーを表示するだけのための必須設定、という意味ではありません。Personalized Promotions Rule Configuration:対応不要
「購入金額が○円以上」という条件の値自体を、顧客ごとに変えるための設定です。 今回は特典の条件を固定値で作るため、使用しません。Verify Customer Data Cloud Segment:対応不要
プロモーションの API が、カートの適用条件を判定するときに顧客のセグメント所属を確認するための設定です。今回はその API によるセグメント判定を行わないのでデフォルトのまま進めます。
② 権限セットを割り当てる
設定で、作業するユーザーを選択し、Permission Set Assignments → Edit Assignments を開き、次の権限セットを割り当てます。

Product Catalog Management Designer
Promotion Designer Basic
Promotion Designer Extension
Salesforce Pricing Admin
Salesforce Pricing Manager
Context Service Admin
Offer Designer
Data Cloud Architect
Marketing Cloud Admin
Personalization Admin

③ Context Definitions を有効化する
続いて、プロモーションの判定で使用する情報の構造を準備します。
設定のクイック検索で Context Service Settings を検索し、Context Definitions を有効にします。

④ 標準の Context Definition を拡張する
設定から Context Definitions を開きます。
Standard Definitions タブで、CartDetailGetEligiblePromotion のメニューから Extend を選択します。

今回は、作成する定義に次の名前を付けます。
API Name:TrailNestPromotionContext
作成後、Custom Definitions タブから、今作成した定義を開き、Map Data タブを開きます。

今回は、MapCartValueLoyaltyObjectField のメニューから Edit または Edit SObject Mapping を開きます。

Mark as Default にチェックを入れ、Map をクリックします。

画面は遷移しますが、今回は標準の項目マッピングを使用するため、マッピングの内容や独自の項目・タグは変更しないで OK です。

再び Context Definitions の一覧へ戻り、Default にチェックがあることを確認したら、作成した定義を Activate します。

⑤ Rule Library を作成する
次に、作成した Context Definition をプロモーションで利用するための Rule Library を作成します。
Rule Library は、プロモーションのルールが、どの Context Definition と項目を使用するかを結び付ける設定です。
アプリランチャーから Rule Libraries を開きます。

新規をクリックします。

今回は、次の内容で作成します。
Name:TrailNest Promotions
API Name:TrailNest_Promotions
Usage Type:Global Promotions Management
Context Definition Name of first default version:上で作成した Context Definition の API Name

保存後、作成された Rule Library Version を開きます。

⑥ Custom Tag Mapping を追加する
Custom Tag Mapping の関連リストから New をクリックし、Mapping Name と Context Tag を設定します。

これは、例えば「transactionAmount という判定用の名前には、カート合計金額のタグを使う」と対応付ける作業です。
今回の構成では、標準のカート情報に対応する次のマッピングを用意します。
以下は Mapping Name → Context Tag の順です。苦行ですが頑張ります。
contactId → contactId
transactionAmount → transactionAmount
currencyISOCode → currencyISOCode
cartLineProductId → cartLineProductId
cartLineProduct → cartLineProduct
cartLineProductCatalog → cartLineProductCatalog
cartLineProductCatalogId → cartLineProductCatalogId
cartLineProductCategory → cartLineProductCategory
cartLineProductCategoryId → cartLineProductCategoryId
cartLineItemId → cartLineItemId
cartLineItemAmount → cartLineItemAmount
cartLineItemQuantity → cartLineItemQuantity
cartCouponCode → cartCouponCode__std
cartLineCouponCode → cartLineCouponCode__std
activityStartDate → activityStartDate
sourceLocation → sourceLocation
sourceLocationId → sourceLocationId
engagementChannel → engagementChannel
engagementChannelId → engagementChannelId
shouldEvaluatePromotions → shouldEvaluatePromotions__std
cartHeaderId → cartHeaderId__std

これらは自由な表示ラベルではありません。大文字・小文字や末尾の __std を含め、対応する値を指定します。
必要なマッピングを保存したら、Rule Library Version を Activate します。

③〜⑥では、何を設定しているのか?
ここでは、「カートの中身を見て、使える割引を判断するための準備」をしています。
③ Context Definitions を有効化する
商品・数量・金額など、割引の判断に必要な情報を扱う機能を有効にします。④ 標準の Context Definition を拡張する
Salesforce が用意した情報のひな形から、TrailNest 用の定義を作成します。今回は標準の内容をそのまま使います。⑤ Rule Library を作成する
「TrailNest の割引ルールでは、④で作成した定義を使う」と指定します。⑥ Custom Tag Mapping を追加する
「合計金額はこの項目」「商品カテゴリはこの項目」と、割引ルールが参照する情報を対応付けます。
例えば、今後「合計1万円以上なら1,000円引き」というルールを作ったときに、判定に使う合計金額がどこにあるかを、Salesforce が分かるようにする設定です。
⑦ Salesforce Go を確認する
設定から Salesforce Go を開き、機能の検索で Offer Management を検索します。

Turn on Offer Management が On になっていることを確認します。

前半では割引や特典のルールを準備し、ここからは顧客に案内する内容を管理するための設定を進めます。
⑧ チャネル別のレコードタイプとページレイアウトを作成する
同じ Salesforce Go で、Set Up Offer Channels の Create Offer Treatment Record Types and Page Layouts のトグルを有効にします。

この設定では、メールや Web サイトなど、チャネル別の Offer Treatment を作成するためのレコードタイプとページレイアウトを準備します。
今回は、この中の Web と Email を使用します。
ここでいうページレイアウトは、Salesforce 内で Offer Treatment の情報を入力・編集するための画面です。
⑨ ページレイアウトをプロファイルに割り当てる
Complete the Required Steps にある、Map Offer Treatment Page Layouts to Profiles の Manage をクリックします。

利用するユーザーのプロファイル(システム管理者など)を Selected Profiles に移動し、保存します。

この設定によって、該当するユーザーがチャネル別の入力画面を利用できるようになります。
Salesforce Go は、こうした Offer Treatment のレコードタイプ、ページレイアウト、プロファイルへの割り当てをまとめて設定するための入口です。
⑪ Data 360 を有効化する
権限の割り当て後、Salesforce Go のページを再読み込みします。
続いて、Turn On Data 360 を有効にします。

有効化は 30 分程度かかります。時間を置いてページを更新し、完了したことを確認します。
⑫ Global Promotions Management Data Kit をインストールする
続いて、Install Global Promotions Management Data Kit の Install をクリックします。


画面上では Optional と表示されますが、今回の構成では使用します。
もし、インストールできない場合は、以下の手順で設定してからインストールを開始してください。
設定 → Permission Sets を開きます。
Data Cloud Architect を開きます。
Apps → Data Cloud Data Space Management を開きます。
Data Spaces または Data Space Scopes の Edit をクリックします。
default にチェックを入れて保存します。
Salesforce Go を再読み込みし、インストールを再度試します。

この Data Kit は、Salesforce 側のプロモーションやオファーの情報を Data 360 へ取り込むためのデータストリームとマッピングを準備するものです。
⑬ データストリームを確認する
Data 360 アプリの Data Streams を開き、Data Kit によって作成されたデータストリームを確認します。
確認するポイントは、次のとおりです。
今回使用する default データスペースに配置されている。
プロモーションやオファーに関するデータストリームが作成されている。
DLO と DMO のマッピングが設定されている。
権限不足などのエラーが発生していない。
取り込みで権限エラーが発生した場合
設定の Permission Sets → Data Cloud Salesforce Connector → Object Settings で、エラー対象となっている取り込み元の Salesforce オブジェクトを確認します。対象オブジェクトの Read/View All Records と、取り込み項目の読み取り権限を確認してください。これは、自分の管理者ユーザーではなく、コネクタが Salesforce のデータを取得するための権限です。

いかがでしたでしょうか。
今回は、Real-Time Offer Management を利用するための初期設定を行いました。
Global Promotions Management で特典のルールを準備し、Offer Management で顧客への案内内容を管理します。さらに、Data 360 と Personalization を組み合わせて、顧客に合うオファーを選択する構成へつなげていきます。
次回は、TrailNest の商品・カテゴリと関連付けながら、実際の Promotion、Offer、Offer Treatment を作成します。
今回は以上です。