分析の概要
このガイドは、データ Braze が収集する内容、カスタムイベントと Braze のカスタム属性の違い、およびこれらの分析を管理するためのベストプラクティスを理解するのに役立ちます。
Braze の実装を完了する前に、マーケティングチームと開発チームがマーケティング目標について話し合う必要があります。トラッキングする対象と、Braze でトラッキングする方法を決定するときには、これらの目標を考慮し、そこから後ろ向きに作業すると便利です。
このプロセスの例については、このガイドの最後にあるTaxi/Ride-Sharing App のケースを参照してください。
自動収集データ
最初に使用したアプリ、最後に使用したアプリ、合計セッション数、デバイス OS など、特定のユーザーデータは SDK で自動的に収集されます。統合ガイドに従って SDK を実装すると、このデフォルトデータ収集を利用できるようになります。このリストを確認することで、ユーザーに関する同じ情報を複数回保存しなくて済みます。セッションの開始と終了を除き、自動的に追跡される他のデータはすべて、データポイントの割り当てを消費しません。
特定のデータアイテムのデフォルトコレクションをブロックするプロセスを許可するには、SDK プライマー アーティクルを参照してください。
カスタムイベント
カスタムイベントは、ユーザが実行するアクションです。アプリケーションとの高価値のユーザインタラクションを追跡するのに最適です。カスタムイベントをログに記録すると、設定可能な遅延を持つ任意の数のフォローアップキャンペーンがトリガされ、そのイベントの最新性と頻度を中心に、次のセグメンテーションフィルタが有効になります。
セグメンテーションオプション | ドロップダウンフィルター | 入力オプション |
---|---|---|
カスタムイベントの発生した回数が X より大きいかをチェックする | [超] | 数値 |
カスタムイベントの発生した回数が X 未満かをチェックする | [未満] | 数値 |
カスタムイベントの発生した回数が正確に X かをチェックする | [完全一致] | 数値 |
カスタムイベントの最終発生時刻が日付 X より後かをチェックする | [後] | 時刻 |
カスタムイベントの最終発生時刻が日付 X より前かをチェックする | [前] | 時刻 |
カスタムイベントの最終発生時刻が過去 X 日間より前かをチェックする | [超] | 過去の日数 (正の整数) |
カスタムイベントの最終発生時刻が 過去 X 日間以内かをチェックする | [未満] | 過去の日数 (正の整数) |
カスタムイベントの発生回数が X 回より多い (X の最大値 = 50) かをチェックする | [超] | 過去 Y 日間 (Y = 1,3,7,14,21,30) |
カスタムイベントの発生回数が X 回未満 (X の最大値 = 50) かをチェックする | [未満] | 過去 Y 日間 (Y = 1,3,7,14,21,30) |
カスタムイベントの発生回数が正確に X 回 (X の最大値 = 50) かをチェックする | [完全一致] | 過去 Y 日間 (Y = 1,3,7,14,21,30) |
Braze はセグメンテーション用として、これらのイベントが発生した回数と、各ユーザーの最終実行時刻を記録します。カスタムイベント 分析ページでは、各カスタムイベントが発生する頻度と、より詳細な分析のためにセグメントごとに集約して表示できます。これは、キャンペーンがカスタムイベントアクティビティにどのように影響したかを確認するために、キャンペーンが最後に送信された時間を示すために時系列のグレーラインのろう付けオーバーレイを確認すると特に便利です。
カスタム属性のインクリメント は、カスタムイベントと同様に、ユーザアクションのカウンタを保持するために使用できます。ただし、カスタム属性データを時系列で表示することはできません。時系列的に分析する必要のないユーザーのアクションは、この方法で記録する必要があります。
カスタムイベントの保存
ユーザープロファイルのすべてのデータ (カスタムイベント、カスタム属性、カスタムデータ) は、ユーザープロファイルがアクティブである限り保存されます。
カスタムイベントプロパティ
カスタムイベントプロパティを使用すると、Braze でカスタムイベントおよび購入のプロパティを設定できます。これらのプロパティは、トリガ条件をさらに修飾したり、メッセージングのパーソナライゼーションを増やしたり、生データのエクスポートを通じてより高度な分析を生成したりするために使用できます。プロパティ値は、string、number、boolean、またはtime オブジェクトです。ただし、プロパティ値を配列オブジェクトにすることはできません。
たとえば、eコマースアプリケーションがカートを放棄したときにユーザにメッセージを送信したいと思った場合、そのアプリケーションはさらにターゲットオーディエンスを向上させ、ユーザカートの「カート値」のカスタムイベントプロパティを追加することで、キャンペーンのパーソナライゼーションを向上させることができます。
カスタムイベントプロパティは、メッセージングテンプレート内のパーソナライゼーションにも使用できます。トリガーイベントでアクションベースの配信を使用するキャンペーンでは、そのイベントのカスタムイベントプロパティを使用してメッセージングのパーソナライゼーションができます。ゲームアプリケーションが、レベルを完了したユーザーにメッセージを送信する場合、ユーザーがそのレベルを完了するのにかかった時間のために、プロパティを使用してメッセージをパーソナライズすることができます。この例では、メッセージは条件付きロジック を使用して3 つの異なるセグメントにカスタマイズされています。カスタムイベントプロパティ は、time_spent
を呼び出すことでメッセージに含めることができます。
1
2
3
4
5
6
7
{% if {{event_properties.${time_spent}}} < 600 %}
Congratulations on beating that level so fast! Check out our online portal where you can play against top players fromm around the world!
{% elsif {{event_properties.${time_spent}}} < 1800 %}
Don't forget to visit the town store between levels to upgrade your tools.
{% else %}
Talk to villagers for essential tips on how to beat levels!
{% endif %}
カスタムイベントプロパティは、メッセージングをカスタマイズしたり、きめ細かいアクションベースの配信キャンペーンを構築したりするのに役立ちます。イベント・プロパティの最新性と頻度に基づいてセグメントを作成する場合は、カスタマー・サクセス・マネージャーまたはサポート・チームに連絡してください。追加のデータ・コストが発生する可能性があります。
カスタム属性
カスタム属性は非常に柔軟性の高いツールであり、標準属性よりも高い固有性を持つユーザーをターゲットにすることができます。カスタム属性は、ユーザーに関するブランド固有の情報を保存するのに適しています。カスタム属性の時系列情報は保存されないため、カスタムイベントの前述の例のように、それらに基づいてグラフを取得することはありません。
カスタム属性の保存
ユーザープロファイルのすべてのデータ (カスタムイベント、カスタム属性、カスタムデータ) は、ユーザープロファイルがアクティブである限り保存されます。
カスタム属性のデータ型
カスタム属性として格納できるデータ型を以下に示します。
文字列 (英数字)
文字列属性は、お気に入りのブランド、電話番号、アプリケーション内での最後の検索文字列など、ユーザー入力の保存に役立ちます。文字列属性の長さは最大 255 文字です。
次の表に、文字列属性で使用可能なセグメンテーションオプションを示します。
セグメンテーションオプション | ドロップダウンフィルター | 入力オプション | |
---|---|---|---|
文字列属性が入力された文字列と完全一致するかをチェックする | [等しい] | 文字列 | |
文字列属性が、入力された文字列または正規表現に部分一致するかをチェックする | [正規表現に一致する] | 文字列または正規表現 | |
文字列属性が、入力された文字列または正規表現に部分一致しないかをチェックする | [正規表現に一致しない]* | 文字列または正規表現 | |
入力された文字列と文字列属性が一致しないかをチェックする | [等しくない] | 文字列 | |
ユーザのプロファイルの文字列属性exists | IS BLANK | N/A | を確認します。 |
ユーザのプロファイルに文字列属性が存在しない | IS NOT BLANK | N/A |
DOES NOT MATCH REGEXフィルタを使用してセグメンテーションを行う場合、そのユーザプロファイルに値が割り当てられたカスタム属性が既に存在している必要があります。ろう付けは”OR”を使用することを提案します。ユーザが正しくターゲットされるようにするために、カスタム属性が空白かどうかをチェックするロジックです。
正規表現フィルターの使用方法の詳細については、Perl 対応正規表現 (PCRE) のドキュメントをご覧ください。
正規表現に関するその他のリソース:
- Braze での正規表現
- 正規表現のデバッガーおよびテスター
- 正規表現のチュートリアル
配列
配列属性は、ユーザーに関する情報の関連リストの保存に適しています。例えば、ユーザーが視聴した最後のコンテンツ 100 個を配列内に保存すると、特定の関心に基づくセグメンテーションができます。
カスタム属性配列は1 次元セットです。多次元配列はサポートされていません。カスタム属性配列に要素を追加すると、配列の末尾に要素が追加されます。ただし、要素がすでに存在している場合は、現在の位置から配列の末尾に移動されます。たとえば、配列['hotdog','hotdog','hotdog','pizza']
がインポートされた場合、一意の値のみがサポートされるため、配列属性には['hotdog', 'pizza']
と表示されます。
配列に要素の最大数が含まれている場合、最初の要素は破棄され、新しい要素が最後に追加されます。以下に、Web SDK での配列の動作を示すコード例を示します。
``` var abUser = appboy.getUser(); // initialize array for this user, assuming max length of favorite_foods is set to 4. abUser.setCustomUserAttribute(‘favorite_foods’, [‘pizza’, ‘wings’, ‘pasta’]); // => [‘pizza’, ‘wings’, ‘pasta’] abUser.addToCustomAttributeArray(‘favorite_foods’, ‘fries’); // => [‘pizza’, ‘wings’, ‘pasta’, ‘fries’] abUser.addToCustomAttributeArray(‘favorite_foods’, ‘pizza’); // => [‘wings’, ‘pasta’, ‘fries’, ‘pizza’] abUser.addToCustomAttributeArray(‘favorite_foods’, ‘ice cream’); // => [‘pasta’, ‘fries’, ‘pizza’, ‘ice cream’]
```
カスタム属性配列内の要素の最大数は、25にデフォルト設定されています。個々の配列の最大値は、Braze ダッシュボードの [データ設定] > [カスタム属性] で100まで増やすことができます。この最大数を増やす必要がある場合は、カスタマーサービスマネージャーに連絡してください。要素の最大数を超える配列は、含まれる要素が最大数になるよう切り捨てられます。
次の表に、配列属性で使用可能なセグメンテーションオプションを示します。
セグメンテーションオプション | ドロップダウンフィルター | 入力オプション | |
---|---|---|---|
配列属性**に、入力値 | INCLUDES VALUE | STRING | と完全に一致する値が含まれているかどうかを確認します。 |
配列属性**に、入力値 | DOESN’T INCLUDE VALUE | STRING | と完全に一致する値が含まれていないことを確認します。 |
配列属性が、入力された値または正規表現と部分一致する値を含むかをチェックする | [正規表現に一致する] | 文字列または正規表現 | |
配列属性** に値** | HAS A VALUE | N/A | があるかどうかをチェックします。 |
配列属性が空 | IS EMPTY | N/A | かどうかをチェックします。 |
Perl互換正規表現(PCRE)を使用します。
日付
時刻属性は、特定のアクションが最後に実行された時刻の保存に役立ちます。そのため、コンテンツ固有の再エンゲージメントメッセージをユーザーに提供できます。
カスタムイベントまたは購入イベントが発生した最後の日付は自動的に記録され、カスタム時刻属性を介して重複して記録されるべきではありません。
相対日付 (1 日超前、2 日未満など) を使用した時刻フィルターでは、1 日を 24 時間として扱います。これらのフィルターを使用して実行するキャンペーンには、24 時間範囲のすべてのユーザーが含まれます。たとえば、最後に使用したアプリが1 日以上前の場合、” 最後に使用したアプリが24 時間以上” キャンペーンが実行された正確な時刻から、すべてのユーザをキャプチャします。より長い日付範囲が設定されているキャンペーンも同様です。つまり、「アクティブ化から 5 日間」は、以前の 120 時間を意味します。
次の表に、時間属性で使用可能なセグメンテーションオプションを示します。
セグメンテーションオプション | ドロップダウンフィルター | 入力オプション | |
---|---|---|---|
時刻属性がの前かどうかをチェックします。a 選択された日付 | BEFORE | カレンダー日付セレクター | |
時刻属性がの後にあるかどうかをチェックします。選択された日付 | AFTER | カレンダー日付セレクター | |
time 属性がX 番号 以上のdays ago | MORE THAN | NUMBER OF DAYS AGO | かどうかをチェックします。 |
time 属性がless than X number of days ago | LESS THAN | NUMBER OF DAYS AGO | かどうかをチェックします。 |
時刻属性がで、days in the future** | IN MORE THAN | NUMBER OF DAYS IN FUTURE | |
時刻属性がX number より小さいdays in the future | IN LESS THAN | NUMBER OF DAYS IN FUTURE | かどうかをチェックします。 |
ユーザーのプロファイルの時間属性exists | BLANK | N/A | を確認します。 |
ユーザーのプロファイルに時間属性が存在しない | IS NOT BLANK | N/A |
数値
数値属性にはさまざまなユースケースがあります。数値のカスタム属性の増分は、特定のアクションまたはイベントが発生した回数を保存する場合に役立ちます。スタンダードナンバーには、シューズのサイズ、ウエストのサイズ、ユーザーが特定の製品の機能やカテゴリを表示した回数など、あらゆる種類の使用方法があります。
支出した金額はこの方法で記録すべきではありません。むしろ、購入方法で記録すべきです。
次の表に、数値属性で使用可能なセグメンテーションオプションを示します。
セグメンテーションオプション | ドロップダウンフィルター | 入力オプション | |
---|---|---|---|
数値属性がより大きいかどうかを確認します。number | MORE THAN | NUMBER | |
数値属性がより小さいかどうかを確認します。number | LESS THAN | NUMBER | |
数値属性が正確に a number | EXACTLY | NUMBER | かどうかをチェックします。 |
数値属性が等しくないかどうかを確認します。number** | DOES NOT EQUAL | NUMBER | |
ユーザープロファイルの数値属性exists | EXISTS | N/A | を確認します。 |
ユーザーのプロファイルに数値属性が存在しないかどうかを確認します | DOES NOT EXIST | N/A |
Booleans (true/false)
ブール属性は、サブスクリプションステータスやユーザーに関するその他の単純なバイナリデータを保存するのに役立ちます。提供されている入力オプションを使用すると、その属性のレコードがまだ記録されていないユーザーに加えて、明示的にブール値に変数セットが設定されているユーザーを検索できます。
次の表に、ブール属性で使用可能なセグメンテーションオプションを示します。
セグメンテーションオプション | ドロップダウンフィルター | 入力オプション | |
---|---|---|---|
ブール値が | IS | TRUE、FALSE、TRUE OR NOT SET、またはFALSE OR NOT SET | かどうかをチェックします。 |
ユーザのプロファイルのブール値exists | EXISTS | N/A | を確認します。 |
ユーザのプロファイルにブール値が存在しない | DOES NOT EXIST | N/A |
購入イベント/収益追跡
アプリ内購入の記録に弊社の購入方法を使用すると、個々のユーザープロファイルに生涯価値 (LTV) が設定されます。このデータは、収益ページ内で時系列グラフで表示できます。
次の表に、購入イベントで使用可能なセグメンテーションオプションを示します。
セグメンテーションオプション | ドロップダウンフィルター | 入力オプション | |
---|---|---|---|
使用したドルの合計数がより大きいかどうかを確認します。number** | GREATER THAN | NUMBER | |
使用したドルの総数が以下であるかどうかを確認します。number** | LESS THAN | NUMBER | |
使用した総ドル数が正確に a number | EXACTLY | NUMBER | |
X 日付 | AFTER | TIME | 以降に、最後に購入が行われた**かどうかを確認します。 |
購入がX 日付 | BEFORE | TIME | の前に最後に発生した**かどうかをチェックします。 |
前回購入したX 日以上前に | MORE THAN | TIME | |
前回購入したがX日前より少ないかどうかを確認する | LESS THAN | TIME | |
購入が発生したXより多い(Max = 50)回数 | MORE THAN | 過去Y日(Y = 1,3,7,14,21,30) | |
購入が発生したX 未満(Max = 50)回数 | LESS THAN | 過去Y 日(Y = 1,3,7,14,21,30) | |
購入が発生したX(Max = 50)回数 | EXACTLY | 過去Y 日(Y = 1,3,7,14,21,30) |
特定の購入の発生回数でセグメンテーションを行う場合は、その購入を個別に増分カスタム属性として記録する必要もあります。
タクシー・ライドシェアリングアプリのユースケース
この例では、どのユーザーデータを収集するかを決めたいライドシェアリングアプリを考えてみましょう。優れたモデルとして、以下の質問とブレインストーミングのプロセスに沿って進めることをマーケティングチームと開発チームにお勧めします。この演習を終了すると、両方のチームは、目標を達成するためにどのカスタムイベントと属性を収集するとよいかが明確にわかるでしょう。
事例質問1:目標は何か?
目標は明確で、ユーザーにアプリ経由でタクシーを呼んでもらうことです。
事例質問2:アプリのインストールから、そのゴールまでの途中のステップは何ですか?
- ユーザーは登録プロセスを開始して、個人情報を入力する必要があります。
- ユーザーは登録プロセスを完了し、SMS 経由で受け取ったコードをアプリに入力して確認する必要があります。
- ユーザーはタクシーを呼ぶ必要があります。
- タクシーを呼ぶには、ユーザーが検索したときにタクシーが利用できなければなりません。
これらのアクションには、以下のカスタムイベントとしてタグを付けることができます。
- 登録開始
- 登録完了
- タクシーの呼び出し成功
- タクシーの呼び出し失敗
イベントを実装した後、次のキャンペーンを実行できるようになりました。
- 登録を開始したが、一定時間内に登録完了イベントをトリガーしなかったメッセージユーザー。
- 登録を完了したユーザにお祝いメッセージを送信します。
- タクシーの呼び出しに失敗し、その後一定期間内にタクシーの呼び出しが成功しなかったユーザーに、謝罪のメッセージとプロモーションクレジットを送信します。
- タクシーの呼び出し成功数が多いユーザーに、上顧客への感謝の気持ちを示すプロモーションを送信します。
そして、もっとたくさん!
事例質問#3:私たちのメッセージングを知らせるユーザーについて知りたい他の情報は何ですか?
- ユーザーがプロモーションクレジットを持っているか?
- ユーザーによるドライバーの平均評価は?
- ユーザー固有のプロモーションコードがあるか?
これらの特性には、以下のカスタム属性のタグを付けることができます。
- プロモーションクレジット残高(10進数)
- 平均ドライバ定格(ナンバータイプ)
- 固有のプロモーションコード (文字列型)
これらの属性を追加すると、次のようなキャンペーンをユーザに送信できます。
- 7日間ログインしていないが、自分のクレジットが存在し、それを利用するためにアプリに戻ってくるべきだというプロモーションクレジットを持っているユーザーに気づかせよう!
- ドライバーの評価を低くして、顧客からの直接のフィードバックを得て、なぜ自分の乗り物を楽しんでいないのかを確認するメッセージユーザー。
- message templating and personalization features を使用して、一意のプロモーションコード属性をユーザ向けのメッセージングにドラッグします。
ベストプラクティス
一般的ベストプラクティス
イベントプロパティの使用
- ユーザが実行するアクションを説明するカスタムイベントに名前を付けます。
- カスタム・イベント・プロパティを多用して、イベントに関する重要なデータを表します。
- たとえば、50 種類のムービーをそれぞれ視聴するために個別のカスタムイベントをキャプチャするのではなく、単にムービーをイベントとして視聴し、ムービーの名前を含むイベントプロパティを持つようにキャプチャする方が効果的です。
開発のベストプラクティス
ユーザごとにユーザID を設定する
ユーザーID は、ユーザーごとに設定する必要があります。これらは、ユーザーがアプリを開いたときに変更されず、アクセス可能である必要があります。私たちは**この識別子を提供することを強く推奨します。以下のことが可能です。
- デバイスとプラットフォーム間でユーザーを追跡し、行動データと人口統計データの品質を向上させます。
- user data API を使用してユーザーに関するデータをインポートします。
- 一般メッセージとトランザクションメッセージの両方に対して、messaging API を使用して特定のユーザーをターゲットにします。
ユーザID は512 文字未満である必要があり、プライベートである必要があり、簡単には取得できません(たとえば、プレーンな電子メールアドレスやユーザ名ではありません)。このような識別子が使用できない場合、Braze はユーザに一意の識別子を割り当てますが、ユーザID にリストされている機能が不足します。一意の識別子がなく、個人として関連付けられているユーザには、ユーザID を設定しないでください。デバイス識別子を渡すことは、デフォルトで自動匿名ユーザートラッキングBraze が提供するものと比べて、何の利点もありません。以下は、適切で不適切なユーザーID の例です。
ユーザーID に適したオプション:
- ハッシュしたメールアドレスまたは一意のユーザ名
- 一意のデータベース識別子
これらは、ユーザID として使用しないでください。
- デバイス ID
- 乱数またはセッションID
- 任意の非固有ID
- メールアドレス
- 他のサードパーティベンダのユーザID
For additional security, we recommend adding our SDK Authentication feature to prevent user impersonation.
カスタムイベントと属性に読み取り可能な名前を付けます
導入から1~2年後にBrazeの使用を開始し、”usr_no_acct"のような名前のドロップダウンリストを読んでいるマーケターだとします。それ以上のコンテキストがないと、脅威にさらされるかもしれません。イベントと属性を識別可能で読みやすい名前にすると、プラットフォームのすべてのユーザーがより簡単になります。次のベストプラクティスを検討します。
- カスタムイベントを数字で開始しないでください。ドロップダウンリストはアルファベット順に並べ替えられ、数字で始まるため、選択したフィルタで分割するのが難しくなります
- 可能な場合は、不明瞭な略語や技術用語を使用しないようにしてください
- 例:
usr_ctry
は、コード内のユーザの国の変数名としては問題ありませんが、カスタム属性はuser_country
のようにBraze に送信する必要があります。これにより、ダッシュボードを使用してマーケターに明瞭な情報を提供します。
- 例:
属性が変更された場合のみログに記録されます
渡された属性に以前に保存されたものと同じ値が含まれている場合でも、Braze に渡されたすべての属性をデータポイントとしてカウントします。変更された場合にのみデータをログに記録することで、冗長なデータポイントの使用を回避し、不要なAPI 呼び出しを回避することでよりスムーズな操作性をサポートします。
プログラムによるイベント名の生成を避ける
常に新しいイベント名を作成している場合、ユーザーを意味のある形でセグメント化することは不可能です。一般的には、(“ Watched a Video” または” Read an Article”) などの特別なイベントではなく、一般的なイベント(“ Watched a Video” または” Read Article:) をキャプマンハッタンのミッドタウンにあるランチスポットのベスト10。イベントに関する特定のデータは、イベント名の一部としてではなく、イベントプロパティとして含める必要があります。
技術的制限および制約
カスタムイベントを実装する場合は、次の制限事項と制約事項に注意してください。
長さ制約
すべてのカスタムイベント、カスタム属性名(キー)、および255 文字以上のカスタムイベント文字列値は切り捨てられます。理想的には、アプリのネットワークとバッテリーのパフォーマンスを向上させるために、これらはできるだけ短くする必要があります。可能な場合は、50 文字に制限します。
コンテンツ制約
以下のコンテンツは、属性とイベントからプログラムでトリムされます。次のものを使用しないように注意してください。
- 先頭と末尾の空白
- 改行
- 電話番号内のすべての非数字
- 例: “ (732) 178-1038” は” 7321781038” に縮小されます。
- 空白以外の文字はスペースに変換する必要があります
- $ は、カスタムイベントのプレフィックスとして使用することはできません
- 無効なUTF-8エンコーディング値
- “My\x80 Field”は”My Field”に縮約されます。
予約済みのキー
以下のキーは予約されているため、カスタムイベントプロパティとして使用できません。
time
product_id
quantity
event_name
price
currency
値の定義
- 整数値は64 ビット
- デフォルトでは、10 進数は15 桁です
汎用名フィールドの解析
ユーザに1 つの汎用名フィールドのみが存在する場合(たとえば、’JohnDoe’)、このタイトル全体をユーザのFirst Name 属性に割り当てることができます。さらに、スペースを使用してユーザーの姓と名の両方を解析しようとすることもできますが、この後者の方法では、一部のユーザーの名前を誤って命名する可能性があります。