動的変数に基づいてテンプレートのブロックとセクションを表示または非表示にする方法
このページで学べること
テンプレート エディターの表示/非表示ロジック ビルダーを使用して、特定の受信者に対してのみメール内の特定のブロックまたはセクションを表示する方法を確認してください。
これを使用すると、例えば、特定のロイヤルティ階層にいる購読者や特定の商品を購入した購読者に対して、異なるコンテンツを表示できます。この機能を使用すると、購読者に関する情報に基づいてメールのコンテンツをターゲティングできるため、各受信者に高度にパーソナライズされたマーケティング体験を提供できます。
始める前に
次に基づいてコンテンツの表示/非表示を切り替えられます:
- プロファイルデータ(例:プロファイルまたはカスタムプロパティ)
- イベント変数、ただし以下の場合に限ります:
- イベントトリガー(メトリックトリガーとも呼ばれます)フロー
- カスタムコードでの表示/非表示ブロック
メールを作成する前に、アカウント内に必要なデータがある必要があります。つまり、使用したいプロパティを持つイベントまたはプロファイルが 1 つ必要です。
プロファイルデータの使用
プロファイルデータ(例:場所、言語など)に基づいて条件を表示/非表示にしたい場合は、そのデータを含むプロファイルが少なくとも 1 つ必要です。
プロファイルとカスタムプロパティは、次の方法で追加できます:
- サインアップフォーム
- CSV アップロード
- E コマース連携
- Typeform や Yotpo などのリスト増加とロイヤルティの外部連携を一覧表示します。
Klaviyo のプロファイルプロパティについて詳しくは、こちらをご覧ください。
イベントプロパティの使用
同様にイベントプロパティでも、Klaviyo アカウントに 1 つのイベントが必要です。次に、カスタムコード ブロックを使用して、そのフローのトリガー イベントに基づきブロックを表示/非表示にできます。ロジックビルダーを使用してイベントデータを参照することはできません。
そのため、トリガーが「チェックアウト開始」であるカゴ落ち フローでは、カゴの金額や顧客が追加した特定の商品に基づいて表示/非表示の条件を作成できます。
メッセージを作成する
表示/非表示ロジックビルダーは、テキスト、数値、リストとしてフォーマットされたプロファイルデータをサポートしています。イベントデータ、日付、またはブール値はサポートしていません。表示/非表示の条件でサポートされていないデータを使用する場合は、カスタムコードを使用して条件を記述してください。
- メールテンプレートにブロックまたはセクションを追加します。
- [表示] タブを選択します。

- 表示/非表示ロジック の下で、[ロジック ビルダーを使用] を選択します。
- 条件を選択してください。
- 単一の条件を 1 つの条件で作成することも、AND または OR で接続された複数の条件を使ってより複雑な条件を作成することもできます。AND と OR のコネクターの違いについて詳細はこちら。
- 必要に応じて、[条件を追加] ボタンを使用して追加の条件を追加します。
- [Save] を選択します。
セクションとそのセクション内のブロックの両方で表示/非表示ロジックを使用すると、設定が相互に作用して競合が発生する場合があります。詳しくは、表示オプションに関する記事をご覧ください。
表示/非表示の条件における AND と OR
表示/非表示ロジックを評価する際、AND で接続された条件は、OR で接続された条件より先に評価されます。意図どおりに解釈されるように、ロジックを書く際には評価される順序を考慮してください。
例として、次の条件を検討してください:

