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

【第90回】 AMPscript の IF ステートメントで「あいまい検索」を使用する方法

    Nobuyuki Watanabe

    本日ご紹介するのは Salesforce Marketing Cloud の AMPscript の IF ステートメントで「あいまい検索」を使用する方法です。

    IF ステートメントの基本型は下記のような形かと思います。

    %%[IF ***** THEN]%%
    %%=ContentBlockById("")=%%
    
    %%[ELSEIF ***** THEN]%%
    %%=ContentBlockById("")=%%
    
    %%[ELSE]%%
    %%=ContentBlockById("")=%%
    
    %%[ENDIF]%%

    この ***** の部分に条件が入るわけですが、例えば「誰と住んでいるか」(live_together)というフィールドがあり、その値が「配偶者,子,孫」のようにカンマ区切りの複数入力ありの形で格納されているとします。

    画像

    ここで AMPscript の IF ステートメントを使って「孫」と住んでいる人に掲出するためのコンテンツを出し分けることを考えます。これには「孫」単体でフィールドに格納されている人だけではなく、例えば「配偶者,子,孫」や「配偶者,孫」と格納されている人も含めたいという意図があります。

    画像

    ここで、以下のような設定にしてしまうと「孫」だけがフィールドに格納されている人のみが含まれ、「配偶者,子,孫」や「配偶者,孫」が格納されている人は含まれなくなります。

    live_together == '孫'

    そこで「あいまい検索」が必要になります。 IndexOf 関数を使用します。

    IndexOf([live_together],'孫') > 0

    IndexOf 関数とは、指定した文字列を検索して、もしその文字列がヒットした場合は、その開始位置を「1」以上の数字で返します。そこで 数式 1 > 0 の条件が成立し、この条件が True となるわけですね。

    これを使うと、例えば「live_together」フィールドに「孫」が含まれている場合はコンテンツ ID = 123 を優先的に表示し、次の優先として「子」が含まれている場合はコンテンツ ID = 456 を表示し、最後に「孫」も「子」も含まれていない場合はコンテンツ ID = 789 を表示することができるようになります。

    %%[IF IndexOf([live_together],"孫") > 0 THEN]%%
    %%=ContentBlockById("123")=%%
    
    %%[ELSEIF IndexOf([live_together],"子") > 0 THEN]%%
    %%=ContentBlockById("456")=%%
    
    %%[ELSE]%%
    %%=ContentBlockById("789")=%%
    
    %%[ENDIF]%%

    是非、活用してみてください。

    今回は以上です。


    次の記事はこちら

    前回の記事はこちら

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

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