【第534回】 Marketing Cloud Next : マーケティングオブジェクトの設定方法
Marketing Cloud Next Growth & Advanced Editions の Summer '26 新機能リリース で追加された「マーケティングオブジェクト」は、マーケティング施策で利用するデータを保存するための箱(データストア)です。
Marketing Cloud Engagement で言うところの「データエクステンション」に近い役割を持ち、CSV ファイルをインポートすることでデータを取り込めます。現時点では CSV ファイルの手動インポートのみ利用可能です。
ここで取り込んだデータは、AMPscript の Lookup 関数を通じて、メール施策におけるパーソナライゼーションに活用できます。
サポートされているデータ型
Text ・・・ 最大 255 文字まで格納できる文字列
Number ・・・ 最大 18 桁の正または負の整数
Decimal ・・・ 最大 18 桁の正または負の小数
上記のデータの長さは、拡張・縮小することはできません。
リソースの割り当て
マーケティングオブジェクト全体の収納可能な容量(GB)
Growth Edition ・・・ 10 GB
Advanced Edition ・・・ 40 GB
マーケティングオブジェクトの数
Growth Edition ・・・ 25 個
Advanced Edition ・・・ 100 個
各マーケティングオブジェクト内の項目数
Growth Edition ・・・ 100 項目
Advanced Edition ・・・ 100 項目
マーケティングオブジェクトは何に使うのか?
Data Cloud が十分に構造化されている環境であれば、顧客データのパーソナライゼーションは、Data Cloud のデータを直接利用して実現できます。
では、「マーケティングオブジェクトは何のために存在するのか?」
という疑問を持つ方もいると思います。
私の理解では、
Data Cloud
= Customer Data Platform(CDP)Marketing Object
= Reference Data Platform
という位置付けなのではないかと考えています。
Reference Data Platform としての活用例
これまでのマーケティング施策では、
顧客に紐付かないデータ
担当者が簡単に更新したいデータ
CSV で管理されているデータ
を扱うケースが数多くありました。
例えば、
キャンペーンごとのメッセージ
セグメントごとの CTA
言語ごとの見出し
季節ごとのプロモーション文言
などです。
メールのレイアウトは同じでも、
CampaignCode
Locale
SegmentCode
などによって、その表示内容だけを切り替えたいケースはよくあります。
マーケティングオブジェクトの設定
マーケティングオブジェクトを利用するには、ユーザーに必要な権限を付与し、「データ管理」 タブへアクセスできるように設定します。
ユーザー権限として、以下があります。
ViewAllMarketingObjectRecords
マーケティングオブジェクトのレコードを表示できます。Manage Marketing Objects
マーケティングオブジェクトのレコードを表示できるほか、マーケティングオブジェクトの作成や削除もできます。
これらのユーザー権限は、以下の権限セットには基本的には付与済みですが、もし存在しなければ自分で付与してください。
Marketing Cloud Admin
Marketing Cloud Manager
権限セットの View Summary を開き、ユーザー権限タブで確認できます。

基本システム管理者などは「データ管理」 タブを利用できるようになっているはずですが、もし、なっていない場合は、プロファイルのオブジェクト設定で「データ管理」オブジェクトを 「デフォルトでオン」 に設定します。

つまり、マーケティングオブジェクトを利用するには、オブジェクトへのアクセス権限と、「データ管理」タブへのアクセスの両方を設定しておく必要があります。
デモシナリオ
そこで、今回の記事では、以下のような参照データをマーケティングオブジェクトに格納し、
キャンペーン
ロケール
セグメント
に応じて、項目を切り替えるデモを実施したいと思います。
CampaignCode
Locale
SegmentCode
Headline
SubHeadline
HeroMessage
OfferLabel
PrimaryCTA以下より、サンプルデータをダウンロードできます。
マーケティングオブジェクトの作成
1. Summer '26 以降、新たに Marketing Cloud アプリに追加された「Data Management」タブを開きます。

2. 「新規」をクリックします。

3. 事前に準備した CSV ファイルをアップロードします。

4. 以下の情報を入力して、「次へ」をクリックすると、確認画面は表示されず、すぐにインポートが開始されます。
Name
例:Campaign Message ReferenceAPI Name
例:Campaign_Message_ReferenceDescription
例:Reference data store for campaign messaging content by CampaignCode, SegmentCode, and Locale.

