チャネル分類器 API
認証
このAPIは、プロジェクトのAPIキーと秘密鍵を使用して基本認証を使用します。base64エンコードされた認証情報を、{api-key}:{secret-key}のようにリクエストヘッダーに渡します。api-keyをユーザー名に、secret-keyをパスワードに置き換えてください。
認証ヘッダーは次のようになります:
--header 'Authorization: Basic YWhhbWwsdG9uQGFwaWdlZS5jb206bClwYXNzdzByZAo'
詳細については、「API認証情報の検索」を参照してください。
キー/シークレットのペアは、API呼び出しを単一のプロジェクトに適用するものなので、プロジェクトAのキーからの呼び出しは、プロジェクトBの分類子を読み書きすることはできません。
エンドポイント
| データのレジデンシー | エンドポイント: |
|---|---|
| デフォルト | https://amplitude.com/api/2/channel-classifiers |
| 欧州連合 | https://analytics.eu.amplitude.com/api/2/channel-classifiers |
リクエストでは、 https://amplitude.com (デフォルト) または https://analytics.eu.amplitude.com (EU) を使用します。https://analytics.amplitude.comのホスト名はアナリティクスウェブアプリ(ブラウザーUI)です。RESTリクエストにはanalytics.amplitude.comではなく、この表に記載されているホストを使用してください。
分類子の一覧表示
認証済みプロジェクト内のすべてのチャネル分類器を返します。
GET https://amplitude.com/api/2/channel-classifiers
curl --location --request GET 'https://amplitude.com/api/2/channel-classifiers' \
-u '{api-key}:{secret-key}'
レスポンス
{
"channelClassifiers": [
{
"id": "368",
"name": "utm_channels",
"displayName": "UTM Channels",
"description": "Standard channel attribution",
"csvText": "Channel,utm_source,utm_medium\nPaid Search,google|bing,cpc|paid\nDirect,ANY,direct",
"csvDefinition": {
"csvText": "Channel,utm_source,utm_medium\nPaid Search,google|bing,cpc|paid\nDirect,ANY,direct",
"operatorsMap": { "utm_source": "IS", "utm_medium": "IS" },
"columnMetadata": { "utm_source": "event_property", "utm_medium": "event_property" },
"columnMetadataGroupType": {},
"anyKeyword": "ANY",
"separator": "|",
"propertyMetadata": {},
"useWaterfallLogic": true
},
"lastModified": "2026-05-10T18:09:22.275499"
}
]
}
更新での GET レスポンスの使用
GET両方のエンドポイントは、csvDefinition オブジェクトの完全なデータを返します。これは POST と PATCH が受け入れるものと同じ形式であるため、分類器を読み取って、その csvDefinition をそのまま更新に渡すことができます。トップレベルのcsvTextも、便宜上保持されます。
レスポンスからseparatorの値を読み取り、特定の区切り文字を想定するのではなく、変更せずにそのまま渡します。Amplitude UIで作成された分類器は、内部セパレータトークン(例:<ampSeparator>)を使用します。実際の値にはコンマやパイプが含まれる可能性があり、これらが競合するため、Amplitudeはそれを一般的な区切り文字に書き換えません。separatorは、分類器が複数値用の区切り文字なしで保存された場合にnullになることもあります。nullをそのまま返してください。
エラーレスポンス
401-Authorizationヘッダーが欠落しているか、形式が正しくありません。403- 無効なAPIキーまたはシークレットです。
名前で分類子を取得する
単一の分類器の完全な定義を、その name によって返します。
GET https://amplitude.com/api/2/channel-classifiers/{name}
curl --location --request GET 'https://amplitude.com/api/2/channel-classifiers/utm_channels' \
-u '{api-key}:{secret-key}'
パスパラメータ
| パラメータ | 概要 |
|---|---|
name | 必須です。 文字列です。 分類子の derivedPropertyName。リスト エンドポイント から返されるものとまったく同じです。Amplitude UIで作成された分類子には、UUID識別子があります(例:1394d15a-d7fa-4d6f-81a7-56dd27be6f4c)。 |
レスポンス
{
"id": "368",
"name": "utm_channels",
"displayName": "UTM Channels",
"description": "Standard channel attribution",
"csvText": "Channel,utm_source,utm_medium\nPaid Search,google|bing,cpc|paid\nDirect,ANY,direct",
"csvDefinition": {
"csvText": "Channel,utm_source,utm_medium\nPaid Search,google|bing,cpc|paid\nDirect,ANY,direct",
"operatorsMap": { "utm_source": "IS", "utm_medium": "IS" },
"columnMetadata": { "utm_source": "event_property", "utm_medium": "event_property" },
"columnMetadataGroupType": {},
"anyKeyword": "ANY",
"separator": "|",
"propertyMetadata": {},
"useWaterfallLogic": true
},
"lastModified": "2026-05-10T18:09:22.275499"
}
エラーレスポンス
401-Authorizationヘッダーが欠落しているか、形式が正しくありません。403- 無効なAPIキーまたはシークレットです。404- このプロジェクトにはその名前の分類子が見つかりません。
分類子を作成する
指定した name 配下に新しい分類器を作成します。プロジェクト内にその名前の分類器がすでに存在する場合、409 で失敗します。
POST https://amplitude.com/api/2/channel-classifiers/{name}
curl --location --request POST 'https://amplitude.com/api/2/channel-classifiers/utm_channels' \
--header 'Authorization: Basic {api-key}:{secret-key}' \
--header 'Content-Type: application/json' \
--data-raw '{
"displayName": "UTM Channels",
"description": "Standard paid/organic/social/email/direct/referral",
"csvDefinition": {
"csvText": "Channel,utm_source,utm_medium\nPaid Search,google|bing,cpc|paid\nOrganic Search,google|bing,organic\nEmail,ANY,email\nDirect,ANY,direct",
"operatorsMap": {"utm_source": "IS", "utm_medium": "IS"},
"columnMetadata": {"utm_source": "event_property", "utm_medium": "event_property"},
"anyKeyword": "ANY",
"separator": "|",
"propertyMetadata": {},
"useWaterfallLogic": true
}
}'
パスパラメータ
| パラメータ | 概要 |
|---|---|
name | 必須です。 文字列です。 分類器の安定した識別子です。 後でGETまたはPATCHを呼び出す際に、URLでこれを使用します。文字、数字、アンダースコア、およびハイフンのみを使用できます。 |
ボディパラメータ
| パラメータ | 概要 |
|---|---|
displayName | オプションです。文字列。最大 1000 文字です。 UI に表示される人間が読めるラベル。 |
description | オプションです。文字列。最大 1000 文字です。 自由形式の説明。 |
csvDefinition | 必須です。 オブジェクト。分類子の定義。 csvDefinitionフィールドに移動します。 |
レスポンス
{
"status": "created",
"name": "utm_channels"
}
エラーレスポンス
400- 本文が欠落しているcsvDefinition、csvDefinition.csvTextが不足している、またはdisplayName/descriptionが1000文字を超えています。401-Authorizationヘッダーが欠落しているか、形式が正しくありません。403- 無効なAPIキーまたはシークレットです。409- このプロジェクトには同じ名前の分類子がすでに存在します。413-csvDefinition.csvTextは 1 MB を超えています。
クラシファイアを更新する
既存のクラシファイアの定義を、リクエスト本文の完全な csvDefinition に置き換えます。Amplitudeは部分的なCSV更新をサポートしておらず、displayNameとdescriptionはそれらを提供した場合にのみ更新されます。
PATCH https://amplitude.com/api/2/channel-classifiers/{name}
curl --location --request PATCH 'https://amplitude.com/api/2/channel-classifiers/utm_channels' \
--header 'Authorization: Basic {api-key}:{secret-key}' \
--header 'Content-Type: application/json' \
--data-raw '{
"csvDefinition": {
"csvText": "Channel,utm_source,utm_medium\nPaid Search,google|bing|duckduckgo,cpc|paid\nDirect,ANY,direct",
"operatorsMap": {"utm_source": "IS", "utm_medium": "IS"},
"columnMetadata": {"utm_source": "event_property", "utm_medium": "event_property"},
"anyKeyword": "ANY",
"separator": "|",
"propertyMetadata": {},
"useWaterfallLogic": true
}
}'
パスパラメータ
| パラメータ | 概要 |
|---|---|
name | 必須です。 文字列です。 分類子の derivedPropertyName。リスト エンドポイント から返されるものとまったく同じです。このプロジェクトにすでに存在している必要があります。 Amplitude UIで作成された分類子には、UUID識別子があります。 |
ボディパラメータ
| パラメータ | 概要 |
|---|---|
displayName | オプションです。文字列。最大 1000 文字です。 これを設定すると、現在のdisplayNameが置き換えられます。変更せずにそのまま残すには、省略します。 |
description | オプションです。文字列。最大 1000 文字です。 これを設定すると、現在の description が置き換えられます。 |
csvDefinition | 必須です。 オブジェクト。既存の定義の完全な置き換え。 csvDefinitionフィールドに移動します。 |
レスポンス
{
"status": "updated",
"name": "utm_channels"
}
エラーレスポンス
400- 本文が欠落しているcsvDefinition、csvDefinition.csvTextが不足している、またはdisplayName/descriptionが1000文字を超えています。401-Authorizationヘッダーが欠落しているか、形式が正しくありません。403- 無効なAPIキーまたはシークレットです。404- その名前の分類子が見つかりません。413-csvDefinition.csvTextは 1 MB を超えています。
csvDefinitionフィールド
csvDefinitionオブジェクトは分類器ルールを記述します。その形状はPOSTとPATCHで同じです。
| パラメータ | 概要 | | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------- | | csvText | 必須です。 文字列。最大1 MB。UI が作成したものとまったく同じ生の CSV です。 最初の列には結果として得られたチャネル名が格納され、以降の列にはプロパティ規則が格納されます。 複数値が一致した場合、セルは separator で分割されます。「任意の値に一致する」ことを意味するには anyKeyword(デフォルトANY) を使用します。useWaterfallLogicが true の場合、Amplitude は行を上から下へと評価します。 | | operatorsMap | オプションです。オブジェクト。各プロパティ列名を比較演算子にマップします (例: {"utm_medium": "IS"})。 省略された場合、デフォルトは exact-match (IS) です。 | | columnMetadata | オプションです。オブジェクト。各プロパティ列名を、そのプロパティタイプ(event_property、user_property、またはgroup_property)にマップします。 | | columnMetadataGroupType | オプションです。オブジェクト。列がグループプロパティを参照している場合に、各プロパティ列名をグループタイプにマップします。 | | anyKeyword | オプションです。文字列です。 セル内の「任意の値に一致する」ことを意味するキーワードです。 デフォルトはANYです。 | | separator | オプションです。文字列です。 複数の値を持つセルを区切る文字列です(たとえば、 |「google または bing」google | bingと表現する場合)。 実際のプロパティ値に表示されないものを選びます。 | | propertyMetadata | オプションです。オブジェクト。詳細設定プロパティごとに事前に構築されたメタデータは、Amplitudeが本来 operatorsMap + columnMetadata から導出する内容を上書きします。ほとんどの呼び出し元はこれを {} のままにして、Amplitude に自動設定させます。 | | useWaterfallLogic | オプションです。ブール値の場合true、Amplitudeは行を上から下へと評価し、最初に一致した行が勝ちます。 falseの場合、Amplitudeは行を個別に評価します。 デフォルトはfalseです。 |
一般的なパターン
1つの定義をN個のプロジェクトにブロードキャストする
このAPIの古典的なユースケースは、単一の正規CSVを複数の兄弟Amplitudeプロジェクトに適用することです(たとえば、国ごとに1つのプロジェクト)。 ツールにCSVを保持し、各プロジェクトの (api-key, secret-key) ペアをループして PATCH (または、まだ分類子を持っていないプロジェクトの場合は POST ) を送信してください。
このAPIには組み込みのバルクエンドポイントはありません。ツールからプロジェクトを反復処理してください。
アトリビューションにウォーターフォールロジックを使用する
順序付けが重要な場合(たとえば、有料検索をキャプチャする行が、他の方法でも一致する一般的な電子メール行よりも優先される必要がある場合など)、useWaterfallLogic を true に設定してください。その後、Amplitudeは行を上から下へと評価し、最初のマッチが勝ちます。 各行を個別に評価するには、そのまま(空欄に)しておきますfalse。
複数値のセル
「これらの値のいずれか」を表現するには、設定した separator を使用します(例:|):
Paid Search,google|bing|duckduckgo,cpc|paid
プロパティ値がこれら3つのいずれかである場合にgoogle|bing|duckduckgo一致するセルです。
これは役に立ちましたか?