Skip to content

分析

Braze SDKの分析について学習し、Brazeが収集するデータ、カスタムイベントとカスタム属性の違い、分析を管理するためのベストプラクティスについて理解を深めましょう。

自動的に収集されるデータ

最初に使用したアプリ、最後に使用したアプリ、合計セッション数、デバイス OS など、特定のユーザーデータは SDK で自動的に収集されます。統合ガイドに従って SDK を実装すると、このデフォルトデータ収集を利用できるようになります。このリストを確認することで、ユーザーに関する同じ情報を複数回保存しなくて済みます。セッションの開始と終了を除き、その他の自動的にトラッキングされるデータは、データポイント使用量にはカウントされません。

特定のデータ項目のデフォルト収集をブロックするプロセスを許可リストに登録するには、SDK プライマーに関する記事を参照してください。

カスタムイベント

カスタムイベントは、ユーザーによって行われるアクションです。これらは、アプリケーションとの高価値なユーザーインタラクションをトラッキングするのに最適です。カスタムイベントをログに記録すると、構成可能な遅延を設定して任意の数のフォローアップキャンペーンをトリガーできます。また、そのイベントの最新性と頻度に基づいて次のセグメンテーションフィルターが有効になります。

Braze はセグメンテーション用として、これらのイベントが発生した回数と、各ユーザーの最終実行時刻を記録します。カスタムイベントの分析ページで、各カスタムイベントが発生する頻度を集約して表示できます。また、より詳細な分析を行うために、経時的にセグメントごとに表示することもできます。これは、キャンペーンがカスタムイベントのアクティビティにどのように影響したかを確認するのに特に役立ちます。Braze が時系列にオーバーレイする灰色の線を見て、最後にキャンペーンが送信された時を確認できます。

クレジットカードを追加して30日間にわたって検索を行ったユーザーに関する統計を示すカスタムイベント分析グラフ。

カスタムイベントの保存

すべてのユーザープロファイルデータ(カスタムイベント、カスタム属性、カスタムデータ)は、それらのプロファイルがアクティブである限り保存されます。

カスタムイベントプロパティ

カスタムイベントプロパティを使用すると、Braze はカスタムイベントおよび購入にプロパティを設定できます。これらのプロパティを使用して、トリガー条件の絞り込み、メッセージングのパーソナライゼーションの強化、未加工データのエクスポートによるより高度な分析の生成を行えます。プロパティ値は文字列、数値、ブール値、または時間オブジェクトにすることができます。ただし、プロパティ値は配列オブジェクトにすることはできません。

例えば、ある e コマースアプリケーションが、ユーザーがカートを放棄したときにメッセージを送りたい場合、ユーザーのカートの cart_value のカスタムイベントプロパティを追加することで、ターゲットオーディエンスをさらに改善し、キャンペーンのパーソナライゼーションを高めることができます。

カスタムイベントの例では、カートを放棄し、カートの価値が100以上200未満のユーザーにキャンペーンを送信します。

