RudderStack
RudderStack は、顧客イベントデータを収集し、希望するデータウェアハウスやBrazeなどの他の多数の分析プロバイダーにルーティングするための、オープンソースの顧客データインフラです。エンタープライズ対応で、イベントデータを即座に処理するための強力な変換フレームワークを提供します。
BrazeとRudderStackの統合により、Android、iOS、およびWebアプリケーションのネイティブSDK統合と、バックエンドサービスからのサーバー間統合が提供されます。
前提条件
| 必要条件 | 説明 |
|---|---|
| RudderStackアカウント | このパートナーシップを活用するには、RudderStackアカウントが必要です。 |
| 設定済みのソース | ソースは基本的に、Webサイト、モバイルアプリ、バックエンドサーバーなど、RudderStackに送信されるあらゆるデータの提供元です。RudderStackでBrazeを送信先として設定する前に、ソースを設定する必要があります。 |
| Braze REST APIキー | users.track、users.identify、users.delete、users.alias.newの権限を持つBraze REST APIキー。これは、BrazeダッシュボードのSettings > API Keysで作成できます。 |
| Brazeアプリキー | Brazeダッシュボードでアプリキーを取得するには、Settings > App Settings > Identificationに移動し、アプリ名を見つけます。関連する識別子文字列を保存してください。 |
| データセンター | データセンターは、Brazeダッシュボードのインスタンスに対応しています。 |
統合
ステップ1:ソースを追加する
Brazeへのデータ送信を開始するには、まずRudderStackアプリにソースが設定されていることを確認する必要があります。データソースの設定方法については、RudderStackを参照してください。
ステップ2:送信先を設定する
データソースが設定されたら、RudderStackダッシュボードで、Destinationsの下にあるADD DESTINATIONを選択します。使用可能な送信先のリストからBrazeを選択し、Nextをクリックします。
Brazeの送信先で、アプリキー、Braze REST APIキー、データクラスタ、およびネイティブSDKオプション(デバイスモードのみ)を指定します。ネイティブSDKオプションをオンにすると、BrazeネイティブSDKを使用してイベントが送信されます。

ステップ3:統合のタイプを選ぶ
次のいずれかの方法を使用して、RudderStackのWebライブラリとネイティブクライアント側ライブラリをBrazeと統合できます。
- サイドバイサイド/デバイスモード: RudderStackは、クライアント(ブラウザまたはモバイルアプリケーション)から直接Brazeにイベントデータを送信します。
- サーバー間/クラウドモード: Braze SDKはイベントデータをRudderStackに直接送信し、そこで変換されてBrazeにルーティングされます。
- ハイブリッドモード: ハイブリッドモードを使用して、iOSとAndroidの自動生成イベントとユーザー生成イベントを、単一の接続を使用してBrazeに送信します。

RudderStackの接続モードと、それぞれの利点について詳しくはこちらをご覧ください。
サイドバイサイド統合(デバイスモード)
このモードでは、Webサイトまたはモバイルアプリで設定したBraze SDKを使用して、イベントをBrazeに送信できます。
サポートされているメソッドで説明されているように、BrazeのGitHubリポジトリでご使用のプラットフォームに対応したRudderStack SDKへのマッピングを設定します。
デバイスモードの統合を完了するには、RudderStackのプロジェクトにBrazeを追加する詳しい手順を参照してください。
サーバー間統合(クラウドモード)
このモードでは、SDKはイベントデータを直接RudderStackサーバーに送信します。その後、RudderStackはこのデータを変換し、目的の送信先にルーティングします。この変換は、RudderStackのトランスフォーマーモジュールを使用してRudderStackバックエンドで実行されます。
統合を有効にするには、サポートされているメソッドで説明されているように、RudderStackメソッドをBrazeにマッピングする必要があります。

RudderStackのサーバーサイドSDK(Java、Python、Node.js、Go、Ruby)は、クラウドモードのみをサポートしています。これは、サーバー側のSDKがRudderStackバックエンドで動作し、Braze固有のSDKを読み込むことができないためです。

