AMPscript の説明
学習の目的
この単元を完了すると、次のことができるようになります。
- AMPscript の基本事項と構文を確認する。
- インライン AMPscript と AMPscript ブロックを作成する。
- パーソナライズ文字列を挿入する。
- AMPscript の関数と演算子を実装する。
- AMPscript の例やベストプラクティスに従う。
開発者であれば、数種類の言語を習得されていると思います。また、開発者であれば、ある言語のすべてをたった 1 つのドキュメントで学ぶことなど不可能であることもご存じだと思います。このモジュールでは AMPscript の基本について説明し、必要に応じて各自が詳細を確認できるリソースをご紹介します。
AMPscript の基本事項と構文
最も基本的なレベルにおいて、AMPscript コールは、Marketing Cloud Engagement またはデータエクステンションから要求されるデータのプレースホルダーとして機能します。これらのコールは、次の 3 つの基本的な形式のいずれかで表示できます。
- インライン AMPscript:
%%=LOWERCASE(Name)=%%
- AMPscript ブロック:
%%[ LOWERCASE(Name) ]%%
- AMPscript タグ:
<script runat=server language=ampscript> Lowercase(Name) </script>
AMPscript は定数値、属性やデータエクステンションから取り込んだ値、キーワードを処理できます。次の例は、3 つの言語要素のどれでも同じ結果になることを示しています。
'example@salesforce.com’
(文字列定数が引用符で囲まれています)SubscriberEmail
(この文字列はデータエクステンションから SubscriberEmail 値を返します。この場合は example@salesforce.com です)@EmailAddress
(この変数は、AMPscript ブロックで以前に割り当てられた値を保持します。この場合は example@salesforce.com になります)
AMPscript では、IF、ELSEIF、ELSE、ENDIF など、おそらく開発者であれば使い慣れている用語を使用します。次の例で、AMPscript でこれらの条件をどのように実装するのかを見てください。
<script runat=server language=ampscript> IF @region == '1' THEN SET @greeting = 'Bonjour!' ELSEIF @region == '2' THEN SET @greeting = 'Hola!' ELSE SET @greeting = 'Hi!' ENDIF </script>
評価すべきすべての条件に必要な数の ELSEIF ステートメントを含めることができます。
また、AMPscript に FOR ループを設定して、コンテンツを必要なだけ繰り返すことが可能です。次の例は、含まれるロールの数に応じて名の値を設定します。
%%[FOR @Position = '1' TO @Position = @rowCount DO ]%% SET @FirstName = FirstName %%[NEXT @Position]%%
そしてもちろん、SET を使用して AMPscript に変数 (VAR として宣言) を割り当てることができます。
%%[ VAR @text SET @text = "Hello, world!" Output(v(@text))]%%
Output()
関数によって v()
に含まれる変数の値が表示されます。
メールメッセージの場合は、AMPscript が最初にメッセージの HTML 本文 (プリヘッダーを含む) を処理し、次にテキスト本文を処理します。件名行は最後に処理されます。
AMPscript 関数
AMPscript は関数を使用します。膨大な数の関数です。そのため、関数がいくつかのカテゴリに分類されています。
AMPscript 関数 |
説明 |
API |
SOAP API のインタラクションを作成する。 |
連絡先 |
Marketing Cloud Engagement の連絡先情報を変更する。 |
コンテンツ |
Marketing Cloud Engagement のコンテンツ (メールメッセージのテキストや画像など) を変更する。 |
データエクステンション |
データエクステンションのデータを変更する。 |
日時 |
Marketing Cloud Engagement の日時情報を変更する。 |
暗号化 |
Marketing Cloud Engagement データを暗号化/復号化する。 |
HTTP |
Marketing Cloud Engagement の HTTP 情報を取得、転記、変更する。 |
算術 |
基本的な算術関数を実行する。 |
Microsoft Dynamics CRM |
Microsoft Dynamics CRM データを操作する。 |
Salesforce |
Marketing Cloud Engagement で Sales Cloud データを操作する。 |
サイト |
CloudPages サイトを操作する。 |
ソーシャル |
Email Studio のソーシャル転送機能を操作する。 |
文字列 |
Marketing Cloud Engagement の文字列情報を変更する。 |
ユーティリティ |
Marketing Cloud Engagement データの型を返して評価する。 |
パーソナライズ文字列
AMPscript には、コンテンツ、メールアドレス、動的に値を割り当てる必要がある他の領域に情報を取り込むための簡単な文字列がいくつか用意されています。このパーソナライズ文字列は、送信に使用される Email Studio のリストや送信可能データエクステンションにあるデータを返します。AMPscript 関数を使用して、データエクステンションのコンテンツを他の Marketing Cloud Engagement 関数に返すことができます。
インプレッショントラッキング
AMPscript では、メールメッセージのどのセクションによって送信のパフォーマンスが向上するかを判断できます。文字の羅列だけのメールよりも、猫の写真を交えたメールのほうが注意を引くことを私たちは直感的に理解していますが、その差を統計で証明できるようになりました! ContentArea()
関数または ContentAreaByName()
関数を使用して取り込んだコンテンツの一部を BeginImpressionRegion()
関数と EndImpressionRegion()
関数で囲み、インプレッショントラッキングレポートを使用すると、猫の写真によって評価がどの程度上昇したかを確認できます。
AMPscript でできること
AMPscript の関数を使用して、Marketing Cloud Engagement でさまざまなタスクを実行することができます。とは言うものの、AMPscript の一般的な用途は、Lookup()
や LookupRow()
のようなコールを使用して、データエクステンションからデータを取り込むことです。これらの関数は、指定したデータエクステンションでデータを検索し、関数に含めた値に基づいてフィールドを返します。次の例は、メンバー ID で識別される連絡先が行った購入を検索し、購入情報を記載した行を返します。
%%[ VAR @row SET @row = LookupRows("Purchases","MemberID",@memID)]%%
次の例は、キー値を使用して、メールメッセージ内の Content Builder から取り込まれたコンテンツ領域を取得する方法を示しています。
%%=ContentBlockbyKey("myContentBlock")=%%
この情報を取得したら、各自の目的を達成するためにさまざまな変更や変換を実行できます。
次は、サーバーサイド JavaScript (SSJS) を詳しく見ていきます。