カスタムイベントプロパティは、メッセージングテンプレート内でパーソナライゼーションのためにも使用できます。トリガーイベントを持つアクションベース配信を使用するキャンペーンは、メッセージングパーソナライゼーションのために、そのイベントのカスタムイベントプロパティを使用できます。ゲームアプリケーションがレベルをクリアしたユーザーにメッセージを送信したい場合、そのレベルをクリアするのにかかった時間のプロパティを使用してメッセージをさらにパーソナライズできます。この例では、メッセージは条件付きロジックを使用して3つの異なるセグメントに対してパーソナライズされています。カスタムイベントプロパティ time_spent は、{{event_properties.${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 from 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 %}

カスタムイベントプロパティは、メッセージングをパーソナライズしたり、アクションベースの詳細な配信キャンペーンを構築したりするのに役立ちます。イベントプロパティの直近性と頻度に基づいてセグメントを作成したい場合は、カスタマーサクセスマネージャーまたはサポートチームにお問い合わせください。

カスタム属性

カスタム属性は、標準属性項目を使用した場合よりも高い特異性でユーザーをターゲットにすることができる非常に柔軟性の高いツールです。カスタム属性は、ユーザーに関するブランド固有の情報を保存するのに最適です。カスタム属性の時系列情報は保存されないため、前のカスタムイベントの例のようには時系列情報に基づくグラフを取得できないことに注意してください。

カスタム属性の保存

すべてのユーザープロファイルデータ(カスタムイベント、カスタム属性、カスタムデータ)は、それらのプロファイルがアクティブである限り保存されます。

カスタム属性のデータタイプ

カスタム属性として格納できるデータタイプを以下に示します。

文字列(英数字)

文字列属性は、お気に入りのブランド、電話番号、アプリケーション内での最後の検索文字列など、ユーザー入力の保存に役立ちます。文字列属性はカスタムデータの長さ制限(479バイト。約479文字の半角文字、または日本語などの多バイト文字では約160文字)に従います。

次の表は、文字列属性に利用可能なセグメンテーションオプションについて説明しています。

配列

配列属性は、ユーザーに関する情報の関連リストの保存に適しています。例えば、ユーザーが視聴した最後のコンテンツ 100 個を配列内に保存すると、特定の関心に基づくセグメンテーションができます。

カスタム属性の配列は一次元のセットです。多次元配列はサポートされていません。カスタム属性配列に要素を追加すると、その要素が配列の最後に追加されます。ただし、既に存在する場合は、現在の位置から配列の最後に移動されます。例えば、配列 ['hotdog','hotdog','hotdog','pizza'] がインポートされた場合、一意の値のみがサポートされるため、配列属性には ['hotdog', 'pizza'] として表示されます。

配列が最大数の要素を含んでいる場合、最初の要素は破棄され、新しい要素が最後に追加されます。次に、Web SDK での配列の動作を示すいくつかの例コードを示します:

1
2
3
4
5
6
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']

配列内の要素のデフォルトおよび最大数は500です。最大数は、Braze ダッシュボードのデータ設定 > カスタム属性で更新できます。要素数が最大値を超える配列は、最大要素数を含むように切り詰められます。

次の表は、配列属性の利用可能なセグメンテーションオプションについて説明しています。

日付

時刻属性は、特定のアクションが最後に実行された時刻の保存に役立ちます。そのため、コンテンツ固有の再エンゲージメントメッセージをユーザーに提供できます。

相対日付(1日超前、2日未満など)を使用した日付フィルターでは、1日を24時間として扱います。これらのフィルターを使用して実行するキャンペーンには、24時間単位ですべてのユーザーが含まれます。例えば、最後に使用したアプリが1日以上前の場合、キャンペーンが実行される正確な時刻から「最後にアプリを使用したのが24時間以上前」のすべてのユーザーをキャプチャします。同じことが、より長い日付範囲で設定されたキャンペーンにも当てはまります。つまり、アクティベーションから5日後は、過去120時間を意味します。

次の表は、時間属性に利用可能なセグメンテーションオプションについて説明しています。

数値

数値属性にはさまざまなユースケースがあります。数値のカスタム属性を増分すると、特定のアクションやイベントが発生した回数を保存する場合に便利です。標準的な数値には、靴のサイズ、ウエストのサイズ、ユーザーが特定の製品の特徴やカテゴリーを見た回数の記録など、あらゆる種類の用途があります。

次の表は、数値属性に利用可能なセグメンテーションオプションについて説明しています。

ブール値(true/false)

ブール属性は、サブスクリプションステータスやユーザーに関するその他の単純なバイナリデータを保存するのに役立ちます。提供される入力オプションを使用すると、変数がブール値に明示的に設定されているユーザーと、その属性がまだ記録されていないユーザーを見つけることができます。

次の表は、ブール属性の利用可能なセグメンテーションオプションについて説明しています。

購入イベント/収益トラッキング

アプリ内購入の記録に購入方法を使用すると、個々のユーザープロファイルに生涯価値(LTV)が設定されます。このデータは、時系列グラフで収益ページ内で表示できます。

次の表は、購入イベントのために利用可能なセグメンテーションオプションを説明しています。

タクシー/ライドシェアアプリのユースケース

この例では、どのユーザーデータを収集するかを決定したいライドシェアアプリを考えてみましょう。以下の質問とブレインストーミングのプロセスは、マーケティングチームと開発チームが参考にできる優れたモデルです。この演習を終了すると、両方のチームは、目標を達成するためにどのカスタムイベントと属性を収集するとよいかが明確にわかるでしょう。

ケースの質問 No.1: 目標は何ですか?

目標は明確で、ユーザーにアプリ経由でタクシーを呼んでもらうことです。

ケースの質問 No.2: アプリをインストールしてからその目標に至るまで、どのような中間ステップがありますか?

  1. ユーザーは登録プロセスを開始して、個人情報を入力する必要があります。
  2. ユーザーは登録プロセスを完了し、SMS 経由で受け取ったコードをアプリに入力して確認する必要があります。
  3. ユーザーはタクシーを呼ぶ必要があります。
  4. タクシーを呼ぶには、ユーザーが検索したときにタクシーが利用できなければなりません。

これらのアクションには、以下のカスタムイベントとしてタグを付けることができます。

  • 登録開始
  • 登録完了
  • タクシーの呼び出し成功
  • タクシーの呼び出し失敗

イベントを実装した後、次のキャンペーンを実行できます。

  1. 登録を開始したが、一定期間内に登録完了イベントをトリガーしなかったユーザーにメッセージを送信する。
  2. 登録を完了したユーザーにお祝いのメッセージを送信します。
  3. タクシーの呼び出しに失敗し、一定時間内に成功したタクシーの呼び出しがなかったユーザーに謝罪とプロモーションクレジットを送信します。
  4. タクシーの呼び出し成功数が多いパワーユーザーに、ロイヤルティへの感謝の気持ちを示すプロモーションを送信します。

そして他にもたくさんあります!

ケースの質問 No.3: メッセージングに役立つ、ユーザーに関する他のどのような情報が必要でしょうか?

  • プロモーションクレジットを持っているかどうか?
  • ユーザーによるドライバーの平均評価は?
  • ユーザー固有のプロモーションコードがあるか?

これらの特性には、以下のカスタム属性のタグを付けることができます。

  • プロモーションクレジット残高(10進数型)
  • ドライバーの平均評価(数値型)
  • 固有のプロモーションコード(文字列型)

これらの属性を追加することで、次のようなキャンペーンをユーザーに送信できるようになります。

  1. 7日間ログインしていないがプロモーションクレジットを持っているユーザーに、そのクレジットが存在することと、アプリに戻って使用するよう通知する。
  2. 低いドライバー評価を与えたユーザーにメッセージを送り、なぜ乗車を楽しめなかったのかを確認するために直接フィードバックを得る。
  3. メッセージテンプレートとパーソナライゼーション機能を使用して、固有のプロモーションコード属性をユーザー向けのメッセージングに付け加えます。

ベストプラクティス

一般的なベストプラクティス

イベントプロパティを使用する

  • ユーザーが行うアクションを説明するカスタムイベントに名前を付けます。
  • カスタムイベントプロパティを十分に活用して、イベントに関する重要なデータを表現してください。
  • 例えば、50本の異なる映画のそれぞれを視聴するために別々のカスタムイベントをキャプチャするのではなく、映画を視聴することをイベントとしてキャプチャし、イベントプロパティに映画の名前を含める方が効果的です。

開発のベストプラクティス

すべてのユーザーにユーザー ID を設定する

ユーザー ID は、各ユーザーに設定する必要があります。これらは変更されず、ユーザーがアプリを開いたときにアクセスできるようにする必要があります。この識別子を提供することを強くお勧めします。これにより、次のことが可能になります:

  • デバイスやプラットフォームを超えてユーザーをトラッキングし、行動データや人口統計データの質を向上させます。
  • ユーザーデータ API を使用して、ユーザーに関するデータをインポートします。
  • メッセージング API を使用して、一般的なメッセージとトランザクションメッセージの両方で特定のユーザーをターゲットにします。

ユーザー ID は512文字未満でなければならず、プライベートで簡単に取得できないものであるべきです(例えば、単純なメールアドレスやユーザー名ではない)。そのような識別子が利用できない場合、Braze はユーザーに一意の識別子を割り当てますが、ユーザー ID に対してリストされている機能が欠けることになります。個人として紐づけられた固有の識別子を持たないユーザーに対して、ユーザー ID の設定は避けるべきです。デバイス識別子を渡すことは、Braze がデフォルトで提供する自動匿名ユーザートラッキングに対して何の利益も提供しません。以下は、適切および不適切なユーザー ID の例です。

適切なユーザー ID の例:

  • ハッシュ化されたメールアドレスまたは一意のユーザー名
  • 一意のデータベース識別子

これらはユーザー ID として使用しないでください:

  • デバイス ID
  • ランダムな数値またはセッション ID
  • 一意でない ID
  • メールアドレス
  • 別のサードパーティベンダーのユーザー ID

カスタムイベントと属性に読みやすい名前を付ける

マーケターが導入から1〜2年後に Braze を使い始めるとしましょう。文脈もなしに「usr_no_acct」のような名前がずらりと並んだドロップダウンリストを読むのは、気が重くなるかもしれません。イベントと属性に識別可能で読みやすい名前を付けることで、プラットフォームのすべてのユーザーにとって物事が容易になります。次のベストプラクティスを考慮してください:

  • カスタムイベントは数字で始めないでください。ドロップダウンリストはアルファベット順に並べられ、数字で始まると、選択したフィルターでセグメンテーションするのが難しくなります。
  • 可能な限り難解な略語や専門用語を使用しないようにしてください。
    • 例: usr_ctry はコード内のユーザーの国を示す変数名としては問題ないかもしれませんが、カスタム属性は Braze に user_country のように送信して、後でダッシュボードを使用するマーケターに明確さを提供する必要があります。

属性が変更されたときにのみログに記録する

Braze に渡されたすべての属性は、たとえ渡された属性が以前に保存されたものと同じ値を含んでいても、データポイントとしてカウントされます。変更時にのみデータを記録することで、冗長なデータポイントの使用を回避し、不必要な API 呼び出しを避けることでスムーズな体験をサポートします。

プログラムでイベント名を生成するのを避ける

新しいイベント名を常に作成している場合、ユーザーを意味のあるセグメントに分割することは不可能になります。一般的なイベント(「動画を見た」や「記事を読んだ」)をキャプチャするべきであり、「江南スタイルを見た」や「記事を読んだ: ミッドタウンマンハッタンのベスト10ランチスポット」のような非常に具体的なイベントではありません。イベントに関する具体的なデータは、イベント名の一部ではなく、イベントプロパティとして含める必要があります。

技術的な制限と制約

カスタムイベントを実装する際の次の制限と制約に注意してください:

長さの制約

Braze はカスタムイベント名、カスタム属性名(キー)、およびカスタムイベントの文字列値に対して、バイト単位の長さ制限(479バイト)を設けています。この制限を超える値は切り詰められます。文字数で表すと、これは約479の半角文字(例: ASCII)に相当します。あるいは日本語などの多バイト文字では約160文字となります(UTF-8で1文字あたり約3バイトと仮定した場合)。理想的には、アプリにおけるネットワークとバッテリーのパフォーマンスを向上させるため、名前と値は可能な限り短く保ってください。可能であれば、50文字以内に制限してください。

コンテンツの制約

次のコンテンツは、属性とイベントからプログラムによってトリミングされます。次のものを使用しないように注意してください:

  • 先頭と末尾の空白
  • 改行
  • 電話番号内のすべての数字以外の文字
    • 例: “(732) 178-1038” は “7321781038” に凝縮されます
  • 空白以外の文字はスペースに変換する必要があります
  • $ は、カスタムイベントのプレフィックスとして使用しないでください
  • 無効な UTF-8 エンコーディング値
    • “My \x80 Field” は “My Field” に凝縮されます

予約済みのキー

以下のキーは予約されているため、カスタムイベントプロパティとして使用できません。

  • time
  • product_id
  • quantity
  • event_name
  • price
  • currency

値の定義

  • 整数値は64ビットです
  • デフォルトで小数は15桁の小数桁数を持っています

一般名フィールドの解析

ユーザーに対して1つの汎用名フィールドしか存在しない場合(例:「JohnDoe」)、このタイトル全体をユーザーの名属性に割り当てることができます。さらに、スペースを使用してユーザーの名と姓の両方を解析しようとすることもできますが、この後者の方法には一部のユーザーの名前を誤って認識するリスクがあります。

New Stuff!