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

【第495回】 Marketing Cloud Next : AMPscript による柔軟なカスタマイズ

    Nobuyuki Watanabe

    Marketing Cloud Next Growth & Advanced Editions における Summer ’26 新機能リリース の最大トピックは、待望の AMPscript(Marketing Cloud の独自言語)のサポートが開始されたことでしょう。

    これにより、従来の Marketing Cloud Engagement のような柔軟なメッセージカスタマイズが、Marketing Cloud Next 上でも実現可能になります。Marketing Cloud Engagement からの移行を検討している方にとっても、大きな注目ポイントです。

    さらに注目したいのは、

    • コードエディターだけではなく

    • ビジュアルエディター上から直接 AMPscript を利用可能

    という点です。

    この新機能により、これまで以上に、コンテンツ制作やパーソナライズの体験が大きく変わっていきそうです。


    AMPscript で利用可能な関数

    Marketing Cloud Next で利用可能な AMPscript が発表されました。

    Summer ’26 で AMPscript が初めてサポートされた時点では、Marketing Cloud Next で利用できる関数は 41 個でした。

    その後、Winter '27 では利用可能な関数が 23 個追加されて、現在では 64 個まで増えています。

    Marketing Cloud Engagement に比べると、まだ利用できない関数も多いため、詳細は 公式のヘルプドキュメント を確認してください。

    画像

    ① Math(5 個)

    • Add()
      2 つの数値を加算します。

    • Subtract()
      1 つ目の数値から 2 つ目の数値を減算します。

    • Multiply()
      2 つの数値を乗算します。

    • Divide()
      1 つ目の数値を 2 つ目の数値で除算します。

    • Mod()
      除算した余りを返します。


    ② Date & Time(7 個)

    • Now()
      現在日時を返します。

    • DateAdd()
      日付に指定した期間を加算します。

    • DateDiff()
      2 つの日付の差を返します。

    • DateParse()
      文字列を日付型に変換します。

    • 🆕 DatePart() 
      日付やタイムスタンプから指定した部分を取得します。

    • FormatDate()
      日付を指定形式に変換します。

    • StringToDate()
      文字列を日付オブジェクトに変換します。


    ③ String(14 個)

    • Concat()
      複数の文字列を連結します。

    • Length()
      文字列の長さを返します。

    • Trim()
      前後の空白を除去します。

    • Lowercase()
      小文字に変換します。

    • Uppercase()
      大文字に変換します。

    • ProperCase()
      各単語の先頭を大文字にします。

    • SubString()
      指定位置から文字列を切り出します。

    • Replace()
      文字列を置換します。

    • ReplaceList()
      複数の文字列をまとめて置換します。

    • IndexOf()
      指定文字列の位置を返します。

    • Format()
      文字列を書式化します。

    • 🆕 Char()
      ASCII コードに対応する文字を返します。

    • 🆕 RegExMatch()
      正規表現を使用して文字列を検索します。

    • 🆕 StringToHex()
      文字列を 16 進数形式に変換します。


    ④ Utilities(15 個)

    • Empty()
      値が空かどうかを判定します。

    • IsNull()
      Null かどうかを判定します。

    • Iif()
      条件に応じて値を返します。

    • Random()
      指定範囲の乱数を返します。

    • FormatNumber()
      数値を指定形式で整形します。

    • FormatCurrency()
      通貨形式に整形します。

    • Output()
      AMPscript の結果を出力します。

    • OutputLine()
      AMPscript の結果を改行付きで出力します。

    • RaiseError()
      エラーを発生させます。

    • v()
      変数の値を出力します。

    • 🆕 Base64Decode()
      Base64 形式のデータをデコードします。

    • 🆕 Base64Encode()
      文字列を Base64 形式にエンコードします。

    • 🆕 Domain()
      メールアドレスからドメイン部分を取得します。

    • 🆕 Guid()
      GUID を生成します。

    • 🆕 IsEmailAddress()
      メールアドレスの形式が正しいかを判定します。


    ⑤ Data Access(11 個)

    • Lookup()
      Marketing Object から単数のレコードを取得します。

    • 🆕 LookupRows()
      Marketing Object から複数のレコードを Rowset として取得します。

    • 🆕 LookupOrderedRows()
      Marketing Object から複数のレコードを並び順を指定して取得します。

    • 🆕 ClaimRow()
      条件に応じて未取得の Row を取得します。

    • 🆕 ClaimRowValue()
      未取得の Row から指定した値を取得します。

    • Field()
      Row 内の項目値を取得します。

    • Row()
      Rowset から 1 行取得します。

    • RowCount()
      Rowset の件数を取得します。

    • BuildRowsetFromJson()
      JSON を Rowset に変換します。

    • 🆕 BuildRowsetFromString()
      文字列から Rowset を作成します。

    • 🆕 BuildRowsetFromXml()
      XML から Rowset を作成します。


    ⑥ Salesforce(1 個)

    • RetrieveSalesforceObjects()
      Salesforce オブジェクトからレコードを取得します。


    ⑦ Content(5 個)

    • ContentBlockById()
      コンテンツブロックを ID 指定で取得します。

    • ContentBlockByKey()
      コンテンツブロックを Key 指定で取得します。

    • ContentBlockByName()
      コンテンツブロックを名前指定で取得します。

    • 🆕 BeginImpressionRegion()
      Impression Region の開始位置を指定します。

    • 🆕 EndImpressionRegion()
      Impression Region の終了位置を指定します。


    ⑧ Encryption / Hash(4 個)

    • 🆕 MD5()
      文字列から MD5 ハッシュを生成します。

    • 🆕 SHA1()
      文字列から SHA-1 ハッシュを生成します。

    • 🆕 SHA256()
      文字列から SHA-256 ハッシュを生成します。

    • 🆕 SHA512()
      文字列から SHA-512 ハッシュを生成します。


    ⑨ Sites(1 個)

    • 🆕 IsNullDefault()
      値が空の場合にデフォルト値を利用します。


    ⑩ HTTP(1 個)

    • 🆕 UrlEncode()
      URL で安全に利用できる形式に文字列を変換します。


    現時点で確認できる Marketing Cloud Next 対応 AMPscript 関数は 合計 64 個です。Summer ’26 の登場時点では 41 個でしたので、23 個の関数が新たに利用可能になったことになります。

    注意:Marketing Cloud Next では AMPscript が内部的に Handlebars に変換されて処理されるため、対応する Handlebars の機能がサポートされていない場合は、まだ利用できません。

    今回の追加で特に注目なのが、LookupRows() や LookupOrderedRows() です。これまでは Marketing Object から単一の値を取得する Lookup() が中心でしたが、複数のレコードを取得できるようになったことで、例えば、顧客ごとにおすすめの商品を複数件表示したり、対象店舗やキャンペーン情報を一覧で表示したりするといったパーソナライゼーションが作りやすくなります。

    また、BeginImpressionRegion() / EndImpressionRegion() が追加されたことで、メール内の特定コンテンツがどの程度表示されたかを計測する Impression Region Tracking にも AMPscript を利用できるようになりました。

    このように、今回追加された関数を見ると、Marketing Cloud Next で より複雑なコンテンツ表示や効果測定を行うために必要な機能が補強されたと考えると分かりやすそうです。


    AMPscript で利用できない関数

    次に、Winter '27 時点で利用できない AMPscript 関数です。

    以前と比較すると、利用可能になった関数がかなり増えていますが、Marketing Cloud Engagement で利用できるすべての AMPscript が使えるわけではありません。

    利用できない AMPscript を理解しておくことで、Marketing Cloud Next ではどのような制限があるのかが理解できます。

    ① Data Extension(13 個)

    データエクステンションのデータを直接更新する関数などは、引き続き利用できません。

    • DataExtensionRowCount()

    • DeleteData()

    • DeleteDE()

    • ExecuteFilter()

    • ExecuteFilterOrderedRows()

    • InsertData()

    • InsertDE()

    • LookupOrderedRowsCS()

    • LookupRowsCS()

    • UpdateData()

    • UpdateDE()

    • UpsertData()

    • UpsertDE()

    ※ Lookup()、LookupRows()、LookupOrderedRows() など、一部のデータ取得系関数は Marketing Cloud Next でも利用可能になりました。


    ② CloudPages / Web フォーム(12 個)

    Next には CloudPages が存在しないため、CloudPages や Microsite に関連する関数は基本的に利用できません。

    • CloudPagesURL()

    • LiveContentMicrositeURL()

    • MicrositeURL()

    • QueryParameter()

    • Redirect()

    • RequestParameter()

    • AuthenticatedEmployeeId()

    • AuthenticatedEmployeeNotificationAddress()

    • AuthenticatedEmployeeUserName()

    • AuthenticatedEnterpriseID()

    • AuthenticatedMemberID()

    • AuthenticatedMemberName()

    ※ IsNullDefault() は Marketing Cloud Next でも利用可能になりました。


    ③ HTTP / 外部連携(7 個)

    外部システムとの HTTP 通信に利用する関数は、引き続き利用できません。

    • HttpGet()

    • HttpPost()

    • HttpPost2()

    • IsChtmlBrowser()

    • RedirectTo()

    • RequestHeader()

    • WrapLongURL()

    ※ UrlEncode() は Marketing Cloud Next でも利用可能になりました。


    ④ Salesforce 更新(4 個)

    Salesforce オブジェクトは参照できますが、AMPscript からの更新系処理は引き続き利用できません。

    • CreateSalesforceObject()

    • UpdateSingleSalesforceObject()

    • LongSfid()

    • RetrieveSalesforceJobSources()


    ⑤ SOAP API(9 個)

    AMPscript から SOAP API オブジェクトを操作する関数は利用できません。

    • AddObjectArrayItem()

    • CreateObject()

    • InvokeCreate()

    • InvokeDelete()

    • InvokeExecute()

    • InvokePerform()

    • InvokeRetrieve()

    • InvokeUpdate()

    • SetObjectProperty()


    ⑥ 暗号化・認証(4 個)

    MD5() や SHA 系のハッシュ関数は利用可能になりましたが、暗号化や JWT の生成は引き続き利用できません。

    • EncryptSymmetric()

    • DecryptSymmetric()

    • GetJwt()

    • GetJwtByKeyName()


    ⑦ SMS(8 個)

    SMS の AMPscript は利用できません。

    • CreateSmsConversation()

    • EndSmsConversation()

    • MMS_Content_URL()

    • Msg()

    • Noun()

    • Nouns

    • SetSmsConversationNextKeyword()

    • Verb


    ⑧ Dynamics CRM(9 個)

    Microsoft Dynamics CRM に関連する関数は利用できません。

    • AddMscrmListMember()

    • CreateMscrmRecord()

    • DescribeMscrmEntities()

    • DescribeMscrmEntityAttributes()

    • RetrieveMscrmRecords()

    • RetrieveMscrmRecordsFetchXml()

    • SetStateMscrmRecord()

    • UpdateMscrmRecords()

    • UpsertMscrmRecord()


    ⑨ コンテンツ管理(13 個)

    一部のコンテンツ関連機能は利用できるようになりましたが、旧 Content Builder などに関連する以下の関数は利用できません。

    • AttachFile()

    • BarcodeUrl()

    • BuildOptionList()

    • ContentArea()

    • ContentAreaByName()

    • ContentImageById()

    • ContentImageByKey()

    • GetPortfolioItem()

    • Image()

    • TransformXml()

    • TreatAsContent()

    • TreatAsContentArea()

    • WAT() and WATP()

    ※ BeginImpressionRegion() と EndImpressionRegion() は Marketing Cloud Next でも利用可能になりました。


    ⑩ ソーシャル(3 個)

    • GetPublishedSocialContent()

    • GetSocialPublishUrl()

    • GetSocialPublishUrlByName()


    ⑪ 連絡先(1 個)

    • UpsertContact()


    ⑫ 日付変換(3 個)

    • GetSendTime()

    • LocalDateToSystemDate()

    • SystemDateToLocalDate()

    ※ DatePart() は Marketing Cloud Next でも利用可能になりました。


    ⑬ Utility(2 個)

    • AttributeValue()

    • IsPhoneNumber()

    ※ Domain()、Guid()、IsEmailAddress() は Marketing Cloud Next でも利用可能になりました。


    この内容を見ると、Marketing Cloud Next の AMPscript は、Summer ’26 の登場時点と比べて、かなり利用範囲が広がってきたことが分かります。

    Summer '26 当初は、

    「データ更新ツール」ではなく、「パーソナライズ表示ツール」

    という性格が非常に強く、

    極端に言うと、

    「メール本文に値を表示するためだけの軽量 AMPscript」

    という印象でした。

    しかし現在では、

    • 複数レコードの取得

    • Rowset の生成

    • 正規表現

    • Base64 のエンコード/デコード

    • ハッシュ生成

    • Impression Region

    • URL エンコード

    なども利用できるようになっています。

    そのため、Summer ’26 の登場時点と比較すると、単純な値の表示だけではなく、メールコンテンツ内でデータを取得・加工・判定するための機能がかなり強化されたと言えそうです。

    一方で、

    • データの Insert / Update / Upsert / Delete

    • Salesforce レコードの更新

    • HTTP 通信

    • SOAP API

    • 暗号化

    • JWT 生成

    などは引き続き利用できません。

    公式 AMPscript インデックスの掲載行を基準にすると、

    • Next 対応:64

    • Next 非対応:88

    • 合計:152

    となっています。

    Summer ’26 の登場時点から、Marketing Cloud Next で利用できる AMPscript は着実に増えています。

    今後も対応関数が追加されていく可能性がありますので、最新の公式ドキュメントを確認しながら利用することをおすすめします。


    マーケティングオブジェクトについて

    「マーケティングオブジェクト」とは、マーケティング施策で利用するデータを保存するための箱(データストア)です。AMPscript と同時にリリースされ、セットで覚えておく必要がある機能です。

    画像

    Marketing Cloud Engagement で言うところの「データエクステンション」に近い役割を持ち、CSV ファイルをインポートすることでデータを取り込めます。(※ Winter '26 の新機能リリースでは、Bulk API や Flow での管理も可能になりました。)

    画像

    ここで取り込んだデータは、AMPscript の Lookup 系の関数を通じて、メール施策におけるパーソナライゼーションに活用できます。

    Winter '27 新機能リリースでは、「マーケティングオブジェクト」がかなり進化しました。それらの機能については以下の記事で解説しています。


    AMPscript を実際に試す

    Salesforce MVP である Zuzanna Jarczynska(ズザンナ・ヤルチンスカ)さんが、AMPscript を試した際の記事を解説しているので確認してください。 

    なお、データソース(マーケティングオブジェクトや顧客が持つデータ)を利用した AMPscript の具体例については、私の こちら の記事で解説していますので参考にしてください。


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

    Winter ’27 で追加された AMPscript 関数を見ると、単純に利用できる関数が増えただけではなく、実際のコンテンツ制作やパーソナライゼーションで使いやすい機能が少しずつ補強されているように感じます。

    中でも、少し地味ですが意外と使えそうなのが以下の関数です。

    • RegExMatch()
      文字列が特定のパターンに一致するかを判定できます。例えば、商品コードや会員番号などの形式を確認して、表示内容を条件分岐させる場合に便利です。

    • DatePart()
      日付から「年」「月」「日」などの一部分を取り出せます。誕生月によって表示内容を変えたり、月ごとに異なるコンテンツを表示したりする場合に使えそうです。

    • UrlEncode()
      URL に動的な値を含める場合に便利です。検索キーワードや商品名、キャンペーン名など、日本語やスペースを含む値を URL パラメータとして扱いやすくなります。

    • BuildRowsetFromString()
      区切り文字を含む 1 つの文字列を Rowset に変換できます。例えば、Tokyo,Osaka,Nagoya のような値を分解して、1 件ずつ繰り返し表示するといった使い方ができます。

    • Domain()
      メールアドレスからドメイン部分だけを取得できます。例えば、メールドメインによって表示内容を変更するといった簡単な条件分岐に利用できます。

    このような関数が増えてきたことで、Marketing Cloud Next の AMPscript も、当初の単純な値の表示だけではなく、データの加工や判定を含めた、より柔軟なコンテンツ作成に利用できるようになってきました。

    今後、ますます活用の幅が増えてきそうです。

    今回は以上です。


    次の記事はこちら

    前回の記事はこちら

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

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