※ 今回のサンプルでは、以下の 3 項目をプライマリーキーとして設定します。(マーケティングオブジェクトは複合キーをサポートしていません。)
CampaignCode
Locale
SegmentCode
重要:AMPscript の Lookup 関数を利用する際は、プライマリーキーで設定した項目を必ず引数として加える必要 があります。
5. インポートが完了するとマーケティングオブジェクトが作成されました。

6. マーケティングオブジェクトを開くと、詳細タブが表示されます。
ここで確認できる API Name は、後ほど AMPscript から参照する際に利用します。重要なのは、ラベル名ではなく API 名を使用する という点です。

7. 「データエクスプローラー」タブでは、インポートされたレコードを確認できます。

マーケティングオブジェクトの制約の解消
以前は、現時点のマーケティングオブジェクトでは、
レコード追加不可レコード更新不可
となっていましたが、2026 年 8 月の改修で、
フィールドの新規追加


1 レコードずつの追加
※ 現状、一括の CSV ファイルによる追加更新は存在していません。
※ 下で紹介している「全件上書きのみ」です。


1 レコードずつ、複数レコードまとめての削除

CSV ファイルによる全件上書き(フルリフレッシュのみ)

CRM データの準備
今回は CRM 側に、以下の 3 つの「選択リスト」項目を作成しました。
Campaign Code
Locale
Segment Code
選択リストの値としては、以下を入れています。
Campaign Code
SUMMER26
AUTUMN26
WINTER26
SPRING27Locale
en_US
ja
frSegment Code
GENERAL
VIP
DORMANT
NEW_CUSTOMER
HIGH_VALUEそして今回は、CampaignCode を SUMMER26 固定、Locale を en_US 固定とし、SegmentCode のみ異なるレコードを作成しました。

コンテンツ作成
次に、メールコンテンツの編集画面を開いたら、以下の 4 つの「コンテンツ変数」を作成します。データ型は「テキスト」型です。
firstName
campaignCode
locale
segmentCode
コンテンツ変数がよく分からない人は、こちらの記事を確認してください。
続いて、メールの件名には、以下を入力してください。
%%=v(@headline)=%%本文には、HTML ブロックを配置し、以下の AMPscript を利用します。最上部の「$content.〇〇」でフローからコンテンツ変数を割り当てる予定です。
※ 私の今回の例は「コンテンツ変数」を利用していますが、データグラフを利用することも可能です。こちら にはデータグラフを使う例があります。
%%[
SET @firstName = $content.firstName
SET @campaignCode = $content.campaignCode
SET @segmentCode = $content.segmentCode
SET @locale = $content.locale
SET @headline = Lookup("Campaign_Message_Reference__mo","Headline__c","CampaignCode__c",@campaignCode,"SegmentCode__c",@segmentCode,"Locale__c",@locale)
SET @subHeadline = Lookup("Campaign_Message_Reference__mo","SubHeadline__c","CampaignCode__c",@campaignCode,"SegmentCode__c",@segmentCode,"Locale__c",@locale)
SET @heroMessage = Lookup("Campaign_Message_Reference__mo","HeroMessage__c","CampaignCode__c",@campaignCode,"SegmentCode__c",@segmentCode,"Locale__c",@locale)
SET @offerLabel = Lookup("Campaign_Message_Reference__mo","OfferLabel__c","CampaignCode__c",@campaignCode,"SegmentCode__c",@segmentCode,"Locale__c",@locale)
SET @primaryCTA = Lookup("Campaign_Message_Reference__mo","PrimaryCTA__c","CampaignCode__c",@campaignCode,"SegmentCode__c",@segmentCode,"Locale__c",@locale)
]%%
<div style="max-width:600px;margin:0 auto;padding:32px 24px;font-family:Arial,Helvetica,sans-serif;color:#1f1f1f;line-height:1.6;">
<p style="font-size:16px;margin:0 0 24px;">
Hi <strong>%%=v(@firstName)=%%</strong>,
</p>
<p style="font-size:16px;margin:0 0 24px;">
As one of our valued customers, you are invited to preview our summer collection before it becomes available to everyone else.
</p>
<h1 style="font-size:32px;line-height:1.2;margin:0 0 16px;color:#032d60;">
%%=v(@headline)=%%
</h1>
<h2 style="font-size:20px;line-height:1.4;margin:0 0 24px;color:#0176d3;font-weight:600;">
%%=v(@subHeadline)=%%
</h2>
<p style="font-size:17px;margin:0 0 28px;color:#333333;">
%%=v(@heroMessage)=%%
</p>
<div style="background:#f3f8ff;border-left:5px solid #0176d3;padding:18px 20px;margin:0 0 28px;">
<p style="margin:0 0 6px;font-size:13px;color:#0176d3;font-weight:bold;text-transform:uppercase;letter-spacing:0.5px;">
Special Offer
</p>
<p style="margin:0;font-size:20px;color:#032d60;font-weight:bold;">
%%=v(@offerLabel)=%%
</p>
</div>
<p style="font-size:16px;margin:0 0 18px;">
Click below to start exploring:
</p>
<p style="margin:0 0 32px;">
<a href="#"
style="display:inline-block;background:#0176d3;color:#ffffff;text-decoration:none;font-size:16px;font-weight:bold;padding:14px 28px;border-radius:4px;">
%%=v(@primaryCTA)=%%
</a>
</p>
<p style="font-size:16px;margin:0 0 8px;">
Thank you for being one of our most valued customers.
</p>
<p style="font-size:16px;margin:0 0 28px;">
The Example Company Team
</p>
<p style="font-size:12px;color:#666666;margin:0;border-top:1px solid #dddddd;padding-top:16px;">
Availability, eligibility, and offer details may vary by customer and region.
</p>
</div>
完成したら、保存して、コンテンツを公開をします。

