Skip to content

ユーザーを追跡

post

/users/track

このエンドポイントを使用して、カスタムイベント、購入の記録、ユーザープロファイル属性の更新を行います。

前提条件

このエンドポイントを使用するには、users.track パーミッションを持つAPI キーが必要です。

サーバー間通話にAPIを使用している顧客がファイアウォールの内側にいる場合、rest.iad-01.braze.com

レート制限

We apply a base speed limit of 50,000 requests per minute to this endpoint for all customers. Each /users/track request can contain up to 75 event objects, 75 attribute objects, and 75 purchase objects. Each object (event, attribute, and purchase arrays) can update one user each. In total, this means a maximum of 225 users can be updated in a single call. In addition, a single user profile can be updated by multiple objects.

See our page on API rate limits for details, and reach out to your customer success manager if you need your limit increased.

リクエスト本文

1
2
Content-Type: application/json
Authorization: Bearer YOUR_REST_API_KEY
1
2
3
4
5
{
  "attributes" : (optional, array of attributes object),
  "events" : (optional, array of event object),
  "purchases" : (optional, array of purchase object),
}

リクエストパラメータ

パラメータ|必須|データ型|説明
attributes |任意|属性オブジェクトの配列|ユーザー属性オブジェクトを参照。
events |任意|イベント・オブジェクトの配列|イベント・オブジェクトを参照。
purchases |オプション|購入オブジェクトの配列|購入オブジェクトを参照

リクエスト例

メールアドレスによるユーザープロファイルの更新リクエスト例

/users/track エンドポイントを使用すると、電子メール・アドレスによってユーザー・プロファイルを更新できます。

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
    "attributes": [
        {
            "email": "[email protected]",
            "string_attribute": "fruit",
            "boolean_attribute_1": true,
            "integer_attribute": 25,
            "array_attribute": [
                "banana",
                "apple"
            ]
        }
    ],
    "events": [
        {
            "email": "[email protected]",
            "app_id": "your_app_identifier",
            "name": "rented_movie",
            "time": "2022-12-06T19:20:45+01:00",
            "properties": {
                "release": {
                    "studio": "FilmStudio",
                    "year": "2022"
                },
                "cast": [
                    {
                        "name": "Actor1"
                    },
                    {
                        "name": "Actor2"
                    }
                ]
            }
        },
        {
            "user_alias": {
                "alias_name": "device123",
                "alias_label": "my_device_identifier"
            },
            "app_id": "your_app_identifier",
            "name": "rented_movie",
            "time": "2013-07-16T19:20:50+01:00"
        }
    ],
    "purchases": [
        {
            "email": "[email protected]",
            "app_id": "your_app_identifier",
            "product_id": "product_name",
            "currency": "USD",
            "price": 12.12,
            "quantity": 6,
            "time": "2017-05-12T18:47:12Z",
            "properties": {
                "color": "red",
                "monogram": "ABC",
                "checkout_duration": 180,
                "size": "Large",
                "brand": "Backpack Locker"
            }
        }
    ]
}'

電話番号によるユーザープロファイルの更新リクエスト例

/users/track エンドポイントを使用して、電話番号別にユーザープロファイルを更新できます。このエンドポイントは、有効な電話番号が含まれている場合にのみ機能します。

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_REST_API_KEY' \
--data-raw '{
    "attributes": [
        {
            "phone": "+15043277269",
            "string_attribute": "fruit",
            "boolean_attribute_1": true,
            "integer_attribute": 25,
            "array_attribute": [
                "banana",
                "apple"
            ]
        }
    ],
}'

購読グループを設定するリクエスト例

この例では、ユーザを作成し、ユーザ属性オブジェクト内でサブスクリプショングループを設定する方法を示します。

このエンドポイントで購読ステータスを更新すると、external_id で指定されたユーザー(User1 など)が更新され、そのユーザー(User1)と同じ電子メールを持つすべてのユーザーの購読ステータスが更新されます。

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
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
  "attributes": [
  {
    "external_id": "user_identifier",
    "email": "[email protected]",
    "email_subscribe": "subscribed",
    "subscription_groups" : [{
      "subscription_group_id": "subscription_group_identifier_1",
      "subscription_state": "unsubscribed"
      },
      {
        "subscription_group_id": "subscription_group_identifier_2",
        "subscription_state": "subscribed"
        },
        {
          "subscription_group_id": "subscription_group_identifier_3",
          "subscription_state": "subscribed"
        }
      ]
    }
  ]
}'

