Project ID が一致しない場合
Unity IAP

Unity Analytics Raw Data Export (Unity Analytics 生データエクスポート)

概要

Unity Analytics Raw Data Export の使用で、生のイベントデータすべてにアクセスすることができます。これにより、例えば、カスタムクエリの作成やデータの視覚化など、データを望みのままに使用できます。

REST (Representational State Transfer) API

Unity Analytics に送られるデータ位置すべては Unity のデータストアに保存されます。データは受信、保存されているため、Raw Data Export APIs によって、生のイベントデータをファイルにダウンロードできます。

要件

すべてのリクエストは Unity Project ID (UPID) と API Key を使った HTTP Basic 認証を必要とします。

制限

  • リクエスト期間 (startDate から endDate まで) は 31 日です。

  • Google Analytics による追加制限があります。

ユーザーのワークフロー

  • 生データをエクスポートするには、Create Raw Data Export API を呼び出します。これにより、データを処理する非同期ジョブがトリガされます。処理にかかる時間は、エキスポートするデータ量によります。現在の状態や結果を得るには、Get Raw Data Export API を使います。いったんエキスポートが終了したら、API の返答で結果がわかります。結果には、ファイルと関連するダウンロード URL のリストが含まれています。それらの URL を順にループし、エクスポートしたデータをダウンロードすることができます。

注意

  • リクエスト/応答の日付と時間はすべて、UTC (協定世界時、日本時間は UTC + 9:00) タイムゾーンです。
  • API リクエスト/応答には JSON 形式 (このドキュメントの読み取り用形式) が使われます。データファイル書式は設定可能です。
  • データは .gzip 圧縮ファイルでエキスポートされます。
  • API の ベース URL は https://analytics.cloud.unity3d.com

Raw Data Export の作成

Raw Data Export はプロジェクトとデータセット (イベントタイプ) 単位で特定されます。リクエストの期間は 31 日間に限られます。これは、今後のリリースで変更される場合があります。

Raw Data Export を作成するには以下の HTTP 関数を使用します。

POST api/v2/projects/{UNITY_PROJECT_ID}/rawdataexports

引数は、Content-Type application/json の記載とともにJSON 形式でリクエスト paload に表示されます。

リクエスト引数 必須/オプショナル タイプ 説明
startDate continueFrom を指定しない場合は必須 string エキスポートの開始日 (この日を含む)。日にちは YYYY-MM-DD 形式 (ISO–8601) で表示。
endDate 必須 string エキスポートの終了日 (この日は含まれない)。日にちは YYYY-MM-DD 形式 (ISO 8601) で表示。この日付はクエリを止める日付です。現時点を検索する場合は、endDate に次の日の日付を入力します。
format 必須 string 出力データ形式: json (改行区切り) か tsv
dataset 必須 string 次のイベントタイプのうちの 1 つ: appStart, appRunning, deviceInfo, custom, transaction, userInfo
continueFrom オプション string 継続的にデータをエキスポートするための Raw Data Export ID。これは、以前のエキスポートをそれが終了した時点から継続するために使用されます。詳しくは Continuing を参照してください。startDate を特定する代わりに、continueFrom で前の Raw Data Export ID を指定することもあります。continueFrom と startDate 両方を指定するのは誤りです。

コマンドラインに URL を使ったリクエストのテンプレート

curl --user {UNITY_PROJECT_ID}:{API_KEY} --request POST --header "Content-Type: application/json" --data {REQUEST_JSON}
https://analytics.cloud.unity3d.com/api/v2/projects/{UNITY_PROJECT_ID}/rawdataexports

値の例

UNITY_PROJECT_ID = aa43ae0a-a7a7-4016-ae96-e253bb126aa8
API_KEY = 166291ff148b2878375a8e54aebb1549
REQUEST_JSON = { "startDate": "2016-05-15" , "endDate": "2016-05-16", "format": "tsv", "dataset": "appStart" }

値の例を使った実際のリクエスト

curl --user aa43ae0a-a7a7-4016-ae96-e253bb126aa8:166291ff148b2878375a8e54aebb1549 --request POST --header "Content-Type: application/json" --data '{ "startDate": "2016-05-15" , "endDate": "2016-05-16", "format": "tsv", "dataset": "appStart" }' https://analytics.cloud.unity3d.com/api/v2/projects/aa43ae0a-a7a7-4016-ae96-e253bb126aa8/rawdataexports

