メインコンテンツへスキップ
見出し画像
Photo bykanam

【第110回】 AMPscript を使って 1 週間ごとに内容が変わるコンテンツブロックを作成する

    Nobuyuki Watanabe

    Salesforce Marketing Cloud を使って、同じ顧客に対して 1 週間に 1 回、全く同じ内容のメッセージを送り続けるシナリオがあったとします。もしそれが毎週続いたら、早々に飽きられてしまい、開封率やクリック率が下がるだけならまだしも、挙句の果てには、購読解除となってしまいますよね。そのような事態を避ける為に「少しでもメールの内容を変えられたら…」と考えたことはありませんか?

    今回はそのような時に使える 1 週間ごとに内容が変わる AMPscript の書き方の紹介です。様々なコンテンツブロックに対して使えるので、自由にアレンジして使ってみてください。

    %%[SET @dateDiff = DateDiff(DateParse('2023-11-05'),SystemDateToLocalDate(Now()),'d')
    SET @weekNumber = FormatNumber(Subtract(Divide(@dateDiff,7),0.49),'N0')]%%
    
    %%[IF @weekNumber == 0 or Mod(@weekNumber,6) == 0 THEN]%%
    %%=ContentBlockById('コンテンツ 1')=%%
    
    %%[ELSEIF @weekNumber == 1 or Mod(@weekNumber,6) == 1 THEN]%%
    %%=ContentBlockById('コンテンツ 2')=%%
    
    %%[ELSEIF @weekNumber == 2 or Mod(@weekNumber,6) == 2 THEN]%%
    %%=ContentBlockById('コンテンツ 3')=%%
    
    %%[ELSEIF @weekNumber == 3 or Mod(@weekNumber,6) == 3 THEN]%%
    %%=ContentBlockById('コンテンツ 4')=%%
    
    %%[ELSEIF @weekNumber == 4 or Mod(@weekNumber,6) == 4 THEN]%%
    %%=ContentBlockById('コンテンツ 5')=%%
    
    %%[ELSEIF @weekNumber == 5 or Mod(@weekNumber,6) == 5 THEN]%%
    %%=ContentBlockById('コンテンツ 6')=%%
    
    %%[ENDIF]%%

    この計算式は下記のような形で、第何週目か(@weekNumber)を集計しています。

    画像

    <注意事項>
    ・このサンプルは 6 週間で 1 回転します。
    ・1 週間が何曜日から開始するかは、1 行目の日付(初日)が持っている「曜日」から開始されます。この例の 2023 年 11 月 5 日は「日曜日」なので「日曜日〜土曜日」単位となります。

    このサンプルを応用すれば 4 週間で 1 回転もできますし、5 週間で 1 回転も可能です。下記を参考にしてください。

    %%[SET @dateDiff = DateDiff(DateParse('2023-11-05'),SystemDateToLocalDate(Now()),'d')
    SET @weekNumber = FormatNumber(Subtract(Divide(@dateDiff,7),0.49),'N0')]%%
    
    %%[IF @weekNumber == 0 or Mod(@weekNumber,4) == 0 THEN]%%
    %%=ContentBlockById('コンテンツ 1')=%%
    
    %%[ELSEIF @weekNumber == 1 or Mod(@weekNumber,4) == 1 THEN]%%
    %%=ContentBlockById('コンテンツ 2')=%%
    
    %%[ELSEIF @weekNumber == 2 or Mod(@weekNumber,4) == 2 THEN]%%
    %%=ContentBlockById('コンテンツ 3')=%%
    
    %%[ELSEIF @weekNumber == 3 or Mod(@weekNumber,4) == 3 THEN]%%
    %%=ContentBlockById('コンテンツ 4')=%%
    
    %%[ENDIF]%%
    %%[SET @dateDiff = DateDiff(DateParse('2023-11-05'),SystemDateToLocalDate(Now()),'d')
    SET @weekNumber = FormatNumber(Subtract(Divide(@dateDiff,7),0.49),'N0')]%%
    
    %%[IF @weekNumber == 0 or Mod(@weekNumber,5) == 0 THEN]%%
    %%=ContentBlockById('コンテンツ 1')=%%
    
    %%[ELSEIF @weekNumber == 1 or Mod(@weekNumber,5) == 1 THEN]%%
    %%=ContentBlockById('コンテンツ 2')=%%
    
    %%[ELSEIF @weekNumber == 2 or Mod(@weekNumber,5) == 2 THEN]%%
    %%=ContentBlockById('コンテンツ 3')=%%
    
    %%[ELSEIF @weekNumber == 3 or Mod(@weekNumber,5) == 3 THEN]%%
    %%=ContentBlockById('コンテンツ 4')=%%
    
    %%[ELSEIF @weekNumber == 4 or Mod(@weekNumber,5) == 4 THEN]%%
    %%=ContentBlockById('コンテンツ 5')=%%
    
    %%[ENDIF]%%

    今回は以上です。


    次の記事はこちら

    前回の記事はこちら

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

     
     
     
    Salesforce Marketing Cloud、Agentforce、Data Cloud、Salesforce 認定資格に関する実践的な情報を発信しています。これらの記事が、皆さまの学習や日々の業務に少しでもお役に立てば幸いです。