> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arouter.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# アプリアトリビューション

> HTTP ヘッダーを使用して API リクエストでアプリケーションを識別します。Dashboard 分析とアプリレベルの使用量内訳を強化します。

ARouter は、API リクエストでアプリケーションを識別するためのオプションの HTTP ヘッダーをサポートしています。これらのヘッダーは ARouter Dashboard でのソーストラッキングに使用され、単一のアカウント下の複数のプロジェクトやワークフローにわたるアプリごとの分析と使用量の内訳を提供します。

## ヘッダー

### `HTTP-Referer`

アプリケーションの URL。リクエストのソースを識別するために使用されます。

```
HTTP-Referer: https://myapp.com
```

### `X-Title`

アプリケーションの表示名。Dashboard のアクティビティビューに表示されます。

```
X-Title: My AI App
```

## 実装

ARouter API へのリクエストにこれらのヘッダーを含めます：

<Tabs>
  <Tab title="Python (OpenAI)">
    ```python theme={null}
    from openai import OpenAI

    client = OpenAI(
        base_url="https://api.arouter.ai/v1",
        api_key="lr_live_xxxx",
        default_headers={
            "HTTP-Referer": "https://myapp.com",
            "X-Title": "My AI App",
        },
    )

    response = client.chat.completions.create(
        model="openai/gpt-5.4",
        messages=[{"role": "user", "content": "Hello!"}],
    )
    ```
  </Tab>

  <Tab title="Node.js (OpenAI)">
    ```typescript theme={null}
    import OpenAI from "openai";

    const client = new OpenAI({
      baseURL: "https://api.arouter.ai/v1",
      apiKey: "lr_live_xxxx",
      defaultHeaders: {
        "HTTP-Referer": "https://myapp.com",
        "X-Title": "My AI App",
      },
    });

    const response = await client.chat.completions.create({
      model: "openai/gpt-5.4",
      messages: [{ role: "user", content: "Hello!" }],
    });
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    client := arouter.NewClient("lr_live_xxxx",
        arouter.WithBaseURL("https://api.arouter.ai/v1"),
        arouter.WithHeader("HTTP-Referer", "https://myapp.com"),
        arouter.WithHeader("X-Title", "My AI App"),
    )
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl https://api.arouter.ai/v1/chat/completions \
      -H "Authorization: Bearer lr_live_xxxx" \
      -H "HTTP-Referer: https://myapp.com" \
      -H "X-Title: My AI App" \
      -H "Content-Type: application/json" \
      -d '{
        "model": "openai/gpt-5.4",
        "messages": [{"role": "user", "content": "Hello!"}]
      }'
    ```
  </Tab>

  <Tab title="fetch">
    ```typescript theme={null}
    const response = await fetch('https://api.arouter.ai/v1/chat/completions', {
      method: 'POST',
      headers: {
        Authorization: 'Bearer lr_live_xxxx',
        'HTTP-Referer': 'https://myapp.com',
        'X-Title': 'My AI App',
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        model: 'openai/gpt-5.4',
        messages: [{ role: 'user', content: 'Hello!' }],
      }),
    });
    ```
  </Tab>
</Tabs>

## アプリカテゴリ

ARouter のアナリティクスで正しく表示されるようにアプリを分類します：

| カテゴリ            | 説明                  |
| --------------- | ------------------- |
| `Coding`        | 開発ツール、IDE、コードアシスタント |
| `Creative`      | ライティング、画像生成、アートツール  |
| `Productivity`  | ドキュメント処理、要約、自動化     |
| `Research`      | 知識検索、分析、学術ツール       |
| `Entertainment` | ゲーム、チャット、ロールプレイ     |
| `Other`         | 上記に当てはまらないもの        |

`X-Title` ヘッダーの一部としてカテゴリを渡すか、インテグレーションがサポートしている場合は専用ヘッダーとして渡します。カテゴリはアプリ名とともに Dashboard アナリティクスに表示されます。

## Dashboard アクティビティ

アトリビューションヘッダーを含めると、ARouter Dashboard に以下が表示されます：

* **アプリ名**: アクティビティフィードとリクエストごとのアナリティクスに表示
* **ソース URL**: アプリケーションドメインでリクエストをグループ化するために使用
* **カテゴリ**: アプリタイプ別の使用量内訳に表示
* **アプリごとの使用量**: 帰属されたアプリの Token 消費、コスト、リクエスト量

以下のような場合に特に有用です：

* 1つのアカウントで複数のアプリケーションを管理する場合
* 異なるアプリバージョン間で A/B テストを実行する場合
* どのワークフローが最も多くの使用量を生み出しているか把握する場合

## アトリビューションのメリット

* **アプリ別使用量内訳** — どのアプリが最も多くの Token とコストを消費しているかを確認
* **トラフィック分析** — アプリごとのリクエスト量パターンを把握
* **最適化シグナル** — 最適化のための高コストワークフローを特定

アトリビューションヘッダーは ARouter 側のみで処理され、モデルの動作、ルーティング、または上流プロバイダーには影響しません。
