Skip to main content
Build the future with Agentforce at TDX in San Francisco or on Salesforce+ on March 5–6. Register now.

AMPscript の記述

学習の目的

この単元を完了すると、次のことができるようになります。

  • シンプルな AMPscript ステートメントを記述する。
  • 特定のユースケースに AMPscript を使用する。

文の記述

AMPscript の言語の構成要素がわかったところで、次はその記述方法を説明しましょう。先ほど数学の授業に言及しましたが、次は国語の授業を振り返ります。文章の書き方を習ったときのことを覚えていますか? 詩、小説、研究論文など、いろいろな形式を教えてもらったことでしょう。スタイルはそれぞれ異なりますが、どれも正しい文章であることを学びました。同様に、AMPscript も数通りの記述方法がありますが、どれも正解です。では、各スタイルとその用例、それぞれのスタイルを使用する状況を見ていきましょう。  

スタイル種別
サンプルコード
使用する状況
使用する場所
インライン AMPscript
%%=LOWERCASE(FavoriteColor)=%%
シンプルな出力
フリーフォームブロック
コードスニペットブロック
HTML コンテンツブロック
AMPscript ブロック
%%[Output(LOWERCASE(FavoriteColor))]%%
複数の手順や条件ロジックを含むやや複雑なコード

コードスニペットブロック
HTML コンテンツブロック
AMPscript タグ
<script runat=server language=ampscript>
     Output(LOWERCASE(FavoriteColor))</script>

複数の手順や条件ロジックを含むやや複雑なコード

Web スクリプト構文 (JavaScript) に精通している場合に使用
コードスニペットブロック
HTML コンテンツブロック

上記のサンプルコードはすべて同じことを実行します。つまり、下表のサンプルデータのようにデータが大文字で保存されている場合でも、送信されるメールに顧客の好きな色を小文字で表示します。

フィールド名
データ
FirstName
Susan
FavoriteColor
RED

パーソナライズ文字列を使用すれば済むような状況で、なぜ AMPscript が必要なのでしょうか? ここで、パーソナライズ文字列だけを使用したメール 1 と、パーソナライズ文字列とインライン AMPscript を使用したメール 2 の違いを見てみましょう。 

メール 1
出力
Dear %%FirstName%%,

We just received a new order of %%FavoriteColor%% jackets in your size.

Happy Shopping,
カスタマーサービス
Dear Susan,

We just received a new order of RED jackets in your size.

Happy Shopping,
Customer Service
メール 2
出力
Dear %%FirstName%%,

We just received a new order of %%=LOWERCASE(FavoriteColor)=%% jackets in your size.

Happy Shopping,
Customer Service
Dear Susan,

We just received a new order of red jackets in your size.

Happy Shopping,
Customer Service

サンプルコード

ここでいよいよ実際のコードの記述に取りかかります。新しい言語の入門編ともいえるいくつかの一般的なインライン AMPscript コードスニペットを次に示します。

日付の追加

送信日時などのシンプルな要求をメッセージに含めることができます。

コード 説明
Please respond to this email %%=Now()=%%.
メールに送信日を追加します。

通貨の書式設定の例

データエクステンションの小数点フィールドに、通貨に応じた形式を指定できます。

コード 説明
Amount Due: %%=Format(@price, "C", 'en-US')=%%
商品の価格が米国通貨の適切な形式で表示されるように更新します。

データのクリーニング

メッセージの変数内に含まれるテキストを操作することもできます。

コード 説明
%%=ProperCase(FullName)=%%
Propercase: 指定した文字列の各単語の頭文字を大文字にして返します。
%%=Lowercase(FavoriteColor)=%%
Lowercase: 値をすべて小文字にして返します。
%%=Uppercase(FirstName)=%%
Uppercase: 値をすべて大文字にして返します。
%%=Format(Now(), "YYYY")=%%


Format: 指定した「文字列」に従って値を返します。たとえば、著作権のフッターに記載の年のようなデータを操作する場合に役立ちます。

言語の更新

顧客の選択言語に基づいて挨拶を変更できます。この関数は if、elseif、endif コマンドを使用します。次に AMPscript タグの使用例を示します。 

コード
説明
<script runat=server language=ampscript>
IF @language == 'FR' THEN
    SET @greeting = 'Bonjour!'
ELSEIF @language == 'SP' THEN
SET @greeting = '¡Hola!'
ELSE
    SET @greeting = 'Hi!'
ENDIF
</script>

  • 顧客が言語に FR (フランス語) を指定している場合は、Bonjour! という挨拶が表示されます。
  • 顧客が言語に SP (スペイン語) を指定している場合は、¡Hola! という挨拶が表示されます。
  • 顧客がそれ以外の言語を指定している (または指定していない) 場合は、Hi! という挨拶が表示されます。

その他のサンプル

最後に、次のようなコマンドも使用できます。

コード 説明
%%=Empty(@variable)=%%
Empty: 値が空の文字列または null の場合に true を返します。Empty は、購読者にペットがいるかどうかなど、不明または null の可能性がある値に使用できます。
%%=Concat(@firstname," ",@lastname)=%%
Concat: 要素を連結またはリンクします。たとえば、データ内に姓と名が別々に保存されている場合でも、concat を使用すれば姓名を続けて表示できます。
%%=RedirectTo(@samplelink)=%%
RedirectTo: この関数は、ユーザーを指定した URL にリダイレクトします。
/*Are you still reading this table?*/
Comments: 他のユーザーのために、あるいは自分の覚書として、コードが何をするものなのか説明します。

メールでの AMPscript の使用

では実践に入りましょう。こうした新しい便利なサンプルコードはどこに挿入するのでしょうか? メールのどこにでも貼り付けられるのでしょうか? そういうわけにはいきません。先ほどのパーソナライズ文字列とインライン AMPscript を組み合わせた例に戻り、Content Builder 内で AMPscript を使用する方法を見てみましょう。インライン AMPscript は、Content Builder でほとんどのブロック種別内に追加できます。 

メモ

Content Builder について復習が必要な場合は、Trailhead の「Content Builder の機能」モジュールを参照してください。

 フリーフォームコンテンツブロックの作成手順を簡単に説明します。 

  1. Content Builder に移動します。
  2. [作成][コンテンツブロック] の順にクリックし、ドロップダウンの [自由形式] をクリックします。
  3. インライン AMPscript を含むテキストを入力します。

Content Builder のパーソナライズ

重要: AMPscript のブロックやタグを使用できるのはコードスニペットと HTML コンテンツブロックのみです。AMPscript をそのままコンテンツブロックに入力して、[編集完了] をクリックします。

コードスニペットブロックの AMPscript ブロックのサンプルコード

次の単元ではさらに踏み込んで、変数とルックアップ機能を使ってさまざまなデータソースからデータをメールに取り込む方法を学習します。 

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む