これらの条件に従って、サンプル受信者に対してブロックが表示されるかどうかを確認してください:
受信者 | ブロックは表示されますか? | なぜですか? |
ジェーン loyalty_points = 145 好きな色 = 緑 好きな果物 = バナナ | いいえ | Jane は、お気に入りの色が blue である場合、またはお気に入りの果物が banana である場合に、条件を満たす可能性があります。 |
Alex 好きな色 = 青 好きな果物 = りんご | いいえ | Alex は、より多くのロイヤルティポイントがあれば、または好きな果物が キウイ であれば、対象になる可能性があります。 |
Amanda 好きな色 = 青 Favorite fruit = pomegranate | はい | アマンダはロイヤルティポイントが >99 で、好きな色が 青 のため、条件を満たします。OR 演算子の反対側で両方の条件を満たしているため、好きな果物は考慮されません。 |
Stephanie Favorite color = orange お気に入りのフルーツ = キウイ | はい | Stephanie qualifies because her favorite fruit is kiwi.The other conditions are not considered because she meets the criteria on one side of the OR operator. |
ブロックの表示/非表示のユースケース
ロイヤルティプログラム バナー
ロイヤルティプログラムがある場合は、アクティブな参加者に現在のポイント数を表示します。まだプログラムにサインアップしていない連絡先に対しては、参加のインセンティブを提供します。これを設定するには、バナーが 2 つ必要です。
アクティブなロイヤルティプログラム参加者に、次の表示/非表示条件を使用してバナーを表示します:
ロイヤルティポイント > は 0 より大きい

この条件で見込み客にバナーを表示します:
loyalty_points > が設定されていません

自身のアカウントで利用できるデータに基づいて、条件を調整する必要がある場合があります。
パーソナライズされた画像
購読者がプロダクトをどのように使用しているかに関する情報を収集している場合は、関連性のある画像を表示します。
たとえば、バックパックを販売するブランドであれば、購読者が通勤、旅行、ハイキングのどれに使用しているかを質問することがあります。回答に応じて、このブランドはそれらの環境で商品画像を表示できます。
これを設定するには、異なる 3 つの設定で商品を表示する 3 つの画像ブロックが必要です。
次の条件で、通勤中にバックパックを背負って自転車に乗る人の画像を通勤者に表示します:
バッグの好み = 通勤

次の条件を使用して、混雑した空港でバックパックの写真を旅行者に表示します:
バッグの希望 = Travel

この条件で、景色の良い屋外の風景の中にあるバックパックの写真を他の全員に表示します:
バッグの好み>次と等しくない>Travel AND バッグの好み>次と等しくない>Commuting

最後の画像はハイカーだけを対象としているわけではありません。通勤者や旅行者ではないユーザーには誰でも表示されます。このプロパティが設定されていない受信者がいる可能性も考慮し、誰にとってもメールが見栄え良く表示されるようにすることが重要です。
商品固有の注意事項
フローのトリガーイベント内からアイテムを参照するには、カスタムコードを使用する必要があります。
カート放棄者に商品固有の情報を伝え、購入判断に影響する可能性がある重要な情報を提供します。例えば、商品が在庫切れ間近の場合、次の条件で、その商品がカートに入っている人にのみ表示される在庫僅少の警告を含むテキスト ブロックを追加します。
ITEM_NAME in event.Items

地域別のメッセージ
場所に固有の条件ではテキストのみを評価でき、郵便番号からの距離は評価できません。この条件を使用すると、実店舗のポップアップショップと同じ町に住む人など、特定のエリアに住む居住者にカスタムバナーを表示できます:
City = Boston