エイリアス専用ユーザーの作成リクエスト例

/users/track エンドポイントを使用して、リクエスト本文に_update_existing_only キーをfalse という値で設定することで、新しいエイリアスのみのユーザーを作成することができる。この値が省略された場合、エイリアスのみのユーザー・プロファイルは作成されません。エイリアスのみのユーザーを使用すると、そのエイリアスを持つプロファイルが1つ存在することが保証されます。これは、重複したユーザープロファイルの作成を防ぐため、新しい統合を構築する際に特に役立ちます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
{
    "attributes": [
        {
            "_update_existing_only": false,
            "user_alias": {
                "alias_name": "example_name",
                "alias_label": "example_label"
            },
            "email": "[email protected]"
        }
    ],
}'

回答

前述のAPIリクエストのいずれかを使用すると、次の3つの一般的な応答のいずれかを受け取るはずです:成功したメッセージ致命的でないエラーを伴う成功したメッセージ致命的なエラーを伴うメッセージ

成功メッセージ

成功したメッセージには次のような返答がある:

1
2
3
4
5
6
{
  "message" : "success",
  "attributes_processed" : (optional, integer), if attributes are included in the request, this will return an integer of the number of external_ids with attributes that were queued to be processed,
  "events_processed" : (optional, integer), if events are included in the request, this will return an integer of the number of events that were queued to be processed,
  "purchases_processed" : (optional, integer), if purchases are included in the request, this will return an integer of the number of purchases that were queued to be processed,
}

致命的でないエラーを含む成功メッセージ

メッセージは成功したが、致命的でないエラー、例えば、長いイベント・リストの中に無効なイベント・オブジェクトが1つでもあった場合、以下のようなレスポンスが返ってくる:

1
2
3
4
5
6
7
8
{
  "message" : "success",
  "errors" : [
    {
      <minor error message>
    }
  ]
}

成功メッセージの場合、errors の配列でエラーの影響を受けなかったデータはそのまま処理される。

致命的なエラーを含むメッセージ

メッセージに致命的なエラーがある場合、次のような応答が返されます:

1
2
3
4
5
6
7
8
{
  "message" : <fatal error message>,
  "errors" : [
    {
      <fatal error message>
    }
  ]
}

致命的なエラー・レスポンス・コード

リクエストが致命的なエラーに遭遇した場合に返されるステータスコードと関連するエラーメッセージについては、致命的なエラーと応答を参照してください。

provided external_id is blacklisted and disallowed “というエラーが表示された場合、リクエストに “ダミー・ユーザー “が含まれている可能性があります。 詳細については、スパムブロックを参照してください。

よくある質問

同じメールアドレスを持つ複数のプロフィールが見つかった場合はどうなりますか?

external_id が存在する場合、外部 ID を持つ最近更新されたプロファイルが優先的に更新されます。external_id が存在しない場合は、最近更新されたプロフィールが優先的に更新されます。

メールアドレスを持つプロフィールが現在存在しない場合はどうなりますか?

新しいプロフィールが作成され、Eメールのみのユーザーが作成されます。エイリアスは作成されない。メールアドレスによるユーザープロファイルの更新のリクエスト例にあるように、Eメールフィールドは[email protected]

/users/track 、レガシーユーザーデータをどのようにインポートしますか?

ユーザーは、ユーザープロファイルを生成するために、まだモバイルアプリを使用していないユーザーのデータをBraze APIを通じて送信することができます。ユーザーがその後アプリケーションを使用する場合、SDKを介した識別に続くすべての情報は、APIコールを介して作成された既存のユーザープロファイルにマージされます。識別前にSDKによって匿名で記録されたユーザーの行動は、既存のAPI生成ユーザープロファイルと統合された時点で失われます。

セグメンテーションツールは、アプリに関与したかどうかに関係なく、これらのユーザーを含む。ユーザーAPI経由でアップロードされたユーザーのうち、まだアプリとエンゲージしていないユーザーを除外したい場合は、Session Count > 0 というフィルターを追加するだけです。

/users/track 、重複イベントはどのように処理されるのか?

events配列の各eventオブジェクトは、指定された時間にユーザーによってカスタムイベントが1回発生したことを表す。つまり、Brazeに取り込まれる各イベントは、それぞれ独自のイベントIDを持つため、「重複する」イベントは、個別のユニークなイベントとして扱われます。

「このページはどの程度役に立ちましたか?」
New Stuff!