カスタムイベントプロパティ
この記事では、カスタムイベントプロパティ、その想定されるフォーマット、メッセージングやセグメンテーションでの使用方法、およびカスタムイベントプロパティのストレージについて説明します。
カスタムイベントプロパティは、イベントの特定の発生を記述するカスタムイベントのメタデータまたは属性です。これらのプロパティは、トリガー条件のさらなる絞り込み、メッセージングにおけるパーソナライゼーションの向上、コンバージョンのトラッキング、および生データエクスポートによるより高度な分析の生成に使用できます。
カスタムイベントプロパティはBrazeプロファイルに保存されないため、データポイントを記録しません(例外についてはデータポイントを参照してください)。

各カスタムイベントまたは購入には、最大256個の異なるカスタムイベントプロパティを設定できます。カスタムイベントまたは購入が256個を超えるプロパティで記録された場合、最初の256個のみがキャプチャされ、使用可能になります。
想定されるフォーマット
プロパティ値はオブジェクトである必要があります。キーはプロパティ名(空でない文字列、255文字以下、先頭に $ なし)で、値はプロパティ値です。サポートされるデータタイプ、フォーマット要件、およびペイロード制限については、データタイプを参照してください。
カスタムイベントプロパティのデータタイプは変更できますが、データが収集された後にデータタイプを変更することの影響に注意してください。
予約キー
予約キーをイベントプロパティ名として使用することはできません。properties オブジェクトで予約キーを使用すると、「Invalid ‘properties’ field」というエラーが返されます。
| プロパティ | 予約キー |
|---|---|
| カスタムイベント | time および event_name |
| 購入イベント | time、product_id、quantity、event_name、price、currency |
カスタムイベントプロパティの使用
カスタムイベントプロパティは、キャンペーンのトリガー条件の設定、コンバージョンのトラッキング、メッセージングのパーソナライゼーションに使用できます。
メッセージのトリガー
カスタムイベントプロパティを使用して、特定のキャンペーンやキャンバスのオーディエンスをさらに絞り込むことができます。たとえば、eコマースアプリケーションがあり、ユーザーがカートを放棄したときにメッセージを送信したい場合、price のカスタムイベントプロパティを追加して、ターゲットオーディエンスを改善し、キャンペーンのパーソナライゼーションを強化できます。

ネストされたカスタムイベントプロパティは、アクションベース配信でもサポートされています。

メッセージのパーソナライズ
メッセージングテンプレート内のパーソナライゼーションにもカスタムイベントプロパティを使用できます。トリガーイベントを使用したアクションベース配信を利用するキャンペーンでは、そのイベントのカスタムイベントプロパティをメッセージングのパーソナライゼーションに使用できます。
フィルターに関する注意事項
- API呼び出し: API呼び出しを行い「is blank」フィルターを使用する場合、カスタムイベントプロパティは呼び出しから除外されると「blank」とみなされます。たとえば、
"event_property": ""を含めた場合、ユーザーは「not blank」とみなされます。 - 整数: 数値のカスタムイベントプロパティでフィルタリングする際、数値が非常に大きい場合は「exactly」フィルターを使用しないでください。数値が大きすぎると、特定の桁数で丸められる可能性があり、フィルターが期待どおりに動作しないことがあります。
比較のための型変換
Liquidの条件文でイベントプロパティを使用する場合、整数のイベントプロパティを大なり、小なり、等しいなどの演算子で比較すると、Liquid error: comparison of String with 0 failed というエラーが発生することがあります。これは、Liquidがデフォルトでプロパティを文字列として扱うために発生します。
これを修正するには、比較の前に plus: 0 フィルターを使用してプロパティを数値に変換します。
1
2
3
4
{% assign time_spent = {{event_properties.${time_spent}}} | plus: 0 %}
{% if time_spent >= 100 %}
Great job completing the level quickly!
{% endif %}
たとえば、ゲームアプリがあり、レベルをクリアしたユーザーにメッセージを送信したい場合、ユーザーがそのレベルをクリアするのにかかった時間のプロパティを使用して、メッセージをさらにパーソナライズできます。
以下のメッセージは、条件ロジックを使用して3つの異なるセグメント向けにパーソナライズされています。time_spent というカスタムイベントプロパティは、{{event_properties.${time_spent}}} を呼び出すことでメッセージに含めることができます。
1
2
3
4
5
6
7
8
{% assign time_spent = {{event_properties.${time_spent}}} | plus: 0 %}
{% if time_spent < 600 %}
Incredible work, hero! Are you ready to test your skills against other powerful heroes? Visit the Arena for real-time battles with top players from around the globe.
{% elsif time_spent < 1800 %}
Great job, hero! Don't forget to visit the town store between levels to upgrade your tools.
{% else %}
Well done, hero! Talk to villagers for tips on how to beat levels faster and unlock more rewards.
{% endif %}

