プログラミング言語での最適なスクリプトの記述
学習の目的
この単元を完了すると、次のことができるようになります。
- AMPscript、SSJS、GTL を最も適した状況で使用する。
- プログラミング言語のトラブルシューティングを行う。
- メッセージの「Web ページとして表示」機能を保持する。
Marketing Cloud Engagement の各種のプログラミング言語の概要を学んだため、開発プロセスのどの状況でこれらのツールを使用すべきかを判断することができます。どの言語にもそれぞれメリットがあり、特定の状況で他の言語よりも役立ちます。まずは、全言語に共通するベストプラクティスから見ていきましょう。
すべての言語
どの言語を使用するかに関係なく、Marketing Cloud Engagement のアプリケーションは送信プレビューとマークアップ検証を備えています。スクリプトを送信に配置する前に必ずテストして、すべて機能することを確認します。Marketing Cloud Engagement ではエラーのあるコンテンツが送信されませんが、求めている結果が得られることを自身で確認することも大切です。新しいメッセージやアクティビティをリリースする前に、テスト送信を実行します。
NotSent トラッキング抽出に、送信されなかったメールメッセージと、送信が阻止された詳しい原因などの情報が表示されます。この情報を参考に送信を調整します。
AMPscript と SSJS の一部の関数は API 関数にアクセスするものであるため、スクリプトをテストして生成するユーザーに、API とやりとりする適切な権限があることを事前に確認しておきます。サポートが必要な場合は、Marketing Cloud Engagement 管理者にお問い合わせください。
メールメッセージには、HTML コンテンツをメールクライアントの外部で表示できる「Web ページとして表示」オプションがあります。ただし、プログラミング言語は動的コンテンツも処理できるため、メールが転送される場合や同じメールメッセージが何回も送信される場合に、メールメッセージの旧バージョンが参照され、実行した変更がまったく反映されないことがあります。Web ページにも、実際に送信されたメッセージのスナップショットが表示されるのではなく、情報が動的に読み込まれます。こうした状況を回避するために、送信の BatchID をスクリプトで参照して、適切なメールメッセージが Web ページに表示されるようにします。
AMPscript
AMPscript は、メールメッセージをはじめ、Marketing Cloud Engagement の最多の機能にアクセスできます。また、SOAP API とも緊密に連携します。時間を割いてこの複雑な言語を学習すれば、Marketing Cloud Engagement のさまざまな機能を使いこなせるようになります。AMPscript は Marketing Cloud Engagement に保存されている購読者リストとデータエクステンションで最大限の機能を発揮します。
AMPscript の大部分を占めるのがデータエクステンションからの情報の取り込みで、通常は Lookup()
関数や LookupRows()
関数を伴います。データエクステンションに対するコールごとに時間と処理能力を要するため、こうした関数を使用するときは、1 回のコールでできるだけ多くのデータを取得するようにします。複数のフィールドに対して複数の Lookup() コールを実行するのではなく、1 回の LookupRows() 要求でレコード全体を取り込み、そこからデータを取得します。
また、AMPscript の一部の機能は、アカウント内で使用する前に有効にしておく必要があります。たとえば、AttachFile() はアカウントで有効にしないと使用できません。さらに有効にした後も、メッセージにファイルを添付するときは注意を払います。スパムフィルターによってファイルが添付されたメッセージがブロックされることがあります。また、大きな添付ファイルのある送信に時間や処理能力がとられることもあります。関数のドキュメントを確認し、アクティビティに含める前にアカウントで使用できることを確認します。
SSJS
SSJS では、AMPscript の大半の関数を JavaScript によく似た機能として使用できます。この例として、SOAP API との連携が挙げられます。Marketing Cloud Engagement で使用したいデータに配列が必要な場合や JSON 形式の場合は、SSJS を使用するとそうしたデータを簡単に利用できます。
最適なパフォーマンスを得るために、コア関数の使用はランディングページとアプリケーションに限定します。メッセージやその他の送信時のアクティビティの処理にはプラットフォーム関数が適しています。
SSJS はまた、try catch ブロックなどのエラー処理の拡張機能を備えています。こうした確認が必要な場合は、メッセージに SSJS を実装します。
GTL
各種のメッセージ用に軽量テンプレートを作成する場合は、GTL が対応します。この言語は Handlebars.js や Moustache.js ライブラリに似ているため馴染みやすく、数個のタグでパーソナライズされたテンプレートを作成できます。GTL も、データエクステンションに保存されている JSON データや、送信時に提供される JSON データにアクセスできます。GTL は AMPscript や SSJS と併用できるほか、独自に使用することもできます。
まとめ
メッセージ、ランディングページ、その他のアセットはすべて、拡張された機能やパーソナライズを使用することでメリットがあります。こうした言語を使用すれば、購読者がまさに求めている内容を届けることができます。また、多くの時間や労力を要する可能性のあるさまざまな一般的なタスクを自動化することで、あなた自身にも役立ちます。
最後に、Salesforce StackExchange はスクリプトのトラブルシューティング時に役立つ優れた情報源です。以前の問題を検索し、誰かがかつて発見したものとは異なるものを見つけたと思われるときは投稿してください。誰かもその同じ問題に直面していたものと考えられるからです。