Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

stats api

Solomon Li edited this page May 31, 2018 · 13 revisions

/* Title: Monetization Stats API
Sort: 21 */

Unity Ads 为开发者提供了CSV格式的数据统计API(Statistics API, Stats API). 数据统计API所抓到的数据与开发者在开发者后台里看到的相同. 数据统计API可以用来通过编程的方式拉取数据以便使用在自己的系统里.

概览

统计API会做2个阶段的事情:

  1. 首先用户发出一个GET请求进行验证, 当验证通过后会返回一个302的重定向消息. 这个返回里会包含最终统计服务器的链接.
  2. 之后, 再发出一个GET请求, 服务器会返回一个body中包含一个CSV格式的消息.

验证

要使用Unity Ads统计API, 需要在开发者控制台(Dashboard)上拿到一个API key.

API key需要放在验证请求URL的参数apikey的值里.

在成功完成验证后, 服务器会返回一个HTTP 302重定向消息. 统计数据的目标地址会在这个重定向消息的Location HTTP-header里. 真正的数据会在这个Location的URL里.

真正的数据会从重定向后的URL取得,这是一个标准的HTTP请求行为,一般的HTTP client都会支持它。比如 curl -L "https://gameads-admin.applifier.com/stats/monetization-api?apikey=APIKEY" 将会在控制台里输入取得的数据。

URL必须有正确的签名,数据统计服务器才会工作。如果验证失败的话, 会返回一个 HTTP 500 的消息, 消息体里包含错误信息。

{"error":"Authentication error","responseCode":500,"status":"error"}

请求格式

流量变现统计API 支持以下的请求格式:

http://gameads-admin.applifier.com/stats/monetization-api?apikey=<apikey>&fields=<fields>[&splitBy=<splitbyfields>][&scale=<scale>][&start=<startDate>][&end=<endDate>][&sourceIds=<sourceIds>]

比如:

curl -L "https://gameads-admin.applifier.com/stats/monetization-api?apikey=a0db655ac99b68cb4d1835e878e06473277dd061782dbeec813cb3b14cb723ee&splitBy=zone,country&fields=adrequests,available,views,revenue&start=2016-01-01&end=2016-10-01&scale=day&sourceIds=1003843" > ~/Desktop/UnityAdsMonetization.csv

显示的数据域(列):

  • <apikey> 是从 开发者控制台中拿到的
  • <fields> 包含逗号隔开的参数列表:
    • adrequests – 从服务器查询的广告数量
    • available – 经查询后所返回的拥有存量的次数
    • started – 用户开始看了多少次视频
    • views – 用户看完了多少次视频
    • revenue – 赚了多少收入
    • all - 显示上边所有属性

    如果不指明任何属性,默认显示所有属性。

下面几个域可以用于分割数据

注意:同时从多个维度分割可能会造成数据量爆炸,并且如果服务器无法在60秒内完成计算,请求将会超时。

  • <splitbyfields> 包含了使用逗号分隔开分割域:
  • source – 按游戏
  • zone – 按广告位
  • country – 按用户的国家

默认是按国家 country. 如果不想用任何分隔方式, 可以写成 splitBy=none. 开发者可以通过多种条件来分隔数据.

注意: 同时使用多个域来分隔数据可能会造成数据输出量膨胀, 从而造成网络请求失败, 任何超过60秒的请求都会在60秒时被终止.

  • <scale> – 包含数据的时间粒度. 时间总是从UTC 00:00开始计的. 提供的时间粒度包括:
  • all – 不通过时间进行分隔, 只提供一个指定时间段内的总和.
  • hour
  • day
  • week
  • month
  • quarter
  • year

如果不设置<scale>,默认是 day.

  • <start> & <end> – 数据开始和结束时间。
  • 负数代表当前日期之前的日子, 比如 start=-7 代表7天前.
  • 日期使用 ISO 格式 YYYY-MM-DDTHH:mm:ss:sssZ, 例如: 2017-011-01T14:00:00.000Z
  • 开始和结束之间会被进位到下一个小时. 例如, 14:00:05.000Z 会进成 15:00:00.000Z.
  • 使用 day的时候, 使用非午夜0点的 <start> & <end> 仍然可能选择按小时而不是按天.

如果不填写开始与结束时间,<start>默认为-7<end>默认为0,即为过去的一周时间。

  • <sourceIds> – 使用逗号分隔开的用来过滤结果的gameid列表. 默认情况下开发者所有的游戏都会统计出来.
    • 例如:sourceIds=1003843

如果有任何疑问,欢迎使用中文向[email protected]咨询。


Clone this wiki locally