応答は、JSON 形式の一般的な Raw Data Export Response Attributes (応答属性) を使用します。

Raw Data Export Response Attributes (応答属性)

応答属性 タイプ 説明
id string Raw Data Export ID
upid string Unity Project ID
createdAt string 作成時間 (ISO 8601 形式)
status string エクスポートの現在の状態。可能な値は running, completed, failed。
duration long データをエクスポートするのにかかった時間 (単位はミリ秒)
request json リクエスト引数
result json エキスポートしたデータを説明する属性を含みます。result はエキスポートが問題なく終了したあとにのみ取得できます。結果を表す属性は以下をご覧ください。
result.size long エクスポートデータの合計サイズ (バイト)
result.eventCount long エクスポートしたイベントの合計数
result.intraDay boolean リクエストが現在の日付を含んでいるとき、その日のすべてのデータが含まれていない場合があります。最後の日付のデータが不完全な場合、この属性は FALSE です。
result.fileList json エキスポートしたデータを含むファイルのリスト。データが何もないときは、ファイルリストは空です。
result.fileList.name string ファイル名
result.fileList.url string ファイルのダウンロード URL。ファイルは gzip 形式に圧縮されます。
result.fileList.size long ファイルのサイズ (バイト)
result.fileList.date string ファイルはこの特定の日付のイベントを含みます。この日付はイベントの提出時間に基づいています。同じ日に複数のファイルがある場合があります。日付の形式は ISO 8601 です。

応答の例

{  
   "id":"8228d1e9-31b3-4a5e-aabe-55d9c8afa052",
   "upid":"beff3f49-b9ed-41a4-91ea-677e9b85e71e",
   "createdAt":"2016-05-10T10:10:10.100+0000",
   "status":"running",
   "duration" : 0,
   "request":{  
      "startDate":"2016-05-01",
      "endDate":"2016-05-02",
      "format":"json",
      "dataset":"appRunning"
   }
}

以前の Raw Data Export からの継続

定期的に Raw Data Exports を行うとき、確実に前の Raw Data Exports から継続したい場合は、startDate の代わりに continueFrom 引数を渡す必要があります。以前の Raw Data Export ID は GET API 経由でフェッチ、または、Dashboard 経由でアクセスできます。

Unity Analytics Project Dashboard の以前の Raw Data Export
Unity Analytics Project Dashboard の以前の Raw Data Export

Raw Data Export の取得

Raw Data Export、または、継続中のエクスポート状態を取得するには、以下の HTTP メソッドを使用します。

GET api/v2/projects/{UNITY_PROJECT_ID}/rawdataexports/{raw_data_export_id}

必要な引数はすべて URL パスに含まれています。

リクエストの例

curl --user {UNITY_PROJECT_ID}:${API_KEY} https://analytics.cloud.unity3d.com/api/v2/projects/{UNITY_PROJECT_ID}/rawdataexports/${ID}

応答は、JSON 形式の Raw Data Export です。Create Raw Data Export の応答と同様です。

応答の例

{  
   "id":"6601f70e-6a0b-48ed-909f-26711af82b49",
   "status":"success",
   "createdAt":"2016-05-21T04:41:54.000+0000",
   "duration":8631714000,
   "request":{  
      "startDate":"2016-02-11T00:00:00.000+0000",
      "endDate":"2016-03-11T00:00:00.000+0000",
      "format":"tsv",
      "dataset":"custom"
   },
   "result":{  
      "size":78355,
      "eventCount":17473,
      "fileList":[  
         {  
            "name":"headers.gz",
            "url":"https://uca-export.s3.amazonaws.com/staging/devTest/custom/appid%3DUNITY_PROJECT_ID/jid%3D6601f70e-6a0b-48ed-909f-26711af82b49/headers.gz?AWSAccessKeyId=AKIAJUXGNF66F4XPWSWA&Expires=1463872651&Signature=PnzIeeI%2FNxSOlKkLVpLcfK%2FxVpU%3D",
            "size":105
         },
         {  
            "name":"part-4b0cf376-3478-4bc8-845e-f73aff5c0be4.gz",
            "url":"https://uca-export.s3.amazonaws.com/staging/devTest/custom/appid%3DUNITY_PROJECT_ID/jid%3D6601f70e-6a0b-48ed-909f-26711af82b49/part-4b0cf376-3478-4bc8-845e-f73aff5c0be4.gz?AWSAccessKeyId=AKIAJUXGNF66F4XPWSWA&Expires=1463872651&Signature=xZk3%2BzQNTQ6yjK2Mh%2FaH338ABn8%3D",
            "size":78250,
            "date":"2016-02-13T00:00:00.000+0000"
         }
      ],
      "intraDay":false
   }
}

