Analytics REST API
Send Analytics events from non-Unity games through the REST API.
読み終わるまでの所要時間 3 分最終更新 15日前
Unity を使用しない開発者は、ウェブエンドポイントまたは REST API を介して API にアクセスできます。REST API はより柔軟性があり、好みの言語やゲーム開発エンジンを使用してワークフローを自動化することができます。 Analytics では以下の REST API が提供されています。
推奨ガイド
ランダムな一意の userID の生成
REST API は、ランダムな一意の userID を生成するための以下の方法を提供します。https://collect.analytics.unity3d.com/api/analytics/collect/v1/uuidCollect API エンドポイントへのイベントの送信
SDK を通じて送信できない (例えば、ゲームサーバーからの、または Unity 以外のゲーム用の) イベントがある場合、Collect REST API がイベントを記録して Unity に直接送信します。https://collect.analytics.unity3d.com/api/analytics/collect/v1/projects/{projectId}/environments/{environmentName}Content-Type: application/jsonイベントペイロード
すべてのイベントは、JSON ドキュメントとしてリクエストの本体でサーバーに送信する必要があります。ドキュメントは、イベントタイプごとに異なります。 エンドポイントが受け入れる 2 つの形式があります。- 単一イベント形式
- 一括イベント形式
1. 単一イベント形式
必須でないパラメーターをドキュメントに組み込む必要はありません。空のパラメーターまたは null パラメーターを送信するのではなく、これらを省略します。タイムスタンプが過去 31 日より前か今後 24 時間より先のイベントは、有効範囲外であるため拒否されます。{ "eventName": "specific event code - eg. gameStarted", "userID": "ABCD1-4321a879b185fcb9c6ca27abc5387e914", "unityInstallationID": "Optional-Installation-ID", "unityPlayerID": "Optional-Authenticated-Player-ID", "sessionID": "4879bf37-8566-46ce-9f3b-bd18d6ac614e", "eventUUID": "374cc674-9785-4772-8cca-d7cdf517a590", "eventTimestamp": "yyyy-mm-dd hh:mm:ss.SSS", "eventParams": { "platform": "WEB", "param1": "stringParam", "param2": true, "param3": 1234, "param4": [ "a", "b", "c" ] }}
2. 一括イベント形式
複数のイベントを 1 つの POST で送信できます。このアプローチは、接続プーリングの効率性のために推奨されます。POST サイズは 5 MB 未満にしてください。それを超えると拒否されることがあります。 個別の各イベントの形式は同じですが、個々のイベントを保持する eventList 配列によって表されます。例:ノート: 一括イベントリストの内部のイベントは、発生した順に維持する必要があります。{ "eventList": [ { "eventName": "clientDevice", "userID": "e44db226-5b29-11ec-819e-dca6325ca17a", "sessionID": "8ebb023e-6edc-11ec-a519-dca6325ca17a", "eventUUID": "02ff8461-8d1d-46bb-94f3-51c81e63b371", "eventVersion": 1, "eventTimestamp": "2022-01-06 03:29:17.030", "eventParams": { "platform": "ANDROID", "userCountry": "US", "clientVersion": "2.0.3", "sdkMethod": "com.unity.services.analytics.Events.Startup" } }, { "eventName": "gameStarted", "userID": "e44db226-5b29-11ec-819e-dca6325ca17a", "sessionID": "8ebb023e-6edc-11ec-a519-dca6325ca17a", "eventUUID": "a379af6c-4fac-4449-b6c7-925ee87b446e", "eventVersion": 1, "eventTimestamp": "2022-01-06 03:29:17.040", "eventParams": { "platform": "ANDROID", "userCountry": "US", "clientVersion": "2.0.3", "sdkMethod": "com.unity.services.analytics.Events.Startup", "userLocale": "en_US" } } ]}
ddnaForgetMe イベントの送信
ddnaForgetMe イベントは、プレイヤーがデータのオプトアウトおよび削除をリクエストしていることを記録するために使用されます。UGS Analytics は、ペイロードの受信後 7 日以内のプレイヤーデータを削除します。 REST API を使用するが独自の UUID ジェネレーターがない場合は、Unity が UUID を生成する機能を提供します。 このイベントを送信した場合は、ユーザーのデータの送信も停止する必要があります。そうしないと、サービスがユーザーのデータを再度収集します。{ "eventName": "ddnaForgetMe", "eventTimestamp": "2020-01-01 12:00:00", "eventUUID": "foo", "eventVersion": 1, "sessionID": "foo", "userID": "foo", "eventParams": { "clientVersion": "foo", "sdkMethod": "foo" }}
PIPL についての同意の送信
中国の新しいデータプライバシー法 (個人情報保護法) は 2021 年 11 月 1 日に発効しました。個人情報とは、名前や住所など個人を特定できるデータです。電子的に、またはその他の方法で格納されます。機密とされる個人情報は、生体認証、性自認、宗教的信念、病歴、財政状態、および 14 歳未満のすべての個人情報です。 PIPL は、オプトインに基づく規制 です。Collect エンドポイントでは、HTTP ヘッダーを使用して、中国にいるユーザーからの同意を識別します。 Collect へのすべての HTTP リクエストで、以下のヘッダーを適宜使用する必要があります。ヘッダー | 説明 |
|---|---|
| PIPL_CONSENT | このヘッダーの存在は、プレイヤーがデータ収集に同意したことを示します。 同意しないプレイヤーは、リクエストでこのヘッダーを設定してはなりません。ヘッダーの値は問題になりません。 |
| PIPL_EXPORT | このヘッダーの存在は、データが処理のために中国国外に送信されることにプレイヤーが同意したことを示します。 同意しないプレイヤーは、リクエストでこのヘッダーを設定してはなりません。ヘッダーの値は問題になりません。 |
ヘッダー値 | 説明 |
|---|---|
| no_consent | PIPL_CONSENT リクエストヘッダーを介したこのリクエストへの同意がないことを示します。 |
| no_export | PIPL_EXPORT リクエストヘッダーを介したこのデータエクスポートリクエストへの同意がないことを示します。 |
curl -v --location --request POST "https://collect.analytics.unity3d.com/collect/api/project/{id}/production" \--header 'Content-Type: application/json' \--header 'PIPL_CONSENT: true' \--header 'PIPL_EXPORT: true' \--data-raw "{ \"userID\": \"some-id\", \"eventName\": \"gameStarted\", \"eventVersion\": 1, \"eventUUID\":\"some-uuid\", \"sessionID\": \"sessionID\", \"eventParams\": { \"platform\": \"ANDROID\", \"clientVersion\": \"testVersion\", \"sdkMethod\": \"UA1_SDKLESS\", \"userLocale\": \"aa_BB\" } }}"