Skip to content

ユーザーをマージする

post

/users/merge

このエンドポイントを使用して、あるユーザーを別のユーザーにマージします。

リクエストごとに最大50件のマージを指定できます。このエンドポイントは非同期です。

前提条件

このエンドポイントを使用するには、users.merge 権限を持つ APIキーが必要です。

レート制限

このエンドポイントには、1分あたり20,000リクエストの共有レート制限が適用されます。このレート制限は、APIレート制限に記載されているように、/users/delete/users/alias/new/users/identify、および /users/alias/update エンドポイントと共有されます。

リクエスト本文

1
2
Content-Type: application/json
Authorization: Bearer YOUR_REST_API_KEY
1
2
3
{
  "merge_updates" : (required, array of objects)
}

リクエストパラメーター

マージ動作

以下に説明する動作は、Snowflakeを利用していないすべてのBraze機能に当てはまります。ユーザーのマージは、メッセージング履歴タブ、セグメントエクステンション、クエリビルダー、およびCurrentsには反映されません。

このエンドポイントは、ターゲットユーザーに以下のフィールドが存在しない場合、それらをマージします。

  • メールアドレス(暗号化されていない場合)
  • 性別
  • 生年月日
  • 電話番号
  • タイムゾーン
  • 市区町村
  • 言語
  • デバイス情報
  • セッション数(両方のプロファイルのセッションの合計)
  • 初回セッションの日付(Brazeは2つの日付のうち早い方を選択します)
  • 最終セッションの日付(Brazeは2つの日付のうち遅い方を選択します)
  • カスタム属性(Brazeはターゲットプロファイル上の既存のカスタム属性を保持し、ターゲットプロファイルに存在しなかったカスタム属性も追加します)
  • カスタムイベントと購入イベントのデータ
  • 「Y日間でX回」セグメンテーション用のカスタムイベントおよび購入イベントのプロパティ(X<=50 かつ Y<=30)
  • セグメント可能なカスタムイベントのサマリー
    • イベント数(両プロファイルの合計)
    • イベントが最初に発生した日時(Brazeは2つの日付のうち早い方を選択します)
    • イベントが最後に発生した日時(Brazeは2つの日付のうち遅い方を選択します)
  • アプリ内購入の合計(セント単位)(両方のプロファイルの合計)
  • 購入総数(両方のプロファイルの合計)
  • 初回購入日(Brazeは2つの日付のうち早い方を選択します)
  • 最終購入日(Brazeは2つの日付のうち遅い方を選択します)
  • アプリの概要
  • Last_X_at フィールド(孤立したプロファイルのフィールドがより新しい場合、Brazeはフィールドを更新します)
  • Campaignのインタラクションデータ(Brazeは最も新しい日付フィールドを選択します)
  • ワークフローの概要(Brazeは最も新しい日付フィールドを選択します)
  • メッセージとメッセージのエンゲージメント履歴
  • Brazeは、アプリが両方のユーザープロファイルに存在する場合にのみセッションデータをマージします。

カスタムイベント日と購入イベント日の動作

これらのマージされたフィールドは「Y日間でX件のイベント」フィルターを更新します。購入イベントの場合、これらのフィルターには「Y日間の購入回数」と「過去Y日間の使用金額」が含まれます。

メールまたは電話番号でユーザーをマージする

識別子として email または phone が指定された場合、識別子に追加の prioritization 値を含める必要があります。prioritization は、複数のユーザーが見つかった場合にどのユーザーをマージするかを指定する順序付き配列である必要があります。つまり、優先順位付けから複数のユーザーが一致した場合、マージは行われません。

配列に指定できる値は次のとおりです。

  • identified
  • unidentified
  • most_recently_updated(最も最近更新されたユーザーを優先することを意味します)
  • least_recently_updated(最も更新が古いユーザーを優先することを意味します)

