友盟爱恨情仇之Open API接口文档(python版)

他曾是一匹来自北方的狼
为何近日却愁成了加班狗

平日里他曾是安静的导表小哥
每天从友盟导出数据,风雨无阻
这一天,他眉头紧锁
发现了……某个任务需要导出72个excel表
一向懒惰的他开始寻找破阵之术

友盟,无数数据产品经理、数据分析师的数据分析利器,以统计称霸江湖多时。
江湖流传着一份《友盟 Open API.pdf》文档,本文基于Python语言,将文档中大部分数据接口的调用,写成Python函数,以期望方便使用。


数据获取流程大概如下:
通过账号密码获取token ---- 通过token获取appkey ----通过token和appkey获取其他数据


auth_token认证

接收参数:

参数名 是否必须 参数说明 类型及范围
email 必选 用户名 string
password 必选 密码 string

接口调用成功返回数据示例:
{"code":200,"success":"ok","auth_token":"bgymNcCjPC3gY9TUE241"}

#该函数返回一个auth_token
def authorize(user, pasw):
    url = 'http://api.umeng.com/authorize'
    body = {'email': "%s"%(user), 'password': '%s'%(pasw)}
    response = requests.post(url, params = body)
    return response.json()['auth_token']

获取APP列表

接收参数:

参数名 是否必须 参数说明 类型及范围
per_page 可选 每页数量,默认为20 int
page 可选 第几页,默认为1,从1计数 int
q 可选 要查询的app名 string

接口调用成功返回数据示例:
[
{
"name": "Android Demo App",
"category": "阅读资讯",
"created_at": "2011-04-28T11:04:02Z",
"updated_at": "2013-03-06T09:31:10Z",
"platform": "android",
"appkey": "4db949a2112cf75caa00002a"
},
{
"name": "iPhone Demo App",
"category": "工具",
"created_at": "2012-02-23T15:15:33Z",
"updated_at": "2013-03-06T09:31:11Z",
"platform": "iphone",
"appkey": "4f46581552701523110000c9"
}
]

#获取APP列表
def apps(auth_token):
    url = 'http://api.umeng.com/apps?&auth_token=%s'%(auth_token)
    response = requests.get(url)
    return response.json()

获取APP数量 ——所登录友盟账号下的APP数量

#获取APP数量 ——所登录友盟账号下的APP数量
def apps_count(auth_token):
    url = 'http://api.umeng.com/apps/count?auth_token=%s'%(auth_token)
    response = requests.get(url)
    return response.json()['count']

获取APP的基本数据 ——应用列表-全部应用

#获取APP的基本数据 ——应用列表-全部应用
def base(auth_token):
    url = 'http://api.umeng.com/apps/base_data?auth_token=%s'%(auth_token)
    response = requests.get(url)
    return response.json()

获取渠道列表

参数名 是否必须 参数说明 类型及范围
appkey 必选 APP标识 string
date 可选 查询日期,格式为2013-03-01,也可以是today或yesterday,默认为today string
per_page 可选 单页显示数量,默认为10 string
page 可选 当前页数,默认为1 string
响应字段 字段说明
date 查询日期(默认值是today)
total_install_rate 当前渠道新增用户占当日新增用户的比例
active_user 活跃用户
install 新增用户
total_install 总用户数
channel 渠道名称
id 渠道的id
#获取渠道列表
def channels(appkey,auth_token):
    url = 'http://api.umeng.com/channels?appkey=%s&auth_token=%s'%(appkey,auth_token)
    response = requests.get(url)
    return response.json()

获取当前所有版本和基本数据

