Identify API
地域
ベースURLは、プロジェクトのデータのレジデンシーによって異なります。このページ内のすべての例では、プロジェクトがAmplitudeのEUデータセンターを利用している場合を除き、デフォルトのベースURLを使用してください。EUデータセンターを利用している場合は、この表に記載されているEU用のベースURLを使用してください。
このAPIでは、イベント取り込みのホストとしてapi2.amplitude.com(デフォルト)またはapi.eu.amplitude.com(EU)が使用されます。他のAmplitude APIでは、別のホスト名(api.amplitude.com、core.amplitude.com、data-api.amplitude.com、experiment.amplitude.comなど)が使用されます。https://analytics.amplitude.comのホスト名は、アナリティクスWebアプリ(ブラウザーUI)であり、取り込みのエンドポイントではありません。
| データのレジデンシー | ベースURL |
|---|---|
| デフォルト | https://api2.amplitude.com |
| 欧州連合 | https://api.eu.amplitude.com |
考慮事項
レート制限
Amplitudeは、ユーザープロパティを1時間あたり1800回以上更新する個々のユーザーを(Amplitude IDによって)レート制限します。この制限はユーザープロパティの同期に適用され、イベントの取り込みには適用されません。Amplitudeは引き続きイベントを取り込みますが、そのユーザーのユーザープロパティ更新をドロップする場合があります。
- まだ追跡していないユーザープロパティを更新できます。 プロパティ値は、ユーザーの次のイベントが発生するまでプラットフォームに適用または表示されません。 詳細については、「ユーザープロパティの適用」を参照してください。
- 更新は遡及的ではなく、将来のイベントにのみ適用されます。
- Amplitudeでは、1秒あたりのイベント数のしきい値を超過する
device_idsやuser_idsのリクエストをスロットリングします。リクエストがスロットリングされると、HTTPステータスコード「429」が返されます。リクエスト内のすべてのデバイスに対するイベント送信を15秒間停止してからリトライしてください。ステータスコード「429」が表示されなくなるまでリトライを続けます。同じuser_idを使用して複数のデバイスからイベントを同時送信すると、Amplitudeではすべてのデバイスがスロットリングされます。AmplitudeのHTTP V2 APIからのすべてのスロットリングとステータスコードガイダンスは、Identify APIにも適用されます。 - Amplitudeでは、日付を文字列として比較するため、ISO 8601形式(
YYYY-MM-DDTHH:mm:ss)を使用します。この形式を使用すると、Webアプリで日付比較を実行できます。たとえば、'2016-01-31' > '2016-01-01'です。 この形式は、'2017-08-07T10:09:08' > '2017-08-07T01:07:00'などの日時値にも適用されます。 - 更新はイベントとしてカウントされないため、Redshiftに表示されません。
- Identify API呼び出しはイベントとしてカウントされないため、APIは「アクティブユーザー」や「新規ユーザー」の定義に影響を与えません。また、呼び出しはAmplitudeの月間イベント数に追加されません。
- 既存の値から
user_idフィールドを変更した場合、Amplitudeでは新規ユーザーが作成されます。user_idの現行値が「null」の場合、AmplitudeではAmplitudeユーザーが新規作成されません。
リクエスト
POST https://api2.amplitude.com/identify
curl --location --request POST 'https://api2.amplitude.com/identify' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'api_key=<API-KEY>' \
--data-urlencode 'identification=[{"user_id":"value", "user_properties":{"propertyNameToUpdate":"newValue"}}]'
必要なパラメータ
これらのパラメータは、GETリクエスト内のクエリパラメータとして送信するか、POSTリクエスト内の本文パラメータとして送信してください。本文は、form-dataまたはx-www-form-urlencodedにする必要があります。
| 名前 | 概要 |
|---|---|
api_key | プロジェクトのAPIキー。 |
identification | 単一のJSON識別オブジェクトまたはそれぞれが1つの識別情報を表すJSONオブジェクトの配列のいずれかです。 |
識別のパラメータキー
| 名前 | 概要 |
|---|---|
user_id | device_idがある場合を除き、必須。文字列です。 指定したUUID(ユニークユーザーID)。user_idを使用してリクエストを送信したものの、そのIDがAmplitudeシステムにまだ存在していない場合、当該のuser_idに紐づいているユーザーはイベントの初回発生まで新規ユーザーとしてマークされません。 |
device_id | user_idがある場合を除き、必須。文字列です。 デバイス固有の識別子。iOS上のIdentifier for Vendor (IDFV)などです。 |
user_properties | オプションです。辞書。 ユーザーに関連付けられたデータを表すキーと値のペアの辞書。 それぞれの異なる値は、Amplitudeダッシュボードにユーザーセグメントとして表示されます。 オブジェクトの深さは40レイヤーを超えてはなりません。プロパティ値を配列に保存することができ、Amplitudeは日付値を文字列値に変換します。 |
groups | オプションです。辞書。 この機能は、アカウントアドオンを購入したエンタープライズユーザーのみが利用できます。ユーザのグループを表すキーと値のペアの辞書。 グループを設定すると、アカウントレベルのレポートを使用できます。 最大5つの固有のグループタイプと合計10のグループを追跡できます。 |
app_version | オプションです。文字列です。 ユーザーが使用しているアプリのバージョンです。 |
platform | オプションです。文字列です。 データを送信しているプラットフォームです。 |
os_name | オプションです。文字列です。 ユーザーが使用しているモバイルオペレーティングシステムまたはブラウザ。 |
os_version | オプションです。文字列です。 ユーザーが使用しているモバイルオペレーティングシステムまたはブラウザのバージョン。 |
device_brand | オプションです。文字列です。 ユーザーが使用しているデバイスのブランド。 |
device_manufacturer | オプションです。文字列です。 ユーザーが使用しているデバイスのデバイス製造元です。 |
device_model | オプションです。文字列です。 ユーザーが使用しているデバイスモデル。 |
carrier | オプションです。文字列です。 ユーザーが所有している通信事業者。 |
country | オプションです。文字列です。 ユーザーがいる国です。 |
region | オプションです。文字列です。 ユーザーが属する地理的地域。 |
city | オプションです。文字列です。 ユーザーがいる都市です。 |
dma | オプションです。文字列です。 ユーザーの指定された市場エリア。 |
language | オプションです。文字列です。 ユーザーが設定した言語。 |
paying | オプションです。文字列です。 ユーザーが支払いをしているかどうか。 |
start_version | オプションです。文字列です。 ユーザーが最初に使用していたアプリのバージョン。 |
「user_properties」でサポートされる操作
user_propertiesフィールドは次の操作をサポートしています。
| 名前 | 概要 |
|---|---|
$set | プロパティの値を設定します。 |
$setOnce | 値がまだ設定されていない場合にのみ値を設定します。 |
$add | 数値プロパティに数値を追加します。 |
$appendおよび$prepend | ユーザープロパティ配列に値を付け加える、または先頭に追加します。 |
$unset | プロパティを削除します。 |
$preInsert | 指定した値がユーザープロパティリストにまだ存在していない場合に、その値をユーザープロパティリストの先頭に追加します。 単一の値または値の配列を受け入れます。 リストが送信されると、リストの順序は維持されます。 |
$postInsert | 指定した値がユーザープロパティリストにまだ存在していない場合、その値をユーザープロパティリストの末尾に追加します。 単一の値または値の配列を受け入れます。 リストが送信されると、リストの順序は維持されます。 |
$remove | 指定した値のすべてのインスタンスをリストから削除します。 単一の値または値の配列を受け入れます。 ディクショナリ内のキーは操作対象のユーザープロパティであり、値は削除対象の項目です。 |
ユーザープロパティ操作とトップレベルのユーザー プロパティを混在させることはできません。 代わりに、$setのオペレーション内に最上位レベルのプロパティを含めます。これらの演算子のいずれかを使用する場合、辞書に含めることができるのはユーザープロパティ演算子のみです。 たとえば、同じリクエスト内で{"$append":{"interests":"Music"}, "subscription type":"paid"}を送信することはできません。
代わりに、以下を送信します。
{
"$set": {
"cohort": "Test A"
},
"$setOnce": {
"startDate": "2015-10-01"
},
"$add": {
"friendCount": 3
},
"$append": {
"interests": "Music"
},
"$prepend": {
"sports": "Tennis"
},
"$unset": {
"oldProperty": "-"
}
}
ステータスコード
| コード | メッセージ |
|---|---|
| 200 | 成功 |
| 400 | 無効なリクエストです。 missing_eventメッセージを受信した場合、識別パラメータが存在しないか、形式が間違っていることを意味します。 |
| 414 | URLの文字数制限があるGETを使用している可能性があります。「GET」ではなく「POST」を使用すると、データがURLに渡されません。 |
| 429 | Amplitudeでは、1秒あたりのイベント数が一定のしきい値を超過するdevice_idsやuser_idsのリクエストがスロットリングされ、コード「429」が返されます。 |
これは役に立ちましたか?