【第495回】 Marketing Cloud Next : AMPscript による柔軟なカスタマイズ
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 が発表されました。
Marketing Cloud Engagement に比べて、かなりの制限がありましたので、詳細は 公式のヘルプドキュメント を確認してください。

① Math(5 個)
Add()
2 つの数値を加算します。Subtract()
1 つ目の数値から 2 つ目の数値を減算します。Multiply()
2 つの数値を乗算します。Divide()
1 つ目の数値を 2 つ目の数値で除算します。Mod()
除算した余りを返します。
② Date & Time(6 個)
Now()
現在日時を返します。DateAdd()
日付に指定した期間を加算します。DateDiff()
2 つの日付の差を返します。DateParse()
文字列を日付型に変換します。FormatDate()
日付を指定形式に変換します。StringToDate()
文字列を日付オブジェクトに変換します。
③ String(11 個)
Concat()
複数の文字列を連結します。Length()
文字列の長さを返します。Trim()
前後の空白を除去します。Lowercase()
小文字に変換します。Uppercase()
大文字に変換します。ProperCase()
各単語の先頭を大文字にします。SubString()
指定位置から文字列を切り出します。Replace()
文字列を置換します。ReplaceList()
複数の文字列をまとめて置換します。IndexOf()
指定文字列の位置を返します。Format()
文字列を書式化します。
④ Utilities(10 個)
Empty()
値が空かどうかを判定します。IsNull()
Null かどうかを判定します。Iif()
条件に応じて値を返します。Random()
指定範囲の乱数を返します。FormatNumber()
数値を指定形式で整形します。FormatCurrency()
通貨形式に整形します。Output()
AMPscriptの結果を出力します。OutputLine()
AMPscript の結果を改行付きで出力します。RaiseError()
エラーを発生させます。v()
変数の値を出力します。
⑤ Data Access(5 個)
Lookup()
Marketing Object から値を取得します。Field()
Row 内の項目値を取得します。Row()
Rowset から1行取得します。RowCount()
Rowset の件数を取得します。BuildRowsetFromJson()
JSON を Rowset に変換します。
⑥ Salesforce(1 個)
RetrieveSalesforceObjects()
Salesforce オブジェクトからレコードを取得します。
⑦ Content(3 個)
ContentBlockById()
コンテンツブロックを ID 指定で取得します。ContentBlockByKey()
コンテンツブロックを Key 指定で取得します。ContentBlockByName()
コンテンツブロックを名前指定で取得します。
現時点で確認できる Marketing Cloud Next 対応 AMPscript 関数は 合計 41 個 です。
AMPscript で利用できない関数
次に、現時点で利用できない AMPscript 関数です。
利用できなくなった AMPscript を理解しておくことで、どのような制限となるかが理解できます。
① Data Extension(17 個)
これらはデータエクステンションを直接参照・更新する機能でした。
ClaimRow()
ClaimRowValue()
DataExtensionRowCount()
DeleteData()
DeleteDE()
ExecuteFilter()
ExecuteFilterOrderedRows()
InsertData()
InsertDE()
LookupOrderedRows()
LookupOrderedRowsCS()
LookupRows()
LookupRowsCS()
UpdateData()
UpdateDE()
UpsertData()
UpsertDE()
※ Lookup() は、新しい Marketing Object を参照することができます。
② CloudPages / Web フォーム(13 個)
Next には CloudPages が存在しません。
CloudPagesURL()
IsNullDefault()
LiveContentMicrositeURL()
MicrositeURL()
QueryParameter()
Redirect()
RequestParameter()
AuthenticatedEmployeeId()
AuthenticatedEmployeeNotificationAddress()
AuthenticatedEmployeeUserName()
AuthenticatedEnterpriseID()
AuthenticatedMemberID()
AuthenticatedMemberName()
③ HTTP / 外部連携(8 個)
外部システムとの API 連携が禁止となりました。
HttpGet()
HttpPost()
HttpPost2()
IsChtmlBrowser()
RedirectTo()
RequestHeader()
UrlEncode()
WrapLongURL()
④ Salesforce 更新(4 個)
参照のみ許可で更新は禁止です。
CreateSalesforceObject()
UpdateSingleSalesforceObject()
LongSfid()
RetrieveSalesforceJobSources()
⑤ SOAP API(9 個)
AMPscript から API を叩く世界ではなくなりました。
AddObjectArrayItem()
CreateObject()
InvokeCreate()
InvokeDelete()
InvokeExecute()
InvokePerform()
InvokeRetrieve()
InvokeUpdate()
SetObjectProperty()
⑥ 暗号化・認証(8 個)
セキュリティ処理は AMPscript ではできません。
MD5()
SHA1()
SHA256()
SHA512()
EncryptSymmetric()
DecryptSymmetric()
GetJwt()
GetJwtByKeyName()
⑦ SMS(8 個)
SMS の AMPscript は使えません。
CreateSmsConversation()
EndSmsConversation()
MMS_Content_URL()
Msg()
Noun()
Nouns
SetSmsConversationNextKeyword()
Verb
⑧ Dynamics CRM(9 個)
Microsoft 連携は一切なくなりました。
AddMscrmListMember()
CreateMscrmRecord()
DescribeMscrmEntities()
DescribeMscrmEntityAttributes()
RetrieveMscrmRecords()
RetrieveMscrmRecordsFetchXml()
SetStateMscrmRecord()
UpdateMscrmRecords()
UpsertMscrmRecord()
⑨ コンテンツ管理(16 個)
旧 Content Builder 機能も一切なくなりました。
AttachFile()
BarcodeUrl()
BeginImpressionRegion()
BuildOptionList()
ContentArea()
ContentAreaByName()
EndImpressionRegion()
GetPortfolioItem()
Image()
ImageById()
ImageByKey()
TransformXml()
TreatAsContent()
TreatAsContentArea()
WAT()
WATP()
⑩ ソーシャル(3 個)
GetPublishedSocialContent()
GetSocialPublishUrl()
GetSocialPublishUrlByName()
⑪ 連絡先(1 個)
UpsertContact()
⑫ 日付変換(4 個)
DatePart()
GetSendTime()
LocalDateToSystemDate()
SystemDateToLocalDate()
⑬ 文字列処理(5 個)
BuildRowsetFromString()
BuildRowsetFromXml()
Char()
RegExMatch()
StringToHex()
⑭ Utility(5 個)
AttributeValue() ・・・ これは「コンテンツ変数」で代用されます
Domain()
Guid()
IsEmailAddress()
IsPhoneNumber()
この内容から Marketing Cloud Next の AMPscript は、
「データ更新ツール」ではなく、「パーソナライズ表示ツール」
として再設計されていることが分かります。
極端に言うと、
「メール本文に値を表示するためだけの 軽量 AMPscript」
という感じですね。
Next 対応:41 個
Next 非対応:109 個
合計:150 個
という結果で、約 3 割の AMPscript が使える形になりました。
マーケティングオブジェクトについて
「マーケティングオブジェクト」とは、マーケティング施策で利用するデータを保存するための箱(データストア)です。

