見出し画像

【第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

などによって、その表示内容だけを切り替えたいケースはよくあります。


デモシナリオ

そこで、今回の記事では、以下のような参照データをマーケティングオブジェクトに格納し、

  • キャンペーン

  • ロケール

  • セグメント

に応じて、項目を切り替えるデモを実施したいと思います。

CampaignCode
Locale
SegmentCode
Headline
SubHeadline
HeroMessage
OfferLabel
PrimaryCTA

以下より、サンプルデータをダウンロードできます。


マーケティングオブジェクトの作成

1. Summer '26 以降、新たに Marketing Cloud アプリに追加された「Data Management」タブを開きます。

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

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

4. 以下の情報を入力して、「次へ」をクリックすると、確認画面は表示されず、すぐにインポートが開始されます。

  • Name
    例:Campaign Message Reference

  • API Name
    例:Campaign_Message_Reference

  • Description
    例: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. 「データエクスプローラー」タブでは、インポートされたレコードを確認できます。


マーケティングオブジェクトの制約の解消

以前は、現時点のマーケティングオブジェクトでは、

  1. レコード追加不可

  2. レコード更新不可

となっていましたが、2026 年 8 月の改修で、

  • フィールドの新規追加

  • 同じマーケティングオブジェクトに対する CSV ファイルによる全件上書き(フルリフレッシュのみ)

  • データエクスプローラー UI による各値の編集(← まだ?🤔)

そのため、以前はマーケティングオブジェクト自体を削除し、CSV を修正してからの再インポートが必要でしたが、少数のレコードを入力する場合は、より簡単に編集できるようになりました。


CRM データの準備

今回は CRM 側に、以下の 3 つの「選択リスト」項目を作成しました。

  • Campaign Code

  • Locale

  • Segment Code

選択リストの値としては、以下を入れています。

Campaign Code

SUMMER26
AUTUMN26
WINTER26
SPRING27

Locale

en_US
ja
fr

Segment 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 と組み合わせることで、セグメントやロケールに応じたメールコンテンツの出し分けをシンプルに実現できるようになった ことを確認できたかと思います。

今回は以上です。


次の記事はこちら

前回の記事はこちら

私の note のトップページはこちら