参数名 是否必须 参数说明 类型及范围
appkey 必选 APP标识 string
date 可选 查询日期,格式为2013-03-01,也可以是today或yesterday,默认为today string
响应字段 字段说明
date 查询日期(默认值是today)
total_install_rate 当前渠道新增用户占当日新增用户的比例
active_user 活跃用户
install 新增用户
total_install 总用户数
version 版本号
#获取当前所有版本和基本数据
'''
def versions(appkey,auth_token):
    url = 'http://api.umeng.com/versions?appkey=%s&auth_token=%s'%(appkey,auth_token)
    response = requests.get(url);print(response.status_code)
    return response

获取今日的基本数据

参数名 是否必须 参数说明 类型及范围
appkey 必选 APP标识 string
响应字段 字段说明
date 日期
active_user 活跃用户
installations 总用户数
launches 启动次数
new_users 新增用户
#获取今日的基本数据
def today_data(appkey, auth_token):
    url = 'http://api.umeng.com/today_data?appkey=%s&auth_token=%s'%(appkey,auth_token)
    response = requests.get(url);print(response.status_code)
    return response

获取任意日期的基本数据

参数名 是否必须 参数说明 类型及范围
appkey 必选 APP标识 string
date 可选 查询日期,格式为2013-03-01 string
响应字段 字段说明
date 日期
active_user 活跃用户
installations 总用户数
launches 启动次数
new_users 新增用户
#获取任意日期的基本数据
def base_data(appkey, date, auth_token):
    url = 'http://api.umeng.com/base_data?appkey=%s&date=%s&auth_token=%s'%(appkey,date,auth_token)
    response = requests.get(url)
    return response.json()

获取用户群列表

#获取用户群列表
def segmentations(appkey, auth_token):
    url = 'http://api.umeng.com/segmentations?appkey=%s&auth_token=%s'%(appkey,auth_token)
    response = requests.get(url)
    return response.json()

获取新增用户汇总

参数名 是否必须 参数说明 类型及范围
appkey 必选 APP标识 string
start_date 必选 开始日期,2012-08-15 string
end_date 必选 结束日期,2012-09-04 string
period_type 可选 日期类型,daily / weekly / monthly,默认为daily string
channels 可选 渠道id,以,分割,如4f6c5c4852701534c9000007,4f86490752701575f5000004 string
versions 可选 版本号,以,分割,如1.1.0,1.1.3 string
segments 可选 分群id,以,分割,如4f6c5c4852701534c9000008,4f86490752701575f5000005 string
#获取新增用户汇总
def new_users(appkey, start_date, end_date, auth_token):
    url = 'http://api.umeng.com/new_users?appkey=%s&start_date=%s&end_date=%s&auth_token=%s'%(appkey, start_date, end_date, auth_token)
    response = requests.get(url)
    return response.json()

获取活跃用户汇总

参数名 是否必须 参数说明 类型及范围
appkey 必选 APP标识 string
start_date 必选 开始日期,2012-08-15 string
end_date 必选 结束日期,2012-09-04 string
period_type 可选 日期类型,daily / weekly / monthly,默认为daily string
channels 可选 渠道id,以,分割,如4f6c5c4852701534c9000007,4f86490752701575f5000004 string
versions 可选 版本号,以,分割,如1.1.0,1.1.3 string
segments 可选 分群id,以,分割,如4f6c5c4852701534c9000008,4f86490752701575f5000005 string
#获取活跃用户汇总
def active_users(appkey, start_date, end_date, auth_token):
    url = 'http://api.umeng.com/active_users?appkey=%s&start_date=%s&end_date=%s&auth_token=%s'%(appkey, start_date, end_date, auth_token)
    response = requests.get(url)
    return response.json()

获取自定义事件Group列表

参数名 是否必须 参数说明 类型及范围
appkey 必选 APP标识 string
start_date 必选 开始日期,2013-01-23 string
end_date 必选 结束日期,2013-02-03 string
period_type 必选 日期类型,daily / weekly / monthly,默认为daily string
versions 可选 版本号以,分割,如1.1.0,1.1.3 string
#获取自定义事件Group列表
def group_list(appkey, page, per_page, start_date, end_date, period_type, auth_token):
    url = 'http://api.umeng.com/events/group_list?appkey=%s&page=%s&per_page=%s&start_date=%s&end_date=%s&period_type=%s&auth_token=%s'%(appkey,page,per_page,start_date,end_date,period_type,auth_token)
    response = requests.get(url)
    return response.json()

获取自定义事件列表

参数名 是否必须 参数说明 类型及范围
appkey 必选 APP标识 string
start_date 必选 开始日期,2013-01-23 string
end_date 必选 结束日期,2013-02-03 string
period_type 必选 daily / weekly / monthly,默认为daily string
group_id 必选 从group_list列表中取到的group_id string
#获取自定义事件列表
def events_list(appkey, start_date, end_date, period_type, group_id, auth_token):
    url = 'http://api.umeng.com/events/group_list?appkey=%s&start_date=%s&end_date=%s&period_type=%s&group_id=%s&auth_token=%s'%(appkey, start_date, end_date, period_type, group_id, auth_token)
    response = requests.get(url)
    return response.json()

获取事件消息数/独立用户数

参数名 是否必须 参数说明 类型及范围
appkey 必选 APP标识 string
start_date 必选 开始日期,2013-01-23 string
end_date 必选 结束日期,2013-02-03 string
period_type 必选 daily / weekly / monthly,默认为daily string
group_id 必选 从group_list列表中取到的group_id string
type 必选 count / device,默认为count string
#获取事件消息数/独立用户数
def events(appkey,group_id,type,start_date,end_date,auth_token):
    url = 'http://api.umeng.com/events/daily_data?appkey=%s&group_id=%s&type=%s&start_date=%s&end_date=%s&auth_token=%s'%(appkey,group_id,type,start_date,end_date,auth_token)
    response = requests.get(url)
    return response.json()

获取参数列表 / 获取参数消息数

当自定义事件有配置参数的时候,获取自定义事件的点击数据,如下:

#获取参数列表
def parameter_list(appkey,event_id,type,start_date,end_date,auth_token):
    url = 'http://api.umeng.com/events/parameter_list?appkey=%s&event_id=%s&type=%s&start_date=%s&end_date=%s&auth_token=%s'%(appkey,event_id,type,start_date,end_date,auth_token)
    response = requests.get(url)
    return response.json()


#获取参数消息数
def parameter_data(appkey,event_id,start_date,end_date,auth_token):
    url = 'http://api.umeng.com/events/parameter_data?appkey=%s&event_id=%s&label=navigate&start_date=%s&end_date=%s&auth_token=%s'%(appkey,event_id,start_date,end_date,auth_token)
    response = requests.get(url)
    return response.json()

哎呀,肚子好饿,吃饭去了,实际应用参考下文~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,464评论 25 707
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,662评论 0 15
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_x阅读 15,967评论 3 119
  • 1.添加需要实现抽屉效果的三个视图,这里需要注意主视图需要放在最后添加 2.实现左滑显示左边视图,右滑出现右边视图...
    azhang_coder阅读 1,064评论 0 3
  • “让我占有你,占有你在你最好的年纪,趁一切还崭新;让我占有你,占有你干净的心温柔的声音,和完美柔软你的身体,身体里...
    小柴胡汤丶阅读 423评论 1 0