Tips:データグラフの項目参照
上の例は、コンテンツ変数を利用していますが、データグラフの項目を参照する場合は、次の形式で指定します。
$dataGraph.項目名例えば、データグラフ内の Email 項目を参照する場合は、以下のように記述します。
$dataGraph.Email__cこのように $dataGraph を利用することでも、データグラフに格納された属性をメールコンテンツ内で参照し、受信者ごとにパーソナライズされたメッセージを作成できます。
フローの設定
最後にフローの設定ですが、今回は「レコードクエリフロー」を使用します。

メール送信要素の「コンテンツ変数」でマッピングする際、選択リスト型であっても、テキスト型にはマッピングは可能ですので、「Triggered Lead」のリソースを活用して、以下の通りマッピングします。

Tips: コンテンツのパーソナライゼーションで参照しているマーケティングオブジェクト内に該当レコードが存在しない場合、メールは空欄の内容で送信されません。配信は一時的に「Retry(リトライ)」ステータスとなり、参照先のデータが利用可能になるまで再試行が継続されます。該当レコードが追加されると、次回のリトライ処理でメールが送信されます。
例:ロケールが「en_US」ではなく「en-US」で登録されているなど。
他は一般的な設定ですので、完成させて、フローを有効化してください。

送信されたメールの確認
送信の結果、今回 5 名分メールが送信されてきましたが、代表として 3 通分を表示しておきます。セグメントに合わせて、それぞれ異なるメールが送信されていることが分かります。成功です。
メール例 ①

メール例 ②

メール例 ③

いかがでしたでしょうか。
マーケティングオブジェクトを利用することで、顧客データとは別に管理したい 参照データ(Reference Data)を Marketing Cloud Next 内で保持できるようになりました。
特に、
キャンペーンごとのメッセージ管理
ロケールごとの文言切り替え
セグメントごとの CTA 出し分け
季節キャンペーンの管理
といった用途では非常に相性が良いと感じます。
Data Cloud が顧客データを管理するための基盤だとすると、マーケティングオブジェクトは、マーケティング施策向けの「参照データ管理基盤」として活用できる可能性があります。
現時点では編集機能や API 連携(自動連携)がなく、手動 CSV インポートのみという制約がありますが、AMPscript と組み合わせることで、セグメントやロケールに応じたメールコンテンツの出し分けをシンプルに実現できるようになった ことを確認できたかと思います。
今回は以上です。
