見出し画像

【第12回】 AMPscript を使ってメールに「曜日」を表示する方法

マーケティングメールを作成する際、「日付」を表示するパターンは多くありますが、「曜日」も一緒に表示したい場合があります。

その形式は、英語ではなく、日本語で「日・月・火・水・木・金・土」といった形で表示をする必要がある場合に、どうすれば良いでしょうか。

そこで、今回は Salesforce Marketing Cloud の AMPScript を使って、日本語の「曜日」を表示する方法を紹介します。


■「日付」を表示する AMPscript

まずは、「日付」を表示する AMPscript の方から簡単にお浚いします。

「◯ 年 ◯ 月 ◯ 日」と表示する場合

%%=Format(SystemDateToLocalDate(GetSendTime()),'yyyy年MMMM%d日','Date','ja-JP')=%%

2023 / 01 / 01 のように「0」を含めた形で表示したい場合

%%=Format(DateAdd(Now(),'15','H'),'yyyy/MM/dd','Date')=%%

参考:他の表示の例は、下記 note で確認してください。

ここでタイムゾーンのローカライズが必要になります。AMPscript で修正する際に、SystemDateToLocalDate() を使用するか、DateAdd() を使用するかは、好みの選択で良いと思います。

タイムゾーンの修正について、Marketing Cloud をよく知らない方のために説明しておきますと、日本のタイムゾーンは「JST」(日本標準時)ですが、Marketing Cloud のサーバーがある拠点のタイムゾーンは「CST」(米国中部標準時)です。

この差が 15 時間あるので、ローカライズのため SystemDateToLocalDate() を使用してあげるか、DateAdd() を使用して 15 時間をプラスしてあげることが必要になります

また、日付関数で GetSendTime() を使用するか、Now() を使用するかという問題もあるかと思います。

以下がそれぞれの定義です。

■ GetSendTime() :個別の購読者の送信完了時刻
■ Now():現在のシステム時刻

基本的には、どちらを使っても問題ない認識ですが、VAWP(メールを Web ページとして表示)のリンクを踏んだ場合に状況が変わってきます

メール本文のデータは送信時にレンダリングされるため静的ですが、VAWP のリンクは毎回ページが開かれるたびに最新のデータを取得し、再度レンダリングが行われます。この違いが、GetSendTime()Now() の挙動に影響を与えます。

  • GetSendTime():メール送信時の日時が固定されて表示されます。例えば、2024 年 12 月 25 日に送信したメールは、VAWP で表示してもその日付のままです。

  • Now():ページを開いた時点の日時が表示されます。2024 年 12 月 25 日に送信されたクリスマスメールでも、2025 年 1 月 1 日に VAWP リンクを開けば、その時点の 2025 年 1 月 1 日が表示されます。

どちらも時刻を取得する関数ですが、上記の点には注意して下さい。


■「曜日」を表示する AMPscript

さて、ここで話を本題に戻しますと「曜日」の表示は、以下となります。

「○曜日」を含ませる場合(例:月曜日)

%%=Format(SystemDateToLocalDate(GetSendTime()),'dddd','Date','ja-JP')=%%

「○曜日」を含まない場合(例:月)

%%=Replace(Format(SystemDateToLocalDate(Now()),'dddd','Date','ja-JP'),'曜日','')=%%

「○曜日」を含まない場合は、少し力技ですが、Replace() を使って「曜日」を空欄に置換して除外するという方法を採っています。

このような構文は覚える必要はないと思います。使いたい場合に、このような記事があったことを思い出し、検索でこの記事に戻ってきてください。

追記:2024 年 9 月 9 日
@skykid さんからコメントで、以下の AMPscript でも「○曜日」を含まないの場合が対応できると情報頂きました。ご共有ありがとうございました。
%%=FormatDate(SystemDateToLocalDate(Now()),'dddd','','ja-JP')=%%

今回は以上です。


次の記事はこちら

前回の記事はこちら

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

いいなと思ったら応援しよう!