ユーザー属性オブジェクト
アトリビューションオブジェクトの任意のフィールドを持つAPIリクエストは、指定されたユーザープロファイル上に、指定された値を持つその名前の属性を作成または更新する。
Brazeユーザープロファイルフィールド名(以下にリストされているもの、またはBrazeユーザープロファイルフィールドのセクションにリストされているもの)を使用して、ダッシュボードのユーザープロファイル上のそれらの特別な値を更新するか、独自のカスタム属性データをユーザーに追加します。
オブジェクト本体
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
// One of "external_id" or "user_alias" or "braze_id" or "email" or "phone" is required
"external_id" : (optional, string) see external user ID,
"user_alias" : (optional, User alias object),
"braze_id" : (optional, string) Braze user identifier,
"email": (optional, string) User email address,
"phone": (optional, string) User phone number,
// Setting this flag to true puts the API in "Update Only" mode.
// When using a "user_alias", "Update Only" defaults to true.
"_update_existing_only" : (optional, boolean),
// See note regarding anonymous push token imports
"push_token_import" : (optional, boolean),
// Braze User Profile Fields
"first_name" : "Jon",
"email" : "[email protected]",
// Custom Attributes
"my_custom_attribute" : value,
"my_custom_attribute_2" : {"inc" : int_value},
"my_array_custom_attribute":[ "Value1", "Value2" ],
// Adding a new value to an array custom attribute
"my_array_custom_attribute" : { "add" : ["Value3"] },
// Removing a value from an array custom attribute
"my_array_custom_attribute" : { "remove" : [ "Value1" ]},
}
プロファイル属性を削除するには、それをnullに設定します。いくつかのフィールド、例えば external_id や user_alias は、ユーザープロファイルに追加された後に削除することはできません。
既存のプロファイルのみを更新する
Braze で既存のユーザープロファイルのみを更新したい場合は、リクエスト本文の中で、_update_existing_only キーと true の値を渡す必要があります。この値を省略すると、external_id がまだ存在しない場合、Brazeは新しいユーザープロファイルを作成する。
/users/track エンドポイントを通じてエイリアスのみのユーザープロファイルを作成する場合は、_update_existing_only をfalse に設定しなければならない。この値を省略すると、Brazeはエイリアスのみのプロファイルを作成しない。
プッシュトークンインポート
Brazeにプッシュトークンをインポートする前に、必要かどうかを再確認してください。Braze SDKが導入されると、プッシュトークンは自動的に処理され、APIを介してアップロードする必要はありません。
もしそれらを API を使用してアップロードする必要がある場合は、識別されたユーザーまたは匿名ユーザーに対してアップロードできます。これは、external_id が存在する必要があるか、匿名ユーザーが push_token_import フラグを true に設定する必要があることを意味します。
他のシステムからプッシュトークンをインポートする場合、external_id は常に利用できるわけではありません。Brazeへの移行中にこれらのユーザーとのコミュニケーションを維持するために、push_token_importをtrueとして指定することで、external_idを提供せずに匿名ユーザーのレガシートークンをインポートできます。
push_token_importをtrueとして指定する場合:
external_idとbraze_idは指定しないでください- 属性オブジェクトはプッシュトークンを含める必要があります
- トークンがすでにBrazeに存在する場合、リクエストは無視される。そうでない場合、Brazeはトークンごとに一時的な匿名ユーザープロファイルを作成し、これらの個人へのメッセージを継続できるようにする
インポート後、各ユーザーがBraze対応バージョンのアプリを起動すると、Brazeは自動的にインポートしたプッシュトークンをユーザープロファイルに移動し、一時プロファイルをクリーンアップする。
Brazeは月に一度、push_token_import フラグを持つ匿名プロファイルで、プッシュトークンを持っていないものをチェックする。匿名プロファイルにプッシュトークンがなくなった場合、Brazeはプロファイルを削除する。しかし、匿名プロファイルにまだプッシュトークンが残っていて、実際のユーザーがまだそのプッシュトークンでデバイスにログインしていないことを示唆している場合、Brazeは何もしない。
詳細については、プッシュトークンの移行を参照してください。
カスタム属性のデータ型
次のデータ型はカスタム属性として保存できます:
| データ型 | メモ |
|---|---|
| 配列 | カスタム属性配列がサポートされています。カスタム属性配列に要素を追加すると、その要素が配列の最後に追加されます。ただし、既に存在する場合は、現在の位置から配列の最後に移動されます。 例えば、配列 ['hotdog','hotdog','hotdog','pizza'] がインポートされた場合、一意な値のみがサポートされているため、配列属性には['hotdog', 'pizza'] と表示される。"my_array_custom_attribute":[ "Value1", "Value2" ] のように配列の値を設定するだけでなく、"my_array_custom_attribute" : { "add" : ["Value3"] }, のように既存の配列に値を追加したり、次のように配列から値を削除することもできる。 "my_array_custom_attribute" : { "remove" : [ "Value1" ]}カスタム属性配列の要素の最大数はデフォルトで25ですが、個々の配列では最大100まで増やすことができます。詳細については、配列を参照してください。 |
| オブジェクト配列 | オブジェクトの配列では、各オブジェクトに一連の属性が含まれるオブジェクトのリストを定義できます。これは、ホテルの滞在、購入履歴、環境設定など、ユーザーの関連データの複数のセットを保存する必要がある場合に便利です。 たとえば、 hotel_stays という名前のユーザープロファイルにカスタム属性を定義できます。このカスタム属性は、各オブジェクトが個別の宿泊を表す配列として定義できます。各宿泊には、例えば hotel_name、check_in_date、nights_stayed などの属性が含まれます。詳細については、この例を参照してください。 |
| ブール値 | true または false |
| 日付 | ISO 8601 形式または次のいずれかの形式で保存する必要があります。 - yyyy-MM-ddTHH:mm:ss:SSSZ- yyyy-MM-ddTHH:mm:ss- yyyy-MM-dd HH:mm:ss- yyyy-MM-dd- MM/dd/yyyy- ddd MM dd HH:mm:ss.TZD YYYY「T」は時間指定子であり、プレースホルダーではないことに注意してください。変更または削除しないでください。 タイムゾーンを指定しないアトリビューションは、デフォルトでUTCの深夜に設定される(ダッシュボード上では、会社のタイムゾーンにおけるUTCの深夜に相当するものとしてフォーマットされる)。 未来のタイムスタンプを持つCurrentsは、現在時刻がデフォルトとなる。 通常のカスタム属性の場合、年が0未満または3000を超える場合、Brazeはこれらの値をユーザーに文字列として保存します。 |
| フロート | float カスタム属性は、小数点付きの正または負の数です。たとえば、浮動小数点を使用して、アカウントの残高や製品またはサービスのユーザー評価を保存できます。 |
| 整数 | 整数のカスタム属性は、フィールド「inc」とインクリメントしたい値を持つオブジェクトを割り当てることによって、正または負の整数でインクリメントできます。 例: "my_custom_attribute_2" : {"inc" : int_value}, |
| 階層化カスタム属性 | ネストされたカスタム属性は、属性のセットを別の属性のプロパティとして定義します。カスタム属性オブジェクトを定義する場合は、そのオブジェクトの追加属性のセットを定義します。詳細については、「階層化カスタム属性」を参照してください。 |
| 文字列 | 文字列カスタム属性は、テキストデータを格納するために使用される一連の文字です。たとえば、文字列を使用して、姓名、メールアドレス、好みを保存できます。 |
オブジェクトの配列の例
このオブジェクトの配列を使用すると、宿泊内の特定の条件に基づいてセグメントを作成し、Liquid テンプレートを使用して各宿泊からのデータを使用してメッセージをパーソナライズできます。
1
2
3
4
"hotel_stays": [
{ "hotel_name": "Ocean View Resort", "check_in_date": "2023-06-15", "nights_stayed": 5 },
{ "hotel_name": "Mountain Lodge", "check_in_date": "2023-09-10", "nights_stayed": 3 }
]
Braze ユーザープロファイルフィールド
次のユーザープロファイルフィールドは大文字と小文字を区別するため、これらのフィールドを小文字で参照するようにしてください。
| ユーザープロファイル フィールド | データ型仕様 |
|---|---|
| alias_name | (string) |
| alias_label | (string) |
| braze_id | (文字列、省略可能) SDK によってユーザープロファイルが認識されると、関連付けられた braze_id を使用して匿名のユーザープロファイルが作成されます。braze_id は Braze によって自動的に割り当てられ、編集できません。また、デバイスによって異なります。 |
| country | (文字列) 国コードは ISO-3166-1 alpha-2 規格で Braze に渡す必要があります。我々のAPIは、異なるフォーマットで受信された国をマッピングするために最善の努力をしている。例えば、「オーストラリア」は「AU」に対応するかもしれません。しかし、入力が与えられたISO-3166-1 alpha-2規格にマッチしない場合、国の値はNULL に設定される。CSVユーザーインポートやAPIでユーザー country を設定すると、SDKを通じてBrazeがこの情報を自動的に取得できなくなる。 |
| current_location | (オブジェクト) {“longitude”: -73.991443, “latitude”:40.753824} |
| date_of_first_session | (ユーザーが初めてアプリを使用した日付)ISO 8601形式または次のいずれかの形式の文字列: - yyyy-MM-ddTHH:mm:ss:SSSZ- yyyy-MM-ddTHH:mm:ss- yyyy-MM-dd HH:mm:ss- yyyy-MM-dd- MM/dd/yyyy- ddd MM dd HH:mm:ss.TZD YYYY |
| date_of_last_session | (ユーザーが最後にアプリを使用した日付)ISO 8601形式または次のいずれかの形式の文字列: - yyyy-MM-ddTHH:mm:ss:SSSZ- yyyy-MM-ddTHH:mm:ss- yyyy-MM-dd HH:mm:ss- yyyy-MM-dd- MM/dd/yyyy- ddd MM dd HH:mm:ss.TZD YYYY |
| dob | (生年月日)「YYYY-MM-DD」の形式の文字列。例えば、1980-12-21。 |
| (string) | |
| email_subscribe | (文字列) 利用可能な値は、”opted_in” (明示的にメールメッセージの受信を登録)、”配信停止”(明示的にメールメッセージの受信を拒否)、”購読”(受信も拒否もしていない)。 |
| email_open_tracking_disabled | (ブール値)trueまたはfalseが受け入れられます。trueに設定して、このユーザーに送信されるすべての将来のメールに開封トラッキングピクセルが追加されないようにします。SparkPostとSendGridでのみ利用可能。 |
| email_click_tracking_disabled | (ブール値)trueまたはfalseが受け入れられます。将来のメール内のすべてのリンクに対するクリックトラッキングを無効にするには、trueに設定します。このユーザーに送信されます。SparkPostとSendGridでのみ利用可能。 |
| external_id | (文字列)ユーザープロファイルの一意の識別子。external_id を割り当てると、Brazeはユーザーのデバイス全体でユーザープロファイルを識別する。未知のユーザープロファイルにexternal_id を割り当てる最初のインスタンスで、Brazeはすべての既存のユーザープロファイルのデータを新しいユーザープロファイルに移行する。 |
id(文字列)、likes(文字列の配列)、num_friends(整数)のいずれかを含むハッシュ。 |
|
| first_name | (string) |
| gender | (文字列) 「M」、「F」、「O」 (その他)、「N」 (該当なし)、「P」 (言いたくない) または「nil」 (不明)。 |
| home_city | (string) |
| language | (string) 言語はISO-639-1標準でBrazeに渡される必要があります。サポートされている言語については、受け入れ可能な言語のリストをご覧ください。 CSVユーザーインポートやAPIでユーザー language を設定すると、SDKを通じてBrazeがこの情報を自動的に取得できなくなる。 |
| last_name | (string) |
| marked_email_as_spam_at | (文字列)ユーザーのメールがスパムとしてマークされた日付。ISO 8601 形式または次のいずれかの形式で表示されます。 - yyyy-MM-ddTHH:mm:ss:SSSZ- yyyy-MM-ddTHH:mm:ss- yyyy-MM-dd HH:mm:ss- yyyy-MM-dd- MM/dd/yyyy- ddd MM dd HH:mm:ss.TZD YYYY |
| phone | (string) E.164 形式で電話番号を入力することをお勧めします。詳細はユーザー電話番号を参照してください。 |
| push_subscribe | (文字列) 利用可能な値は、”opted_in” (プッシュメッセージの受信を明示的に登録)、”配信停止”(プッシュメッセージの受信を明示的に拒否)、”購読”(受信も拒否もしていない)。 |
| push_tokens | オブジェクトの配列はapp_idとtokenの文字列です。このトークンが関連付けられているデバイスにdevice_idを任意で提供することができます。例えば、[{"app_id": App Identifier, "token": "abcd", "device_id": "optional_field_value"}]。device_id が提供されない場合、ランダムに生成される。 |
| subscription_groups | subscription_group_id および subscription_state の文字列を持つオブジェクト配列 ([{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]など) 。subscription_state の利用可能な値は「subscribed」と「unsubscribed」です。 |
| time_zone | (文字列)IANAタイムゾーンデータベースのタイムゾーン名(例えば、”America/New_York” または “Eastern Time (US& Canada)”)。有効なタイムゾーン値のみが設定される。 |
| ツイッター | id (整数)、screen_name (文字列、X (旧Twitter) ハンドル)、followers_count (整数)、friends_count (整数)、statuses_count (整数) のいずれかを含むハッシュ。 |
このAPIを通じて明示的に設定された言語値は、Brazeがデバイスから自動的に受け取るロケール情報よりも優先される。
ユーザー属性例リクエスト
この例には、API 呼び出しあたり合計 75 個の許可された属性オブジェクトのうち、4 個のユーザー属性オブジェクトが含まれています。
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
POST https://YOUR_REST_API_URL/users/track
Content-Type: application/json
Authorization: Bearer YOUR-REST-API-KEY
{
"attributes" : [
{
"external_id" : "user1",
"first_name" : "Jon",
"has_profile_picture" : true,
"dob": "1988-02-14",
"music_videos_favorited" : { "add" : [ "calvinharris-summer" ], "remove" : ["nickiminaj-anaconda"] }
},
{
"external_id" : "user2",
"first_name" : "Jill",
"has_profile_picture" : false,
"push_tokens": [{"app_id": "Your App Identifier", "token": "abcd", "device_id": "optional_field_value"}]
},
{
"user_alias" : { "alias_name" : "device123", "alias_label" : "my_device_identifier"},
"first_name" : "Alice",
"has_profile_picture" : false
},
{
"external_id": "user3",
"subscription_groups" : [{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]
}
]
}
プッシュトークンを移行する
Brazeを統合する前に、自社または他のプロバイダー経由でプッシュ通知を送信していた場合、プッシュトークンの移行により、プッシュトークンを登録したユーザーにプッシュ通知を送信し続けることができる。
SDKによる自動移行
Braze SDKを統合すると、オプトインしたユーザーのプッシュトークンは、次回ユーザーがアプリを開封したときに自動的に移行される。それまでは、Brazeを通じてそれらのユーザーにプッシュ通知を送ることはできない。
あるいは、プッシュトークンを手動で移行することで、ユーザーへの再エンゲージをより迅速に行うことができます。
Webトークンに関する考察
Web プッシュトークンの性質上、Web プッシュを実装する際には以下の点を考慮してください。
| 検討 | 詳細 |
|---|---|
| サービスワーカー | デフォルトでは、Web SDK はmanageServiceWorkerExternally やserviceWorkerLocation のような別のオプションが指定されない限り、./service-worker でサービスワーカーを探す。サービスワーカーの設定が適切でないと、ユーザーのプッシュトークンが期限切れになる可能性があります。 |
| 期限切れトークン | ユーザーが60日以内にWebセッションを開始しなかった場合、そのプッシュトークンは失効する。Brazeは期限切れのプッシュトークンを移行できないため、プッシュプライマーを送信して再エンゲージする必要がある。 |
APIによる手動移行
手動プッシュトークンマイグレーションは、これらの以前に作成されたキーを、APIを通じてBrazeプラットフォームにインポートするプロセスである。
users/track エンドポイント を使用して、iOS (APN s) およびAndroid (FCM) トークンs をプラットフォームにプログラムで移行します。特定ユーザー(関連する外部IDを持つユーザー)と匿名ユーザー(外部IDを持たないユーザー)の両方を移行できる。
プッシュトークン移行時にアプリのapp_id を指定し、適切なプッシュトークンを適切なアプリに関連付ける。各アプリ(iOS、Androidなど)にはそれぞれapp_id 、API KeysページのIdentificationセクションで確認できる。必ず正しいプラットフォームのapp_id を使用すること。
API を使用してウェブプッシュトークンを移行することはできません。これは、ウェブ・プッシュ・トークンが他のプラットフォームと同じスキーマに準拠していないためだ。
ウェブプッシュトークンをプログラムで移行しようとすると、次のようなエラーが表示されることがあります。 Received '400: Invalid subscription auth' sending to 'https://fcm.googleapis.com/fcm/send
APIマイグレーションの代わりに、SDKを統合し、トークン基盤が自然に再集積できるようにすることをお勧めします。
識別されたユーザーの場合は、push_token_import フラグをfalse に設定 (またはパラメーターを省略) して、external_id、app_id、token の値をユーザー attributes オブジェクトで指定します。
以下に例を示します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-API-KEY-HERE' \
--data-raw '{
"attributes" : [
{
"push_token_import" : false,
"external_id": "example_external_id",
"country": "US",
"language": "en",
"YOUR_CUSTOM_ATTRIBUTE": "YOUR_VALUE",
"push_tokens": [
{"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING"}
]
}
]
}'
他のシステムからプッシュトークンをインポートする場合、external_id が利用できるとは限らない。この状況では、push_token_import フラグをtrue に設定し、app_id とtoken の値を指定します。Brazeは、トークンごとに一時的な匿名ユーザープロファイルを作成し、これらの個人へのメッセージを継続できるようにする。トークンがすでにBrazeに存在する場合、リクエストは無視される。
以下に例を示します。
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
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-API-KEY-HERE' \
--data-raw '{
"attributes": [
{
"push_token_import" : true,
"email": "[email protected]",
"country": "US",
"language": "en",
"YOUR_CUSTOM_ATTRIBUTE": "YOUR_VALUE",
"push_tokens": [
{"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING", "device_id": "DEVICE_ID"}
]
},
{
"push_token_import" : true,
"email": "[email protected]",
"country": "US",
"language": "en",
"YOUR_CUSTOM_ATTRIBUTE_1": "YOUR_VALUE",
"YOUR_CUSTOM_ATTRIBUTE_2": "YOUR_VALUE",
"push_tokens": [
{"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING", "device_id": "DEVICE_ID"}
]
}
]
}'
インポート後、匿名ユーザーがBraze対応バージョンのアプリを起動すると、Brazeは自動的にインポートしたプッシュトークンをBrazeユーザープロファイルに移動し、一時プロファイルをクリーンアップする。
Brazeは月に一度、push_token_import フラグを持つ匿名プロファイルで、プッシュトークンを持っていないものをチェックする。匿名プロファイルにプッシュトークンがなくなった場合、Brazeはプロファイルを削除する。しかし、匿名プロファイルにまだプッシュトークンが残っていて、実際のユーザーがまだそのプッシュトークンでデバイスにログインしていないことを示唆している場合、Brazeは何もしない。
Androidのプッシュトークンをインポートする
iOSアプリには、プッシュを表示するためのフレームワークが1つしかなく、プッシュ通知に必要なプッシュトークンと証明書さえあれば、プッシュ通知はすぐにレンダリングされるため、これらのステップは必要ない。
Braze SDKの統合が完了する前にAndroidプッシュ通知をユーザーに送信する必要がある場合は、キーと値のペアを使用してプッシュ通知を検証する。
プッシュペイロードを処理し表示するレシーバーが必要である。プッシュペイロードをレシーバーに通知するには、必要なキーと値のペアをプッシュキャンペーンに追加する。これらのペアの値は、ブレイズの前に使用した特定のプッシュパートナーによって決まる。
プッシュ通知プロバイダーによっては、Brazeがキーと値のペアをフラットにし、適切に解釈できるようにする必要がある。特定のAndroidアプリのキーと値のペアをフラットにするには、カスタマー・サクセス・マネージャーに連絡する。
GitHub でこのページを編集