ユーザーがインターネットに接続していない場合、テンプレート化されたカスタムイベントプロパティ(たとえば {{event_properties.${time_spent}}})を含むトリガーされたアプリ内メッセージは失敗し、表示されません。
アプリ内メッセージをテンプレート化されたアプリ内メッセージとして配信するLiquidタグの完全なリストについては、よくある質問を参照してください。
キャンバス
キャンバスでは、context と event_properties は異なる目的で使用されます。
context:キャンバスのエントリをトリガーしたイベントまたはAPI呼び出しのプロパティです。最初のステップを含む任意のメッセージステップでcontextを使用します。event_properties:ジャーニー中に発生したカスタムイベントまたは購入のプロパティです。アクションパスステップの後の最初のメッセージステップでのみ使用します。Everyone Elseパスや、それ以降のメッセージステップでは使用できません。

キャンバスの最初のメッセージステップでは、event_properties の代わりに context を使用するか、メッセージステップの前にアクションパスステップを追加してください。例外:アプリ内メッセージの場合、そのイベントがキャンバスのエントリトリガーであれば、最初のメッセージステップで event_properties を使用できます。
詳細については、コンテキストとイベントプロパティおよびキャンバスエントリプロパティとイベントプロパティを参照してください。
セグメンテーション
イベントプロパティセグメンテーションを使用して、実行されたカスタムイベントとそれらのイベントに関連するプロパティに基づいてユーザーをターゲットにします。これにより、購入やカスタムイベントによるセグメンテーション時のフィルタリングオプションが増えます。
カスタムイベントのイベントプロパティは、それらを使用するセグメントに対してリアルタイムで更新されます。プロパティを管理するには、データ設定 > カスタムイベントに移動し、関連するカスタムイベントのプロパティを管理を選択します。特定のセグメントフィルターで使用されるカスタムイベントプロパティには、最大30日間のルックバック履歴があります。
セグメンテーション用のイベントプロパティの追加
イベントプロパティの頻度と最新性に基づいてセグメントを作成するには、「Edit Custom Event Property Segmentation」のユーザー権限が必要です。
デフォルトでは、ワークスペースごとに20個のセグメント可能なイベントプロパティを設定できます。この制限を引き上げるには、Brazeアカウントマネージャーにお問い合わせください。
セグメンテーション用のイベントプロパティを追加するには、以下の手順を実行します。
- カスタムイベントに移動し、プロパティを管理を選択します。
- セグメンテーションを有効にするトグルを選択して、セグメンテーション用のイベントプロパティを追加します。セグメンテーション時に追加のフィルタリングオプションにアクセスできます。
イベントプロパティセグメンテーションフィルターには以下が含まれます。
- 過去Y日間に、プロパティAの値がBであるカスタムイベントをX回実行しました。
- 過去Y日間に、プロパティAの値がBである購入をX回行いました。
- 1〜30日間の範囲でセグメントを作成する機能を追加します。

データは、特定のイベントプロパティを有効にした後にのみ記録され、イベントプロパティはその日付以降のみ利用可能です。
データポイント
サブスクリプションの使用量に関して、以下のフィルターでセグメンテーション用に有効化されたカスタムイベントプロパティは、カスタムイベント自体でカウントされるデータポイントに加えて、それぞれ個別のデータポイントとしてカウントされます。
X Custom Event Property in Y DaysX Purchase Property in Y Days
キャンバスエントリプロパティとイベントプロパティ
キャンバスのユーザージャーニーでは、キャンバスエントリプロパティとイベントプロパティを使用できます。
キャンバスエントリプロパティは、アクションベースまたはAPIトリガーのキャンバスにマップするプロパティです。canvas_entry_properties オブジェクトのサイズ上限は 50 KB です。

