Skip to content

対応パーソナライズタグ

このリファレンス記事は、サポートされているリキッドパーソナライゼーションタグの完全なリストをカバーしている。

対応タグの概要

便宜上、サポートされているパーソナライゼーション・タグの概要を示す。各タイプのタグとベストプラクティスの詳細については、引き続きお読みください。

サポートされている属性

キャンペーン、カード、キャンバスの各属性は、対応するメッセージングテンプレートでのみサポートされる(例えば、dispatch_id はアプリ内メッセージキャンペーンでは利用できない)。

詳細については、Braze のソース間におけるこれらの属性の違いに関するヘルプ記事を参照してください。

キャンバスとキャンペーンタグの違い

以下のタグはキャンバスとキャンペーンで動作が異なる:

  • dispatch_id キャンバスステップが”scheduled”の場合でも、キャンバスステップをトリガーされたイベントとして処理するため、ブレーズの動作は異なります(スケジュール設定可能なエントリステップを除く)。詳細については、ディスパッチ ID の動作を参照してください。
  • キャンバスで {{campaign.${name}}} タグを使用すると、キャンバスコンポーネント名が表示されます。このタグをキャンペーンで使用すると、キャンペーン名が表示される。

最近使用されたデバイス情報

すべてのプラットフォームで、ユーザーの最新デバイスの次の属性をテンプレート化できます。ユーザーがアプリケーションを使用していない場合 (REST API 経由でユーザーをインポートした場合など)、これらの値はすべて null になります。

デバイスキャリア、モデル名、およびオペレーティングシステムにはさまざまな種類があるため、これらの値のいずれかに条件付きで依存するLiquid を徹底的にテストすることをお勧めします。特定のデバイスについてこれらの値が該当しない場合、値は null になります。

対象アプリの情報

アプリ内メッセージでは、Liquid内で以下のアプリ属性を使用できる。この値は、アプリがメッセージングをリクエストするために使用する SDK API キーに基づきます。

例えば、このリキッドコードは、リクエストアプリがリストにある2つのAPIキーのうちの1つでない場合、メッセージを中止する:

1
2
3
4
5
6
{% assign allowed_api_keys = 'sdk_api_key_1,sdk_api_key_2' | split: ',' %}
{% if allowed_api_keys contains {{app.${api_id}}} %}
User is in list of apps
{% else %}
{% abort_message("User not in list of apps") %}
{% endif %}

ターゲットデバイス情報

プッシュ通知およびアプリ内メッセージチャネルの場合、メッセージの送信先デバイスの以下の属性でテンプレートを作成できます。つまり、プッシュ通知またはアプリ内メッセージに、メッセージが表示されているデバイスのデバイス属性を含めることができます。これらの属性はコンテンツカードでは機能しないことに注意しよう。

デバイスキャリア、モデル名、およびオペレーティングシステムにはさまざまな種類があるため、これらの値のいずれかに条件付きで依存するロジックを徹底的にテストすることをお勧めします。特定のデバイスについてこれらの値が該当しない場合、値は null になります。

さらに、プッシュ通知では、プッシュトークンが API を介してインポートされた場合など、特定の状況下で Braze がプッシュ通知に添付されたデバイスを判別できないことがあります。その結果、これらのメッセージの値は null になります。

プッシュ・メッセージでファーストネーム変数を使うときにデフォルト値「there」を使う例。

デフォルト値の代わりに条件付きロジックを使う

状況によっては、デフォルト値を設定する代わりに条件付きロジック]を使用することもできます。条件付きロジックでは、カスタム属性の値によって異なるメッセージを送信することができる。さらに、条件付きロジックを使用して、NULL または空白の属性値を持つ顧客へのメッセージを中止できます。

ユースケース

たとえば、顧客に報酬残高通知を送信するとします。低い残高と NULL 残高を持つ顧客を考慮するために、デフォルト値を使用する適切な方法はありません。

この場合、デフォルト値を設定するよりも効果的なオプションが2つある:

  1. 残高が少ない、null、および空白の顧客に対するメッセージを中止します。

    1
    2
    3
    4
    5
    
    {% if {{custom_attribute.${balance}}} > 0 %}
    Your rewards balance is {{custom_attribute.${balance}}}
    {% else %}
    {% abort_message() %}
    {% endif %}
    
  2. このような顧客には、まったく別のメッセージを送ろう:

    1
    2
    3
    4
    5
    
    {% if ${first_name} != blank and ${first_name} != null %}
    Hello {{${first_name} | default: 'there'}}, thanks for downloading!
    {% else %}
    Thanks for downloading!
    {% endif %}
    

このユースケースでは、名が空白または NULL のユーザーは「Thanks for downloading」というメッセージを受け取ります。顧客の名にはデフォルト値を含めて、間違いがあった場合に Liquid が表示されないようにする必要があります。

可変タグ

メッセージ作成画面で、assign タグを使用して変数を作成できます。変数には一意の名前を使用することをお勧めします。サポートされているパーソナライゼーションタグ(language など) と同じ名前の変数を作成すると、メッセージングロジックに影響する可能性があります。

変数を作成したら、メッセージング・ロジックやメッセージの中でその変数を参照できる。このタグは、Connected Content ]機能から返されたコンテンツを再フォーマットしたいときに便利だ。詳しくは、Shopifyの変数タグに関するドキュメントを参照されたい。

ユースケース

例えば、顧客が 100 ポイントの報酬ポイントを獲得した後に、報酬ポイントを換金できるようにするとします。つまり、追加購入をした場合、ポイント残高が100以上になる顧客だけにメッセージを送りたいわけだ:

1
2
3
4
5
6
{% assign new_points_balance = {{custom_attribute.${current_rewards_balance} | plus: 50}} %}
{% if new_points_balance >= 100 %}
Make a purchase to bring your rewards points to {{new_points_balance}} and cash in today!
{% else %}
{% abort_message('not enough points') %}
{% endif %}

反復タグ

反復タグは、コードのブロックを繰り返し実行するために使うことができる。以下のユースケースでは、for タグを使用している。

ユースケース

例えば、ナイキのスニーカーのセールを開催し、ナイキに興味を示した顧客にメッセージを送信するとします。各顧客のプロファイルには、さまざまな商品ブランドの配列が表示されます。この配列には、最大 25 の製品ブランドが含まれている可能性がありますが、最新の製品ビュー 5 つのうち、その 1 つとしてナイキ製品を表示した顧客にのみメッセージを送信します。

1
2
3
4
5
6
7
8
9
10
{% for items in {{custom_attribute.${Brands Viewed}}} limit:5 %}
{% if {{items}} contains 'Converse' %}
{% assign converse_viewer = true %}
{% endif %}
{% endfor %}
{% if converse_viewer == true %}
Sale on Converse!
{% else %}
{% abort_message() %}
{% endif %}

このユースケースでは、閲覧されたスニーカーブランドの配列の最初の5項目をチェックする。これらの項目のいずれかがコンバージョンであれば、converse_viewer 変数を作成し、それをtrueに設定する。

そして、converse_viewer が true のときにセールメッセージを送信します。それ以外の場合は、メッセージを中止します。

これは、Brazeメッセージコンポーザーでの反復タグの使い方の簡単な例である。詳細については、Shopify の反復タグのドキュメントを参照してください。

構文タグ

構文タグを使用して、Liquid のレンダリング方法を制御できます。echo タグを使用して式を返すことができます。これは、中括弧を使って式をラップするのと同じだが、リキッドタグの中でこのタグを使うことができる。また、liquid タグを使用して、各タグに区切り文字を使用せずにLiquid のブロックを設定することもできます。liquid タグを使用する場合、各タグは個別の行に配置する必要があります。より詳細な情報と例については、Shopifyの構文タグに関するドキュメントをチェックしよう。

空白コントロールを使用すると、タグの周りの空白を削除でき、Liquid 出力の外観をさらにコントロールするために役立ちます。

HTTPステータスコード

コネクテッドコンテンツの呼び出しから HTTP ステータスを使用するには、まず HTTP ステータスをローカル変数として保存してから、__http_status_code__ キーを使用します。以下に例を示します。

1
2
3
4
{% connected_content https://example.com/api/endpoint :save connected %}
{% if connected.__http_status_code__ != 200 %}
{% abort_message('Connected Content returned a non-200 status code') %}
{% endif %}

言語、最新のロケール、タイムゾーンに基づいてメッセージを送信する

状況によっては、特定のロケールに固有のメッセージを送信したい場合があります。例えば、ブラジルのポルトガル語は一般的にヨーロッパのポルトガル語とは異なる。

ユースケース:最新のロケールに基づいてローカライズする

ここでは、最新のロケールを使用して、国際化されたメッセージをさらにローカライズする方法について説明します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{% if ${language} == 'en' %}
Message in English
{% elsif  ${language} == 'fr' %}
Message in French
{% elsif  ${language} == 'ja' %}
Message in Japanese
{% elsif  ${language} == 'ko' %}
Message in Korean
{% elsif  ${language} == 'ru' %}
Message in Russian
{% elsif ${most_recent_locale} == 'pt_BR' %}
Message in Brazilian Portuguese
{% elsif ${most_recent_locale} == 'pt_PT' %}
Message in European Portuguese
{% elsif  ${language} == 'pt' %}
Message in default Portuguese
{% else %}
Message in default language
{% endif %}

このユースケースでは、直近のロケールがpt_BR の顧客にはブラジル系ポルトガル語のメッセージが、直近のロケールがpt_PT の顧客には欧州系ポルトガル語のメッセージが表示される。最初の 2 つの条件を満たさないが、言語をポルトガル語に設定している顧客は、お客様がデフォルトに設定したポルトガル語のタイプでメッセージを受け取ります。

ユースケース:タイムゾーン別のターゲットユーザー

また、タイムゾーンでターゲットのユーザーを設定することもできます。例えば、EST のユーザーにはあるメッセージ、PST のユーザーには別のメッセージを送信します。そのためには、現在時刻をUTCで保存し、if/else文でユーザーの現在時刻と比較し、適切なタイムゾーンに適切なメッセージを送信する。ユーザーのローカルタイムゾーンでキャンペーンを送信するように設定し、適切な時間にキャンペーンを提供する必要がある。

午後2時から3時の間に発信され、各タイムゾーンに固有のメッセージを書く方法については、以下のユースケースを参照のこと。

1
2
3
4
5
6
7
8
{% assign hour_in_utc = 'now' | date: '%H' | plus:0 %}
{% if hour_in_utc >= 19 && hour_in_utc < 20 %}
It is between 2:00:00 pm and 2:59:59 pm ET!
{% elsif hour_in_utc >= 22 && hour_in_utc < 23 %}
It is between 2:00:00 pm and 2:59:59 pm PT!
{% else %}
{% abort_message %}
{% endif %}
「このページはどの程度役に立ちましたか?」
New Stuff!