優先順位配列には、一度に以下のオプションのうち1つしか存在できません。

  • identifiedexternal_id を持つユーザーを優先することを意味します
  • unidentifiedexternal_id を持たないユーザーを優先することを意味します

リクエスト例

基本リクエスト

これはリクエストのパターンを示す基本的なリクエスト本文です。

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
curl --location --request POST 'https://rest.iad-01.braze.com/users/merge' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
{
  "merge_updates": [
    {
      "identifier_to_merge": {
        "external_id": "old-user1"
      },
      "identifier_to_keep": {
        "external_id": "current-user1"
      }
    },
    {
      "identifier_to_merge": {
        "email": "[email protected]",
        "prioritization": ["unidentified", "most_recently_updated"]
      },
      "identifier_to_keep":  {
        "email": "[email protected]",
        "prioritization": ["identified", "most_recently_updated"]
      }
    },
    {
      "identifier_to_merge": {
        "user_alias": {
          "alias_name": "[email protected]",
          "alias_label": "email"
        }
      },
      "identifier_to_keep": {
        "user_alias": {
          "alias_name": "[email protected]",
          "alias_label": "email"
        }
      }
    }
  ]
}'

未識別ユーザーをマージする

以下のリクエストは、メールアドレス [email protected] を持つ最も最近更新された未識別ユーザーを、external ID john を持つユーザーにマージします。この例では、most_recently_updated を使用することでクエリを未識別ユーザー1件に絞り込みます。つまり、このメールアドレスを持つ未識別ユーザーが2人いた場合、external ID john を持つユーザーにマージされるのは1人だけです。

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/merge' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
{
  "merge_updates": [
    {
      "identifier_to_merge": {
        "email": "[email protected]",
        "prioritization": ["unidentified", "most_recently_updated"]
      },
      "identifier_to_keep": {
        "external_id": "john"
      }
    }
  ]
}'

未識別ユーザーを識別済みユーザーにマージする

次の例では、メールアドレス [email protected] を持つ最も最近更新された未識別ユーザーを、メールアドレス [email protected] を持つ最も最近更新された識別済みユーザーにマージします。

most_recently_updated を使用して、クエリを1人のユーザーに絞り込みます(identifier_to_merge では未識別ユーザー1人、identifier_to_keep では識別済みユーザー1人)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
curl --location --request POST 'https://rest.iad-01.braze.com/users/merge' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
{
  "merge_updates": [
    {
      "identifier_to_merge": {
        "email": "[email protected]",
        "prioritization": ["unidentified", "most_recently_updated"]
      },
      "identifier_to_keep": {
        "email": "[email protected]",
        "prioritization": ["identified", "most_recently_updated"]
      }
    }
  ]
}'

most_recently_updated の優先順位付けを含めずに未識別ユーザーをマージする

メールアドレス [email protected] を持つ未識別ユーザーが2人いる場合、このリクエスト例ではユーザーはマージされません。そのメールアドレスを持つ未識別ユーザーが2人存在するためです。このリクエストは、メールアドレス [email protected] を持つ未識別ユーザーが1人だけの場合にのみ機能します。

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/merge' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
{
  "merge_updates": [
    {
      "identifier_to_merge": {
        "email": "[email protected]",
        "prioritization": ["unidentified"]
      },
      "identifier_to_keep": {
        "external_id": "john"
      }
    }
  ]
}'

応答

このエンドポイントには 202400 の2つのステータスコード応答があります。

成功応答の例

ステータスコード 202 は、次の応答本文を返す可能性があります。

1
2
3
{
  "message": "success"
}

エラー応答の例

ステータスコード 400 は、次の応答本文を返す可能性があります。発生する可能性のあるエラーの詳細については、「トラブルシューティング」を参照してください。

1
2
3
{
  "message": "'merge_updates' must be an array of objects"
}

トラブルシューティング

以下の表は、発生する可能性のあるエラーメッセージの一覧です。

New Stuff!