表示/非表示ブロックのトラブルシューティング
表示/非表示ブロックが想定どおりにレンダリングされない場合は、コードに変換ボタンを使用して、ビルダーのロジックをコードに変換してください。そこから、想定どおりにレンダリングされるようにコードを確認して調整できます。
ロジックをコードに変換することは元に戻せません。
トラブルシューティングを行う際は、条件値に使用されているデータ型が、参照しているプロファイル内のデータ型と同じであることを確認してください。たとえば、数値の 22 はテキスト値の “22” とは異なります。条件が Number に設定されていても、値がプロファイル上でテキストとして保存されている場合、条件を正しく評価できません。
テキストを数値に変換する
数値プロパティがあるものの、プロファイル内でテキストとして保存されている場合は、|multiply フィルターを使用してカスタムコードフィールド内で数値に変換できます。これを使用するには、変数名の直後にフィルターを追加します。
person.Birthday|multiply:"1" > 21
テキストとして保存されたブール値
true/false データがブール値ではなくテキストとして保存されている場合、またはブール値とテキストの両方を含むプロパティを参照している場合は、これらの構造を使用してすべてのシナリオに対応できます。データに含まれているすべてのスペルと大文字・小文字を含めてください。
サンプル条件 | 次の場合にブロックを表示... |
person|lookup:'VIP' == 1 or person|lookup:'VIP' == 'true' or person|lookup:'VIP' == 'True' | VIP プロパティは、ブール値 true、または文字列 true もしくは True に設定されます。 |
person|lookup:'VIP' == 0 or person|lookup:'VIP' == 'false' or person|lookup:'VIP' == 'False' | VIP プロパティは、ブール値の false、または文字列の false もしくは False に設定されます。 |
プロパティ内の英数字以外の文字
表示/非表示ブロックで参照されるプロパティまたは値に英数字以外の文字(例:=、 などの記号)が含まれている場合、条件はサポートされず、エラー メッセージが表示されます。最良の結果を得るには、文字(大文字または小文字、大小文字を区別)、数字、アンダースコア(_)、またはダッシュ(-)のみを使用してください。
カスタムコーディングによるブロックの表示/非表示
より細かく制御したい場合、またはイベントデータ、日付、ブール値を使用して条件を作成したい場合は、ロジック ビルダーを使用するのではなく、表示/非表示ブロックをカスタム コードで作成してください。コードを使用して最初から作成するには、表示/非表示ロジック設定で [コードを使用] ボタンを選択してください。

または、[Convert to code] ボタンで既存の表示/非表示条件をコードを使用するように変換します。
ロジックをコードに変換することは元に戻せません。
コードを使用する場合は、Django、プログラミングロジック、Klaviyo のデータ型について十分に理解していることを確認してください。Klaviyo のサポートチームは、カスタム コードに対する直接のサポートまたはトラブルシューティングを提供できません。
対応している 条件構造 について詳細はこちら。
イベントデータに基づく表示/非表示条件
メールがイベントトリガー型フロー(例:カゴ落ちフローや注文確認フロー)の一部として送信される場合、そのフローのトリガーイベントの詳細に基づいてブロックを表示/非表示にできます。そのため、トリガーがチェックアウト開始のカゴ落ちフローでは、カートの金額や顧客が追加した特定の商品に基づいて、表示/非表示の条件をカスタムコードで設定できます。イベント変数について詳しくはこちら。
データの保存方法を理解する
表示/非表示の条件を設定する前に、データがどのように保存されているかを確認してください。Klaviyo には 5 つの データ型 があります:
- テキスト
- 数字
- 日付
- ブール型
- リスト
データの保存方法は、どの表示/非表示条件が機能するかに影響します。自身のアカウントでデータタイプを特定する方法をご覧ください。
メッセージを作成する
メッセージにカスタムコードの表示/非表示条件を追加する最初のステップは、メールテンプレートを作成することです。このセクションでは具体的な例を通して説明しますが、同じ手順に従って、独自の条件に基づいて任意のブロックが表示されるように設定できます。
たとえば、貴社がレザーバッグを販売している場合、以下に示すように サインアップフォームで、顧客がバッグをどのように使うかに関する好みを収集できます。

その後、お客様のバッグの好みに基づいて異なる画像を表示できます。たとえば、お客様の好みが "Work" の場合、バッグはノートパソコンの隣の画像に表示されます。お客様の好みが "Outdoors" の場合、バッグはハイキング トレイルの景勝地の見晴らしポイント付近に表示されます。
- キャンペーンまたはフローのメッセージを作成します。
- 画像ブロックを追加します。
- 作業に関連する画像をブロックにアップロードします。
- 画像ブロックのカスタマイズメニューから [表示] をクリックします。
- Show/hide logic で、[Use code] を選択します。
- この条件を追加します:person|lookup:'Bag Preference' == 'Work'。
- [変更を保存] をクリックします。
- ブロックで [完了]をクリックします。
このブロックは、優先設定として [Work] を選択した人にのみ表示されます。
次に、仕事に関連する画像の下の新しいブロックに、旅行に関連する画像を追加します。前回と同じ手順に従いますが、今回は条件 person|lookup:'Bag Preference' == 'Outdoors' を使用します。
このブロックは、好みとして「アウトドア」を選択した人にのみ表示されます。