すべての Raw Data Exports のリスト

指定したプロジェクトのすべての Raw Data Exports のリストを取得するにはこの HTTP メソッドを使用します。

GET api/v2/projects/{UNITY_PROJECT_ID}/rawdataexports

必要な引数はすべて URL パスに含まれています。

リクエストの例

curl --user {UNITY_PROJECT_ID}:${API_KEY} https://analytics.cloud.unity3d.com/api/v2/projects/${UNITY_PROJECT_ID}/rawdataexports/

応答は、JSON 形式の Raw Data Exports のリストです。エキスポートリストの各要素の定義に関しては、Raw Data Export Response Attributes (応答属性) をご覧ください。

応答の例

[
{  
   "id":"6601f70e-6a0b-48ed-909f-26711af82b49",
   "status":"success",
   "createdAt":"2016-05-21T04:41:54.000+0000",
   "duration":8631714000,
   "request":{  
      "startDate":"2016-02-11T00:00:00.000+0000",
      "endDate":"2016-03-11T00:00:00.000+0000",
      "format":"tsv",
      "dataset":"custom"
   },
   "result":{  
      "size":78355,
      "eventCount":17473,
      "fileList":[  
         {  
            "name":"headers.gz",
            "url":"https://uca-export.s3.amazonaws.com/staging/devTest/custom/appid%3DUNITY_PROJECT_ID/jid%3D6601f70e-6a0b-48ed-909f-26711af82b49/headers.gz?AWSAccessKeyId=AKIAJUXGNF66F4XPWSWA&Expires=1463872651&Signature=PnzIeeI%2FNxSOlKkLVpLcfK%2FxVpU%3D",
            "size":105
         },
         {  
            "name":"part-4b0cf376-3478-4bc8-845e-f73aff5c0be4.gz",
            "url":"https://uca-export.s3.amazonaws.com/staging/devTest/custom/appid%3DUNITY_PROJECT_ID/jid%3D6601f70e-6a0b-48ed-909f-26711af82b49/part-4b0cf376-3478-4bc8-845e-f73aff5c0be4.gz?AWSAccessKeyId=AKIAJUXGNF66F4XPWSWA&Expires=1463872651&Signature=xZk3%2BzQNTQ6yjK2Mh%2FaH338ABn8%3D",
            "size":78250,
            "date":"2016-02-13T00:00:00.000+0000"
         }
      ],
      "intraDay":false
   }
},
{  
   "id":"6601f70e-6a0b-48ed-909f-26711af82b48",
   "status":"success",
   "createdAt":"2016-05-21T04:41:54.000+0000",
   "duration":8631714000,
   "request":{  
      "startDate":"2016-02-11T00:00:00.000+0000",
      "endDate":"2016-03-11T00:00:00.000+0000",
      "format":"tsv",
      "dataset":"custom"
   },
   "result":{  
      "size":78355,
      "eventCount":17473,
      "fileList":[  
         {  
            "name":"headers.gz",
            "url":"https://uca-export.s3.amazonaws.com/staging/devTest/custom/appid%3DUNITY_PROJECT_ID/jid%3D6601f70e-6a0b-48ed-909f-26711af82b48/headers.gz?AWSAccessKeyId=AKIAJUXGNF66F4XPWSWA&Expires=1463872651&Signature=PnzIeeI%2FNxSOlKkLVpLcfK%2FxVpU%3D",
            "size":105
         },
         {  
            "name":"part-4b0cf376-3478-4bc8-845e-f73aff5c0be4.gz",
            "url":"https://uca-export.s3.amazonaws.com/staging/devTest/custom/appid%3DUNITY_PROJECT_ID/jid%3D6601f70e-6a0b-48ed-909f-26711af82b48/part-4b0cf376-3478-4bc8-845e-f73aff5c0be4.gz?AWSAccessKeyId=AKIAJUXGNF66F4XPWSWA&Expires=1463872651&Signature=xZk3%2BzQNTQ6yjK2Mh%2FaH338ABn8%3D",
            "size":78250,
            "date":"2016-02-13T00:00:00.000+0000"
         }
      ],
      "intraDay":false
   }
}
]