Marketing Cloud Engagement で言うところの「データエクステンション」に近い役割を持ち、CSV ファイルをインポートすることでデータを取り込めます。現時点では CSV ファイルの手動インポートのみ利用可能です。

ここで取り込んだデータは、AMPscript の Lookup 関数を通じて、メール施策におけるパーソナライゼーションに活用できます。
AMPscript を簡単にテストしたい場合
以下はデータソースなしで AMPscript をテストすることができます。
現在時刻を表示
%%=Now()=%%※ システムタイムゾーンは UTC です。
日本時間を表示
%%=FormatDate(DateAdd(Now(),9,"H"), "yyyy年MM月dd日 HH時mm分")=%%ランダムな数字を表示
%%=Random(1,100)=%%文字列を大文字に変換
%%=Uppercase("marketing cloud")=%%文字列を連結
%%=Concat("Hello", " ", "World")=%%文字数を取得
%%=Length("Salesforce")=%%日付フォーマットを変更
%%=FormatDate(Now(), "yyyy/MM/dd")=%%疑似的な条件分岐
%%=Iif(Random(1,10) > 5, "YES", "NO")=%%
実際にプレビューすると、以下のように表示されます。

その他の AMPscript は、Salesforce MVP の Zuzanna Jarczynska(ズザンナ・ヤルチンスカ)さんの記事で解説されているので確認してください。
いかがでしたでしょうか。
データソース(マーケティングオブジェクト や 顧客が持つデータ)を利用した AMPscript の例は、こちらの記事で解説しています。
実際にふたを開けてみると、現時点では想像していたよりも制約が多いと感じた方もいるかもしれません。しかし、より高度なパーソナライゼーションや柔軟なコンテンツ作成が実現できるようになったことは確かで、発想次第では、活用の幅が大きく広がることが期待されます。
Marketing Cloud Next は、全般的に発展途上の機能も多いため、今後のアップデートや新機能の追加にも注目しながら、引き続き検証を進めていきたいと思います。
今回は以上です。
