このページでは

チャネル分類器 API

認証

このAPIは、プロジェクトのAPIキーと秘密鍵を使用して基本認証を使用します。base64エンコードされた認証情報を、{api-key}:{secret-key}のようにリクエストヘッダーに渡します。api-keyをユーザー名に、secret-keyをパスワードに置き換えてください。

認証ヘッダーは次のようになります:

--header 'Authorization: Basic YWhhbWwsdG9uQGFwaWdlZS5jb206bClwYXNzdzByZAo'

詳細については、「API認証情報の検索」を参照してください。

キー/シークレットのペアは、API呼び出しを単一のプロジェクトに適用するものなので、プロジェクトAのキーからの呼び出しは、プロジェクトBの分類子を読み書きすることはできません。

エンドポイント

リクエストでは、 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}'

レスポンス

json
{
  "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 オブジェクトの完全なデータを返します。これは POSTPATCH が受け入れるものと同じ形式であるため、分類器を読み取って、その 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}'

パスパラメータ

レスポンス

json
{
  "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
  }
}'

パスパラメータ

ボディパラメータ

レスポンス

json
{
  "status": "created",
  "name": "utm_channels"
}

エラーレスポンス

  • 400 - 本文が欠落しているcsvDefinitioncsvDefinition.csvTextが不足している、またはdisplayName/descriptionが1000文字を超えています。
  • 401 - Authorization ヘッダーが欠落しているか、形式が正しくありません。
  • 403- 無効なAPIキーまたはシークレットです。
  • 409 - このプロジェクトには同じ名前の分類子がすでに存在します。
  • 413 - csvDefinition.csvText は 1 MB を超えています。

クラシファイアを更新する

既存のクラシファイアの定義を、リクエスト本文の完全な csvDefinition に置き換えます。Amplitudeは部分的なCSV更新をサポートしておらず、displayNamedescriptionはそれらを提供した場合にのみ更新されます。

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
  }
}'

パスパラメータ

ボディパラメータ

レスポンス

json
{
  "status": "updated",
  "name": "utm_channels"
}

エラーレスポンス

  • 400 - 本文が欠落しているcsvDefinitioncsvDefinition.csvTextが不足している、またはdisplayName/descriptionが1000文字を超えています。
  • 401 - Authorization ヘッダーが欠落しているか、形式が正しくありません。
  • 403- 無効なAPIキーまたはシークレットです。
  • 404 - その名前の分類子が見つかりません。
  • 413 - csvDefinition.csvText は 1 MB を超えています。

csvDefinitionフィールド

csvDefinitionオブジェクトは分類器ルールを記述します。その形状はPOSTPATCHで同じです。

| パラメータ | 概要 | | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------- | | csvText | 必須です。 文字列。最大1 MB。UI が作成したものとまったく同じ生の CSV です。 最初の列には結果として得られたチャネル名が格納され、以降の列にはプロパティ規則が格納されます。 複数値が一致した場合、セルは separator で分割されます。「任意の値に一致する」ことを意味するには anyKeyword(デフォルトANY) を使用します。useWaterfallLogictrue の場合、Amplitude は行を上から下へと評価します。 | | operatorsMap | オプションです。オブジェクト。各プロパティ列名を比較演算子にマップします (例: {"utm_medium": "IS"})。 省略された場合、デフォルトは exact-match (IS) です。 | | columnMetadata | オプションです。オブジェクト。各プロパティ列名を、そのプロパティタイプ(event_propertyuser_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には組み込みのバルクエンドポイントはありません。ツールからプロジェクトを反復処理してください。

アトリビューションにウォーターフォールロジックを使用する

順序付けが重要な場合(たとえば、有料検索をキャプチャする行が、他の方法でも一致する一般的な電子メール行よりも優先される必要がある場合など)、useWaterfallLogictrue に設定してください。その後、Amplitudeは行を上から下へと評価し、最初のマッチが勝ちます。 各行を個別に評価するには、そのまま(空欄に)しておきますfalse

複数値のセル

「これらの値のいずれか」を表現するには、設定した separator を使用します(例:|):

csv
Paid Search,google|bing|duckduckgo,cpc|paid

プロパティ値がこれら3つのいずれかである場合にgoogle|bing|duckduckgo一致するセルです。

これは役に立ちましたか?