サーバー間の統合は、プッシュ通知やアプリ内メッセージングなどのBraze UI機能をサポートしていません。ただし、これらの機能はデバイスモード統合によってサポートされます。
ハイブリッドモード
ハイブリッドモードを使用して、iOSとAndroidのソースからすべてのイベントをBrazeに送信します。
ハイブリッドモードでBrazeにイベントを送信することを選択した場合、RudderStackにより次の操作が行われます。
- Braze SDKを初期化します。
- ユーザーが生成したすべてのイベント(identify、track、page、screen、group)をクラウドモードからのみBrazeに送信し、デバイスモードからの送信をブロックします。
- 自動生成イベント(アプリ内メッセージ、Braze SDKを必要とするプッシュ通知)をデバイスモード経由で送信します。
ハイブリッドモードでイベントを送信するには、ソースをBrazeの送信先に接続する際にハイブリッドモードオプションを使用します。次に、Braze統合をプロジェクトに追加します。
ステップ4:追加設定を行う
初期設定完了後、Brazeでデータを正しく受信するために以下の設定を行います。
- Enable subscription groups in group call:グループイベントでサブスクリプショングループのステータスを送信するには、この設定を有効にします。詳細については、Groupを参照してください。
- Use Custom Attributes Operation:Brazeの階層化カスタム属性機能を使用してセグメントを作成し、カスタム属性オブジェクトを使用してメッセージをパーソナライズする場合は、この設定を有効にします。詳細については、ネストされたカスタム属性としてユーザー特性を送信するを参照してください。
- Track events for anonymous users:この設定を有効にすると、匿名ユーザーの活動が追跡され、その情報がBrazeに送信されます。
デバイスモード設定
以下の設定は、デバイスモード経由でBrazeにイベントを送信する場合にのみ適用されます。
- Client-side Events Filtering:この設定により、Brazeに流れるイベントをブロックするか、許可するかを指定できます。この設定の詳細については、Client-side Events Filteringを参照してください。
- Deduplicate Traits:この設定を有効にすると、
identify呼び出しでユーザー特性の重複が排除されます。 - Show Braze logs:この設定は、JavaScript SDKをソースとして使用する場合にのみ適用されます。Brazeのログをユーザーに表示するには、これを有効にします。
- OneTrust Cookieカテゴリー:この設定により、OneTrust Cookieの同意グループをBrazeに関連付けることができます。
サポートされているメソッド
Brazeは、RudderStackメソッドのidentify、track、screen、page、group、aliasをサポートしています。
RudderStackのidentifyメソッドは、ユーザーとそのアクションを関連付けます。RudderStackは、一意のユーザーIDと、名前、メール、IPアドレスなど、そのユーザーに関連するオプションの特性をキャプチャします。
identify呼び出しの差分管理
デバイスモードでBrazeにイベントを送信する場合、identify呼び出しを重複排除することでコストを節減できます。そのためには、Deduplicate Traitsダッシュボード設定を有効にします。その後、RudderStackは変更された属性(特性)のみをBrazeに送信します。
ユーザーの削除
RudderStack Data Regulation APIの抑制と削除の規則(Suppression with Delete regulation)を使用して、Brazeのユーザーを削除できます。
RudderStackのtrackメソッドは、すべてのユーザーアクティビティと、それらのアクティビティに関連するプロパティをキャプチャします。
Order completed
RudderStack eCommerce APIを使用してOrder Completedという名前のイベントに対してtrackメソッドを呼び出すと、RudderStackはそのイベントにリストされている製品をpurchasesとしてBrazeに送信します。
RudderStackのscreenメソッドを使用して、ユーザーのモバイル画面ビューを、表示されている画面に関する追加情報とともに記録できます。
RudderStackのpageメソッドを使用して、Webサイトのページビューを記録できます。また、そのページに関するその他の関連情報もキャプチャされます。
RudderStackのgroupメソッドを使用して、ユーザーをグループに関連付けることができます。
サブスクリプショングループのステータス
サブスクリプショングループのステータスを更新するには、RudderStackダッシュボードの「Enable subscription groups in group call」設定を有効にし、グループ呼び出しでサブスクリプショングループのステータスを送信します。
RudderStackのaliasメソッドを使用して、既知のユーザーの複数のIDをマージできます。RudderStackは、クラウドモードでのみBrazeのエイリアス呼び出しをサポートしていることに注意してください。
ユーザー特性を階層化カスタム属性として送信する
ユーザー特性を階層化カスタム属性としてBrazeに送信し、それに対して追加、更新、削除操作を実行できます。これを行うには、Brazeの送信先を設定するときにRudderStackで「Use Custom Attributes Operation dashboard」設定を有効にします。この機能はクラウドモードでのみ利用できます。
次の形式でidentifyイベントでユーザー特性を階層化カスタム属性として送信できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
rudderanalytics.identify("1hKOmRA4GRlm", {
"cars": {
"add": [{
"age": 27,
"id": 1,
"name": "Alex Keener"
}],
"update": [{
"age": 30,
"id": 2,
"identifier": "id",
"name": "Rowan"
},
{
"age": 27,
"id": 1,
"identifier": "id",
"name": "Mike"
}
]
},
"country": "USA",
"email": "[email protected]",
"firstName": "Alex",
"gender": "M",
"pets": [{
"breed": "beagle",
"id": 1,
"name": "Scooby",
"type": "dog"
},
{
"breed": "calico",
"id": 2,
"name": "Garfield",
"type": "cat"
}
]
})
track、page、またはscreen呼び出しでユーザー特性をカスタムユーザー属性として送信するには、イベントのコンテキストフィールドとしてtraitsを渡します。
rudderanalytics.track("Product Viewed", {
revenue: 8.99,
currency: "USD",
},{
"traits": {
"cars": {
"add": [{
"age": 27,
"id": 1,
"name": "Alex Keener"
}],
"update": [{
"age": 30,
"id": 2,
"identifier": "id",
"name": "Mike"
},
{
"age": 27,
"id": 1,
"identifier": "id",
"name": "Rowan"
}
]
},
"city": "Disney",
"country": "USA",
"email": "[email protected]",
"firstName": "Alexa",
"gender": "woman",
"pets": [{
"breed": "beagle",
"id": 1,
"name": "Scooby",
"type": "dog"
},
{
"breed": "calico",
"id": 2,
"name": "Garfield",
"type": "cat"
}
]
}
});

更新と削除の操作では、identifierが必須キーとなります。add、update、remove操作がネスト配列に存在しない場合、RudderStackはデフォルトでcreate操作を使用してプロパティを作成します。階層化カスタム属性の送信の詳細については、オブジェクト配列を参照してください。