TSV 形式

TSV 形式のエキスポートを選択する場合、ヘッダーは headers.gz の別のファイルで提供されます。データファイルはヘッダーを含んでいません。

ヘッダーファイルの例

ts  appid   type    userid  sessionid   remote_ip   platform    sdk_ver debug_device    user_agent  submit_time name    custom_params

データセット

6 つのデータタイプ (イベントタイプ) はそれぞれ異なります。それらのスキーマの定義は、以下を参照してください。

注意

  • ts はイベントがデバイスで発生した timestamp (タイムスタンプ) です。デバイスで作成されたタイムスタンプは、デバイスの時計とイベントを受け取る遅延により、ずれている場合があります。

  • submit_time は Unity Analytics がイベントを受け取った timestamp (タイムスタンプ) です。

AppStart イベント

{
   "namespace":"com.unity.analytics.commons.schema",
   "name":"AppStartEvent",
   "type":"record",
   "fields":[
       {"name": "ts",   "type": "long", "default": 0}, 
       {"name": "appid", "type": "string", "default": ""},
       {"name": "type", "type": "string", "default": ""}, 
       {"name": "userid", "type": "string", "default": ""},
       {"name": "sessionid", "type": "string", "default": ""},
       {"name": "remote_ip", "type": "string", "default": ""},
       {"name": "platform", "type": "string", "default": ""},
       {"name": "sdk_ver", "type": "string", "default": ""},
       {"name": "debug_device", "type": "boolean", "default": false},
       {"name": "user_agent", "type": "string", "default": ""},
       {"name": "submit_time", "type": "long", "default": 0} 
   ]
}

AppRunning イベント

{
   "namespace":"com.unity.analytics.commons.schema",
   "name":"AppRunningEvent",
   "type":"record",
   "fields":[
       {"name": "ts",   "type": "long", "default": 0}, 
       {"name": "appid", "type": "string", "default": ""},
       {"name": "type", "type": "string", "default": ""},
       {"name": "userid", "type": "string", "default": ""},
       {"name": "sessionid", "type": "string", "default": ""},
       {"name": "remote_ip", "type": "string", "default": ""},
       {"name": "platform", "type": "string", "default": ""},
       {"name": "sdk_ver", "type": "string", "default": ""},
       {"name": "debug_device", "type": "boolean", "default": false},
       {"name": "user_agent", "type": "string", "default": ""},
       {"name": "submit_time", "type": "long", "default": 0}, 
       {"name": "duration", "type": "int", "default": 0}
   ]
}

Custom イベント

{
   "namespace":"com.unity.analytics.commons.schema",
   "name":"CustomEvent",
   "type":"record",
   "fields":[
       {"name": "ts",   "type": "long", "default": 0}, 
       {"name": "appid", "type": "string", "default": ""},
       {"name": "type", "type": "string", "default": ""},
       {"name": "userid", "type": "string", "default": ""},
       {"name": "sessionid", "type": "string", "default": ""},
       {"name": "remote_ip", "type": "string", "default": ""},
       {"name": "platform", "type": "string", "default": ""},
       {"name": "sdk_ver", "type": "string", "default": ""},
       {"name": "debug_device", "type": "boolean", "default": false},
       {"name": "user_agent", "type": "string", "default": ""},
       {"name": "submit_time", "type": "long", "default": 0}, 
       {"name": "name", "type": "string", "default": ""},
       {
           "name":"custom_params",
           "type":["null",{
               "type":"map",
               "values": ["string","null"],
               "default": ""
           }],
           "default": null
       }
   ]
}

