# 収益化の統計 API

> 収益化の統計 API を使用して、CSV 形式の広告パフォーマンデータにプログラムでアクセスし、カスタムレポートと分析を行います。

収益化の統計 API を使用すると、収益化データを CSV 形式で直接取得できます。この API は、開発者ダッシュボードに存在するものと同じ統計情報を取得しますが、これを使用することで独自の用途に合わせたプログラムでデータを取得できるようになります。

> **Important:**
>
> メディエーションパートナーが Unity Ads ネットワークの正確なレポートを収集するには、Unity の API キーが必要です。メディエーションインテグレーションに非推奨の Applifier 統計 API をすでに使用している場合は、収益化の統計 API に移行する前にメディエーションパートナーにご相談ください。その場合でも、収益化の統計 API を使用して Unity のネットワークに ping し、データから直接レポートを作成できます。メディエーション顧客でない方でも、新しい API に安全に移行できます。

## Authentication##authentication

> **Note:**
>
> 収益化の統計 API には組織 ID が必要です。この ID はプロジェクトを転送すると変更されます。

> **Note:**
>
> プロジェクトを転送すると組織 ID が変更されます。収益化の統計 API にアクセスするには、この ID が必要です。

キーを生成するには、アクセスリクエストの認証を行う必要があります。

1. [Unity Monetizationダッシュボード](https://cloud.unity.com/monetization)に移動し、**Monetization**メニューを選択します。
2. **Settings** > **API management** を選択します。
3. **収益化統計 API アクセス** セクションから API キーをコピーするか、存在しない場合は **Create Api Key** (API キーを作成) を選択します。

API キーを使用してデータをリクエストする方法の詳細については、[収益化の統計 API に関するドキュメント](/monetization/performance-and-analytics/api/monetization-stats-api.md) を参照してください。

> **Note:**
>
> 収益化の統計 API により、各ユーザーに一意のキーが生成されます。メディエーションインテグレーションのために、個人のキーでも組織全体で機能します。

API キーを `"apikey=<token>"` クエリパラメーターとして、または認証ヘッダー `"Authorization: Token <token>"` を使用して指定する必要があります。このリダイレクト URL はデータを取得します。これは、すべての HTTP クライアントでサポートされている標準的な HTTP の動作です。

認証に失敗した場合、認証サーバーからは、HTTP/2 エラーコードとメッセージを含む本文で応答します。例を次に示します。

```http
400 {"errors":[{"msg":"access token required"}]}
```

## リクエストフォーマット##request-format

Unity Ads サービスから統計データを取得するには、以下の [GET リクエスト](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#request_methods) を使用します。ここで、`<organizationId>` は Unity の組織の [組織コア ID](https://cloud.unity.com/monetization) です。

```http
GET
https://monetization.api.unity.com/stats/v1/operate/organizations/<organizationId>
```

### クエリパラメーター##query-parameters

API ではさまざまな方法でデータを分割できます。一部はリクエストの成功のために必須です。

| **パラメーター** | **説明**                                                                                                              | **必須?**                                   | **ノート**                                            |
| ---------- | ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | -------------------------------------------------- |
| `apikey`   | Monetization (収益化) ダッシュボードから取得した API 認証キー。                                                                          | いいえ 。代わりに Authentication (認証) ヘッダーを利用します。 | 該当なし。                                              |
| `fields`   | 以下の利用できるフィールドの列を定義するカンマ区切りのリスト。- `adrequest_count`
- `start_count`
- `view_count`
- `available_sum`
- `revenue_sum` | はい                                        | 該当なし。                                              |
| `groupBy`  | 行を拡張し、以下のフィールドでデータを分割するカンマ区切りのリスト。- `placement` (広告ユニット ID でデータを分割)
- `country`
- `platform`
- `game` (ゲーム ID)      | いいえ                                       | 該当なし。                                              |
| `scale`    | 時間単位でデータを分割する値。1 日の区切りは 00:00 UTC となります。以下のオプションがサポートされます。- `hour`
- `day`
- `week`
- `month`
- `year`
- `all`      | はい                                        | 該当なし。                                              |
| `start`    | データセットの開始日時、[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) 形式。                                                  | はい                                        | 該当なし。                                              |
| `end`      | データセットの終了日時、[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) 形式。                                                  | はい                                        | 該当なし。                                              |
| `gameIds`  | 結果のフィルターに使用するソースゲーム ID のカンマ区切りリスト。                                                                                  | いいえ                                       | ソース ID を取得するには、`groupBy=game` を使用してリクエストする必要があります。 |

この API は CSV または JSON ファイルを返します。`"Accept"` ヘッダーで出力形式を以下のように指定します。

* CSV の場合は `"Accept: text/csv"` を使用します。
* JSON の場合は `"Accept: application/json"` を使用します。

以下に実際のパラメーター (組織コア ID と API キーのプレースホルダー以外) を使用したリクエスト例を示します。

```http
curl
https://monetization.api.unity.com/stats/v1/operate/organizations/:organizationId?groupBy=country,placement,platform,game&fields=adrequest_count,available_sum,revenue_sum,start_count,view_count&scale=hour&start=2020-05-01T00:00:00Z&end=2020-06-01T23:59:00Z&apikey=:apiKeyValue -H "Accept: text/csv" --output stats.csv
```

> **Note:**
>
> データを複数のディメンションに分割すると、CSV が飛躍的に増大するため、大きいデータセットではタイムアウトする場合もあります。サーバーによるリクエストの処理時間が 60 秒を超えると、リクエストはタイムアウトします。

### リクエストステータスコード##request-status-codes

エンドポイントからリクエストの結果を示す以下のステータスコードが返されます。

| **コード** | **説明**                                          |
| ------- | ----------------------------------------------- |
| `200`   | リクエストが成功しました。                                   |
| `400`   | `organizationId`、または別の必須のパラメーターがクエリから省略されていました。 |
| `401`   | API キーがリクエストにないか、無効です。                          |
| `404`   | 組織が見つかりません。                                     |
| `408`   | リクエストがタイムアウトしました。                               |
| `429`   | リクエストレート制限を超えました。                               |
| `500`   | 不明な理由でリクエストが失敗しました。                             |
| `503`   | サービスを利用できません。                                   |
