メインコンテンツへスキップ
見出し画像
Photo bykubotayamada0518

【第618回】 Marketing Cloud Next : 受信者単位でのユニークなクーポン配布

    Marketing Cloud Next Growth & Advanced Editions の Winter '27 新機能リリース では、新たに導入された Coupon Management の仕組みを利用して、受信者ごとに異なるユニークなクーポンコードをメールなどのメッセージに差し込めるようになりました。

    画像

    たとえば、

    • 10% OFF クーポン

    • 初回購入クーポン

    • カート放棄ユーザー向けクーポン

    • 誕生日クーポン

    • 再購入促進クーポン

    などで、同じコードを全員に配布するのではなく、一人ひとりに異なるコードを割り当てることができるようになりました。

    画像

    なお、Marketing Cloud Next の Coupon Management は、クーポンコードを生成する機能ではありません。EC や基幹システムなどで事前に発行したユニークなクーポンコードを Coupon List に取り込み、受信者ごとに割り当てて配信するための機能 になります。


    Coupon Management の仕組み

    Marketing Cloud Next の Coupon Management では、複数のユニークなクーポンコードを 1 つの Coupon List に登録します。

    たとえば、

    • ABC001

    • ABC002

    • ABC003

    • ABC004

    • ABC005

    というコードを登録しておくと、メッセージ送信時に受信者ごとに異なるコードを割り当てることができます。


    Coupon List を作成する

    Marketing アプリから Coupons タブを開きます。Coupons タブが表示されていない場合は、Marketing アプリのナビゲーション項目に追加します。

    画像

    Coupons タブから New をクリックして新しい Coupon List を作成します。

    主な設定項目は次のとおりです。

    • Name:クーポンリストの名前

    • Value:割引の内容

    • Description:説明

    • Status:有効 / 無効

    • Business Unit:複数のビジネスユニットがある場合のみ表示

    • Active Period:利用開始日時と終了日時

    画像

    Value には、

    • 30% Off

    • Buy One Get One

    など、クーポンの内容を設定できます。

    重要:Coupon List を「有効」にしておかないと、受信者へクーポンコードは割り当てられません。


    同じ受信者にコードを再利用するか選択できる

    また、Coupon List には、

    • Always assign a new coupon code

    という設定があります。

    画像

    この設定を OFF のままにした場合、同じ受信者に再度別のメッセージを送信すると、以前にその受信者に割り当てたクーポンコードが「再利用」されます。

    一方、ON に変更すると、別のメールを送信するたびに新しいクーポンコードが割り当てられます。

    たとえば、デフォルトの OFF の場合

    • 1 回目:Customer A → ABC001

    • 2 回目:Customer A → ABC001

    というように、同じコードが再利用 されます。

    Always assign a new coupon code を有効にすると、

    • 1 回目:Customer A → ABC001

    • 2 回目:Customer A → ABC025

    のように、新しいコードが割り当て られます。

    これは用途に応じて使い分けると良いと思います。


    Coupon Code をアップロードする

    Coupon List を保存したら、Coupon List のレコード画面から Upload Coupon Codes ボタンをクリックします。

    画像

    CSV のサンプルファイルがダウンロードできるので、ダウンロードします。

    画像


    アップロードする CSV は非常にシンプルで、1 列のみです。ヘッダーには、CouponCode を指定してください。

    CouponCode
    ABC001
    ABC002
    ABC003
    ABC004
    ABC005

    画像

    CSV をアップロードすると、Coupon List にコードが登録されます。

    大量の Coupon Code をアップロードした場合はバッチで処理され、完了するとメールで通知されます。

    画像

    Coupon List の Coupon Codes タブでは、

    • Coupon Code

    • 作成日時

    • 割り当て日時

    • 割り当て先

    なども確認できます。

    画像

    メールコンテンツに Coupon List を追加する

    作成した Coupon List は、Marketing Cloud Next のコンテンツに Data Source として追加します。

    メールを開き、

    • Data Sources > Add > Data Sources 

    をクリックします。

    画像

    Type では、

    • Coupon Data Provider

    を選択します。

    画像

    その後、

    • Data Source Name(定義名)

    • Coupon List

    を設定します。

    画像

    なお、この Coupon List とコンテンツは、同じ Business Unit に属している必要があります。

    Data Source として追加すると、Coupon List の項目を Merge Field としてコンテンツ内で利用できます。

    利用できる項目には、

    • Coupon Code

    • Description

    • Value

    • Start Date

    • End Date

    • Status

    などがあります。

    画像

    そのため、たとえばメールでは、

    Your Coupon Code
    20% OFF
    ABC001
    Valid until October 31

    のような表示ができます。


    Handlebars から Coupon を割り当てる

    Winter ’27 では、Marketing Cloud Next の Handlebars に assignCoupon が追加されています。

    assignCoupon を利用すると、Coupon List から現在の受信者に対して Coupon Code を割り当てることができます。

    画像

    たとえば、次のように利用します。

    {{set "coupon" (assignCoupon list="C-000000002")}}
    
    Your coupon code is {{get @root.coupon "Code"}}

    assignCoupon は、Coupon List の Coupon Row を現在の受信者に対して Claim します。

    Coupon List で Always assign a new coupon code を有効にしていない場合は、同じ受信者にすでに Coupon Code が割り当てられていれば、そのコードを返します。

    Coupon Code 以外にも、

    • Status

    • Description

    • Value

    • StartDateTime

    • EndDateTime

    などを取得できます。

    たとえば、

    {{set "coupon" (assignCoupon list="C-000000002")}}
    
    Coupon Code: {{get @root.coupon "Code"}}
    
    Discount: {{get @root.coupon "Value"}}
    
    Valid until: {{format (get @root.coupon "EndDateTime") "MMMM d, yyyy" "date" "en-US"}}

    のようなコンテンツを作成できます。


    Coupon Code がない場合も考慮する

    assignCoupon は、

    • 利用可能な Coupon Code がない

    • Coupon List が無効

    • 受信者に Individual ID がない

    といった場合に例外になります。

    そのため、実際のコンテンツでは fallback を利用して、Coupon Code が取得できない場合も考慮するとよいでしょう。

    たとえば、

    {{fallback
        (get (assignCoupon list="C-000000002") "Code")
        "Coupon unavailable"
    }}

    のように、Coupon を利用できない場合の表示を用意できます。


    Preview と Test Send には注意

    Coupon を利用する場合、プレビューとテスト送信の動作にも注意が必要です。

    プレビューでは Coupon List からランダムな Coupon Code が表示されますが、使用した Coupon Code は再利用できます。

    画像

    一方、Test Send で利用された Coupon Code は使用済みとしてカウントされ、本番送信では再利用されません。

    テスト送信の場合は、individual_id_abse と表示されます。

    画像

    そのため、大量にテスト送信すると、本番配信用に用意した Coupon Code を消費してしまう可能性があります。本番用の Coupon List を利用してテストを行う場合は注意してください。


    少なくとも Activation Template を使う

    Marketing Cloud Next の Coupon Management は Individual ID ベースで管理されます。クーポンが割り当てられると、送信後の Coupon レコードには対象となる Individual ID が保存されます。

    また、セグメントフローで Activation Template を利用しない場合、1 つの Unified Individual に複数のメールアドレスが紐づいていると、それぞれのメールアドレスに対して送信されます。これは仕様とされています。

    この場合、同じ Unified Individual に紐づくメールアドレスであっても、それぞれ別の Coupon Code が割り当てられて送信されることを確認しました。

    画像
    ※ 上記のように現在のメインではない ID にまでコードが割り当たります。

    よって、複数のメールアドレスが紐づく環境においては、Activation Tempate の利用は必須と言えそうです。

    画像

    一方で、現時点では仕様なのか不具合なのか判明していませんが、1 回の送信につき 2 つの Coupon Code が消費される挙動も確認しています。

    この現象は、

    • セグメント送信

    • CRM Record Query 送信

    のどちらでも発生しました。

    しかし、Actionable List を利用した「リスト送信」では、1 回の送信につき 1 つの Coupon Code のみが割り当てられ、2 つ消費されることはありませんでした。

    現時点では、この違いが仕様によるものなのか、不具合によるものなのかは確認できていません。


    Coupon Code がなくなると送信が失敗する

    もう 1 つ重要なのが、Coupon Code の残数です。

    メッセージ送信時に、

    • Coupon Code をすべて使い切っている

    • Coupon List の有効期限が切れている

    場合、メッセージ送信自体が失敗します。

    たとえば 10,000 人へメールを送信する場合、少なくとも対象人数をカバーできる Coupon Code を準備する必要があります。


    Business Unit にも注意

    Business Unit を利用している場合、Coupon List には Business Unit を割り当てます。

    Coupon List を作成した後に、割り当てた Business Unit を変更することはできません。

    また、コンテンツで Coupon List を利用する場合は、Coupon List とコンテンツが同じ Business Unit に属している必要があります。

    Coupon List を参照しているコンテンツが存在する場合、その Coupon List を削除することもできません。


    claimRow との違い

    Winter ’27 では、assignCoupon とあわせて claimRow という Handlebars 関数も追加されています。

    claimRow は Marketing Object から最初の未使用 Row を取得し、その Row を Claim 済みに変更する関数です。

    たとえば、

    • Coupon Code

    • シリアル番号

    • 招待コード

    • 引換コード

    • 一意の URL

    などを 1 人ずつ割り当てる用途にも利用できます。

    assignCoupon が Coupon Management 専用の仕組みなのに対し、claimRow は Marketing Object を利用した汎用的な Row 割り当て機能と考えると分かりやすいでしょう。

    Coupon Code を配布するだけであれば、基本的には Coupon List と assignCoupon を利用するのがシンプルです。


    いかがでしたでしょうか。

    Marketing Cloud Next の Coupon Management を利用すると、受信者ごとに異なるユニークな Coupon Code を管理し、そのコードをメールなどのマーケティングコンテンツへ簡単に差し込むことができます。

    これまでもデータを事前に準備して同様の仕組みを作ることはできましたが、Coupon Management では、

    • Coupon List の作成

    • Coupon Code のアップロード

    • 受信者へのコード割り当て

    • 割り当て状況の管理

    • コンテンツからの利用

    までを Marketing Cloud Next 上で管理できるようになりました。

    一方で、Coupon Code の不足や有効期限切れは送信失敗につながるため、十分なコード数を準備し、残数と有効期間を管理することが重要です。

    今回は以上です。


    次の記事はこちら

    前回の記事はこちら

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

     
     
    Salesforce Marketing Cloud、Agentforce、Data Cloud、Salesforce 認定資格に関する実践的な情報を発信しています。これらの記事が、皆さまの学習や日々の業務に少しでもお役に立てば幸いです。