最後に、「Work」と「Outdoors」のいずれも選択していない人に表示する画像を追加します。より汎用的な画像を使用し、次の条件を使用してください:person|lookup:'Bag Preference' != 'Work' および person|lookup:'Bag Preference' != 'Outdoors'。
ここで、!= は「等しくない」を意味するため、この条件では「仕事」または「アウトドア」以外を選択した人、または好みを一度も選択していない人を探します。

各ブロックを設定したら、3 つのプロファイルを使用してメッセージをプレビューします。これらのプロファイルは、各画像条件のいずれか 1 つを満たす購読者である必要があります。
- 「Outdoors」を選択した顧客
- 「仕事」を選択した顧客
- 設定なし/その他の設定のお客様
これらの手順を使用すると、アカウント内の任意のプロファイルデータまたはイベントデータに基づいてブロックを表示または非表示にできます。
プロファイルデータで表示/非表示条件を作成する
プロファイルプロパティに基づいてカスタムコードの表示/非表示条件を作成している場合は、条件付きロジック リファレンス の表にあるサンプル変数(例: person|lookup:'Favorite Color')を、ご自身のプロファイルプロパティに置き換えてください。
使用する正しい変数を見つけるには:
- Personalization をクリックして、パーソナライゼーション メニューを開きます。
- メニューからオプションを選択して、テキストブロックに追加します。
- タグ内から変数名をコピーします。変数名を特定するには、変数の前後にある中かっこを削除し、末尾の |default:''(存在する場合)と、その他のフィルターも削除します。
例えば、以下のスクリーンショットでは、完全なタグは {{ person|lookup:"Accepts Marketing"|default:"" }} です。変数名は person|lookup:"Accepts Marketing" なので、その部分を選択して表示/非表示条件で使用します。
イベントデータを使用して表示/非表示の条件を作成
メッセージがイベントトリガーのフローの一部である場合、イベントデータを使用してブロックを表示または非表示にできます。表示/非表示条件で使用できるのは、トリガーイベント内のデータのみです。
イベント変数を識別するには:
- テンプレートエディタで [プレビュー & テスト] をクリックします。
- [データソースのプレビュー] で [イベント] をクリックします。
- ドロップダウンメニューから、作成しているメッセージをトリガーするイベントを選択します。
- [イベントプロパティ] をスクロールして、含めたいデータを見つけます。
- プロパティ名をクリックしてタグをコピーします。
- タグをテキストブロックまたはテキストエディターに貼り付けます。
- タグから中かっこ(つまり、{{ と }})と、フィルターを削除します。
- 表示/非表示の条件に残っている変数を使用します。
以下のスクリーンショットでは、タグ {{ event|lookup:'Item Count' }}. が表示されます。表示/非表示条件には、テキスト event|lookup:'Item Count' のみが必要です。データでは、{{ event.extra.line_items.0.title }} や {{ event.ShippingAddress.address1 }} のように、別の構造が使用されている場合があることに注意してください。イベントデータに表示されるとおりに変数を使用してください。

表示/非表示の条件をカスタマイズする
条件付きロジックのリファレンスを使用して、カスタムの表示/非表示条件を構築する方法をご覧ください。このリソースにはサンプル条件が含まれており、独自のプロファイルデータとイベントデータを使用してカスタマイズできます。
その他のリソース
- テンプレートの条件付きロジック リファレンス
特定の受信者に対してのみブロック、セクション、またはカスタム コードのコンテンツを動的に表示するために使用できる、利用可能なすべての条件について説明します。これらの条件をテンプレートで使用する方法については、動的変数に基づいてテンプレートブロックを表示または非表示にする方法に関する記事をご覧ください。
- メッセージのパーソナライズに関するレファレンス
Klaviyo のテンプレートタグを使って、顧客体験をカスタマイズする方法について説明します。
- Klaviyo のプロファイルについて理解する
プロファイルについて、プロファイルの見つけ方や、プロファイルページで利用できるデータなどをご確認ください。プロファイルは、お客様や見込み顧客に関して把握しているすべての情報を追跡するために使用されます。
- Apply programming logic concepts to build more personalized messages