Skip to content

デフォルト値を設定する

既定のフォールバックは、メッセージで使用する任意のパーソナライゼーション 属性に設定できます。この記事では、デフォルト値の仕組み、設定方法、メッセージングでの使用方法について説明する。

どのように機能するか

デフォルト値を追加するには、Liquid フィルターを「デフォルト」という名前で指定します (インラインでフィルターを区別するには | を使用します)。

1
| default: 'Insert Your Desired Default Here'

デフォルト値が提供されておらず、フィールドが存在しないか、ユーザーに設定されていない場合、メッセージの中でフィールドは空白になる。

次の例は、デフォルトを追加するための正しい構文を示しています。この場合、ユーザーのfirst_name フィールドが空の場合や利用できない場合は、「Valued User」という文字が属性{{ ${first_name} }} に置き換わる。

1
Hi {{ ${first_name} | default: 'Valued User' }}, thanks for using the App!

Janet Doe という名前のユーザーには、次のいずれかの方法でメッセージが表示されます。

1
Hi Janet, thanks for using the App!

または。。。

1
Hi Valued User, thanks for using the App!

異なるデータ型にデフォルト値を設定する

上の例は、文字列にデフォルトを設定する方法を示している。emptynil (未定義)、false (文字列、ブーリアン、配列、オブジェクト、数値を含む)の値を持つ任意のLiquidデータ型にデフォルト値を設定することができる。

ユースケース:ブール値

例えば、premium_user というブーリアンカスタム属性があり、ユーザーのプレミアムステータスに基づいてパーソナライズされたメッセージを送信したいとしよう。プレミアムステータスを設定していないユーザーもいるので、そのようなユーザーを捕捉するためにデフォルト値を設定する必要がある。

  1. premium_user 属性にis_premium_user という変数を割り当て、デフォルト値をfalse とする。つまり、premium_usernil の場合、is_premium_user の値はfalse がデフォルトとなる。
1
{% assign is_premium_user = {{custom_attribute.${premium_user}}} | default: false %}

2.次に、条件付きロジックを使用して、is_premium_usertrue の場合に送信するメッセージを指定する。言い換えれば、premium_usertrue の場合、何を送ればいいのか、ということだ。また、ユーザー名がわからない場合に備えて、ユーザーの名にもデフォルト値を割り当てておく。

1
2
{% if is_premium_user %}
Hi {{${first_name} | default: 'premium user'}}, thank you for being a premium user!

3.最後に、is_premium_userfalse の場合(つまり、premium_userfalse またはnil の場合)に送信するメッセージを指定する。そして条件ロジックを閉じる。

1
2
3
{% else %}
Hi {{${first_name} | default: 'valued user'}}, consider upgrading to premium for more benefits!
{% endif %}
フルリキッドコード
1
2
3
4
5
6
{% assign is_premium_user = {{custom_attribute.${premium_user}}} | default: false %}
{% if is_premium_user %}
Hi {{${first_name} | default: 'premium user'}}, thank you for being a premium user!
{% else %}
Hi {{${first_name} | default: 'valued user'}}, consider upgrading to premium for more benefits!
{% endif %}

ユースケース:数値

例えば、reward_points という数値のカスタム属性があり、ユーザーの報酬ポイントをメッセージとして送信したいとしよう。報酬ポイントが設定されていないユーザーもいるので、そのようなユーザーを考慮してデフォルト値を設定する必要がある。

  1. メッセージの冒頭には、ユーザーの名か、名前がわからない場合のデフォルト値Valued User を指定する。
1
Hi {{${first_name} | default: 'valued user'}},

2.reward_points というカスタム属性を使用し、デフォルト値0 を使用することで、ユーザーの報酬ポイント数をメッセージの最後に記載する。reward_points の値がnil であるすべてのユーザーには、0 の報酬ポイントがメッセージに記載される。

1
Hi {{${first_name} | default: 'valued user'}}, you have {{custom_attribute.${reward_points} | default: 0}} reward points.

ユースケース:オブジェクト

例えば、citystate のプロパティを含む、location という階層化カスタム属性オブジェクトがあるとしよう。これらのプロパティが設定されていない場合は、ユーザーが設定するように促したい。

  1. ユーザーを名で呼び、名前がわからない場合に備えてデフォルト値を含める。
1
Hi {{${first_name} | default: 'valued user'}},

2.ユーザーの位置情報を確認したいというメッセージを書く。

1
We'd like to confirm the location associated with your account. We use this location to send you promotions and offers for stores nearest you. You can update your location in your profile settings.

3.ユーザーの所在地をメッセージに挿入し、addressプロパティが設定されていない場合のデフォルト値を割り当てる。

1
2
3
Your location:
City: {{custom_attribute.${address.city} | default: 'Unknown'}}
State: {{custom_attribute.${address.state} | default: 'Unknown'}}
フルリキッドコード
1
2
3
4
5
6
7
Hi {{${first_name} | default: 'valued user'}}

We'd like to confirm the location associated with your account. We use this location to send you promotions and offers for stores nearest you. You can update your location in your profile settings.

Your location:
City: {{custom_attribute.${address.city} | default: 'Unknown'}}
State: {{custom_attribute.${address.state} | default: 'Unknown'}}

ユースケース:配列

例えば、destinationdeparture_date というプロパティを持つトリップを含む、upcoming_trips という配列カスタム属性があるとしよう。スケジュールされた旅行の有無に基づき、パーソナライズされたメッセージをユーザー群に送りたい。

  1. upcoming_tripsempty の場合、メッセージを送信しないことを指定する条件付きロジックを書く。
1
2
{% if {{custom_attribute.${upcoming_trips}}} == empty %}
{% abort_message('No upcoming trips scheduled') %}

2.upcoming_trips にコンテンツがある場合に送信するメッセージを指定する:

2a.ユーザーの名前を入力し、デフォルト値を含める。
2b.upcoming_trips に含まれる各トリップのプロパティ(または情報)をプルすることを指定するには、for タグを使用する。
2c.メッセージにプロパティを列挙し、departure_date が設定されていない場合のデフォルト値を含める。(トリップの作成にはdestination が必要なので、デフォルト値を設定する必要はないとしよう)。
2d.for タグを閉じ、次に条件ロジックを閉じる。

1
2
3
4
5
6
7
8
9
10
11
12
{% else %}
Hello {{${first_name} | default: 'fellow traveler'}},
  Here are your upcoming trips:
  <ul>
  {% for trip in {{custom_attribute.${upcoming_trips}}} %}
    <li>
      Destination: {{trip.destination}}
      Departure Date: {{trip.departure_date | default: 'Date not set'}}
    </li>
  {% endfor %}
  </ul>
{% endif %}
フルリキッドコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{% if {{custom_attribute.${upcoming_trips}}} == blank %}
{% abort_message('No upcoming trips scheduled') %}
{% else %}
Hello {{${first_name} | default: 'fellow traveler'}},
  Here are your upcoming trips:
  <ul>
  {% for trip in {{custom_attribute.${upcoming_trips}}} %}
    <li>
      Destination: {{trip.destination}}
      Departure Date: {{trip.departure_date | default: 'Date not set'}}
    </li>
  {% endfor %}
  </ul>
{% endif %}
「このページはどの程度役に立ちましたか?」
New Stuff!