特にアプリ内メッセージチャネルでは、context はキャンバス内でのみ参照できます。
次のLiquid形式を使用して、任意のメッセージステップでcontextを参照できます: context.${property_name}。このように使用するには、イベントがカスタムイベントまたは購入イベントである必要があります。
ユースケース
小売店のRetailAppに対して次のリクエストがあるとします: "context" : {"product_name" : "shoes", "product_price" : 79.99}。
RetailAppは次のLiquidを使用して、商品名(靴)をメッセージに挿入できます: {{context.${product_name}}}。
RetailAppは、ユーザーが購入イベントをトリガーした後にターゲットとするキャンバス内で、異なる product_name プロパティに対して特定のメッセージをトリガーして送信することもできます。たとえば、次のLiquidをメッセージステップに追加することで、靴を購入したユーザーとそれ以外のものを購入したユーザーに異なるメッセージを送信できます。
1
2
3
4
5
6
{% if {{context.${product_name}}} == "shoes" %}
Your order is set to ship soon. While you're waiting, why not step up your shoe care routine with a little upgrade? Check out our selection of shoelaces and premium shoe polish.
{% else %}
Your order will be on its way shortly. If you missed something, you have until the end of the week to add more items to your cart for the same discounts.
{% endif %}
元のキャンバスエディターの場合
元のエディターを使用したキャンバスの作成や複製はできなくなりました。このセクションは参照のみを目的としています。元のエディターで構築されたキャンバスの場合、キャンバスエントリプロパティはキャンバスの最初のフルステップでのみ参照できます。
イベントプロパティとは、カスタムイベントと購入に設定するプロパティを指します。これらの event_properties は、アクションベースの配信を使用するキャンペーンやキャンバスで使用できます。

キャンバスの最初のメッセージステップでは event_properties を使用できません。代わりに、context を使用するか、event_properties を含むメッセージステップの前に、対応するイベントを持つアクションパスステップを追加する必要があります。
キャンバスでは、カスタムイベントと購入イベントのプロパティは、アクションパスステップに続く任意のメッセージステップでLiquidを使用して参照できます。これらのイベントプロパティを参照する場合は、必ず {{event_properties.${property_name}}} を使用してください。メッセージコンポーネントでこのように使用するには、これらのイベントがカスタムイベントまたは購入イベントである必要があります。
アクションパスに続く最初のメッセージステップでは、そのアクションパスで参照されたイベントに関連するイベントプロパティを使用できます。ただし、これらのイベントプロパティは、ユーザーが実際にそのアクションを実行した場合(その他のユーザーグループに分類されなかった場合)にのみ使用できます。このアクションパスとメッセージステップの間に、他のステップ(別のアクションパスやメッセージステップではないもの)を配置することもできます。
元のキャンバスエディターの場合
元のエディターを使用したキャンバスの作成や複製はできなくなりました。このセクションは参照のみを目的としています。元のキャンバスエディターでは、スケジュールされたフルステップでイベントプロパティを使用できません。ただし、アクションベースのキャンバスの最初のフルステップでは、そのステップがスケジュールされていても、イベントプロパティを使用できます。
詳細と例については、キャンバスエントリプロパティとイベントプロパティを参照してください。
ネストされたオブジェクト
ネストされたオブジェクト(別のオブジェクト内のオブジェクト)を使用して、カスタムイベントや購入のプロパティとしてネストされたJSONデータを送信できます。このネストされたデータは、メッセージ内のパーソナライズされた情報のテンプレート化、メッセージ送信のトリガー、ユーザーのセグメンテーションに使用できます。
詳細については、ネストされたオブジェクトの専用ページを参照してください。
カスタムイベントプロパティの保存
カスタムイベントプロパティは、ターゲティングの精度を高め、メッセージをよりパーソナライズされたものにするために設計されています。カスタムイベントプロパティは、Braze内で短期的にも長期的にも保存できます。
イベントプロパティの値に基づいてセグメンテーションを行うには、2つの方法があります。
- 30日以内: Brazeセグメント内で、特定のイベントプロパティ値の頻度と最新性に基づくイベントプロパティセグメンテーションを使用できます。このオプションはデータ使用量に影響します。
- 30日以内および30日を超える場合: 短期的および長期的なイベントプロパティセグメンテーションの両方に対応するには、セグメントエクステンションを使用できます。この機能は、過去2年間にトラッキングされたカスタムイベントとイベントプロパティに基づいてユーザーをセグメント化します。このオプションはデータ使用量に影響しません。
お客様の具体的なニーズに応じた最適なアプローチについては、Brazeのカスタマーサクセスマネージャーにお問い合わせください。