DeviceInfo イベント

{
   "namespace":"com.unity.analytics.commons.schema",
   "name":"DeviceInfoEvent",
   "type":"record",
   "fields":[
       {"name": "ts",   "type": "long", "default": 0}, 
       {"name": "appid", "type": "string", "default": ""},
       {"name": "type", "type": "string", "default": ""}, 
       {"name": "userid", "type": "string", "default": ""},
       {"name": "sessionid", "type": "string", "default": ""},
       {"name": "remote_ip", "type": "string", "default": ""},
       {"name": "platform", "type": "string", "default": ""},
       {"name": "sdk_ver", "type": "string", "default": ""},
       {"name": "debug_device", "type": "boolean", "default": false},
       {"name": "user_agent", "type": "string", "default": ""},
       {"name": "submit_time", "type": "long", "default": 0}, 
       {"name": "debug_build", "type": "boolean", "default": false},
       {"name": "rooted_jailbroken", "type": "boolean", "default": false},
       {"name": "processor_type", "type": "string", "default": ""},
       {"name": "system_memory_size", "type": "string", "default": ""},
       {"name": "make", "type": "string", "default": ""},
       {"name": "app_ver", "type": "string", "default": ""},
       {"name": "deviceid", "type": "string", "default": ""},
       {"name": "license_type", "type": "string", "default": ""},
       {"name": "app_install_mode", "type": "string", "default": ""},
       {"name": "model", "type": "string", "default": ""},
       {"name": "engine_ver", "type": "string", "default": ""},
       {"name": "os_ver", "type": "string", "default": ""},
       {"name": "app_name", "type": "string", "default": ""},
       {"name": "timezone", "type": "string", "default": ""},
       {"name": "ads_tracking", "type": "boolean", "default": false},
       {"name": "adsid", "type": "string", "default": ""}
   ]
}

Transaction イベント

{
   "namespace":"com.unity.analytics.commons.schema",
   "name":"TransactionEvent",
   "type":"record",
   "fields":[
       {"name": "ts",   "type": "long", "default": 0},
       {"name": "appid", "type": "string", "default": ""},
       {"name": "type", "type": "string", "default": ""},
       {"name": "userid", "type": "string", "default": ""},
       {"name": "sessionid", "type": "string", "default": ""},
       {"name": "remote_ip", "type": "string", "default": ""},
       {"name": "platform", "type": "string", "default": ""},
       {"name": "sdk_ver", "type": "string", "default": ""},
       {"name": "debug_device", "type": "boolean", "default": false},
       {"name": "user_agent", "type": "string", "default": ""},
       {"name": "submit_time", "type": "long", "default": 0},        {
           "name":"receipt",
           "type":["null",{
               "type":"record",
               "name": "receiptRecord",
               "fields":[
                   {"name": "data", "type": "string", "default": ""},
                   {"name": "signature", "type": "string", "default": ""}
               ]
           }],
           "default": null
       },
       {"name": "currency", "type": "string", "default": "USD"},
       {"name": "amount", "type": "float", "default": 0},
       {"name": "transactionid", "type": "long", "default": 0},
       {"name": "productid", "type": "string", "default": ""}
   ]
}

UserInfo イベント

{
   "namespace":"com.unity.analytics.commons.schema",
   "name":"UserInfoEvent",
   "type":"record",
   "fields":[
       {"name": "ts",   "type": "long", "default": 0},
       {"name": "appid", "type": "string", "default": ""},
       {"name": "type", "type": "string", "default": ""},
       {"name": "userid", "type": "string", "default": ""},
       {"name": "sessionid", "type": "string", "default": ""},
       {"name": "remote_ip", "type": "string", "default": ""},
       {"name": "platform", "type": "string", "default": ""},
       {"name": "sdk_ver", "type": "string", "default": ""},
       {"name": "debug_device", "type": "boolean", "default": false},
       {"name": "user_agent", "type": "string", "default": ""},
       {"name": "submit_time", "type": "long", "default": 0},
       {"name": "sex", "type": "string", "default": ""},
       {"name": "custom_userid", "type": "string", "default": ""},
       {"name": "birth_year", "type": "int", "default": 0}
   ]
}

Project ID が一致しない場合
Unity IAP