热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

admob广告开发者报表api

广告是移动应用非常好的变现模式,作为开发者经常会接很多家的广告平台,每个广告平台都有自己的报表系统,就会有一个各个平台数据汇总分析的需求&

广告是移动应用非常好的变现模式,作为开发者经常会接很多家的广告平台,每个广告平台都有自己的报表系统,就会有一个各个平台数据汇总分析的需求,首先第一步就需要从各个广告平台获取数据,除了在web页面提供基本的数据导出功能,基本上各个平台都会提供 api 来方便数据拉取的自动化。

admob 是 google 的移动开发者广告平台,同样也提供了完备的 api 来获取报表数据

创建 API 凭证

报表 api 使用 oauth 2.0 授权,需要先开通云平台账号,需要填一下账单信息。开通账号后,在平台上创建一个 oauth 2.0 的凭证

google oauth 授权

创建完成后,下载JSON 秘钥文件,保存为 client_secrets.json

使用 google api 的 python 库

sudo pip3 install google-api-python-client
sudo pip3 install oauth2client

初始化服务

from apiclient import sample_toolsscope = ['https://www.googleapis.com/auth/adsense.readonly']
client_secrets_file = 'client_secrets.json'service, _ = sample_tools.init('', 'adsense', 'v1.4', __doc__,client_secrets_file,parents=[], scope=scope
)

调用服务 api

results = service.accounts().reports().generate(accountId='pub-131xxxxxxxxxxxxx',startDate=start.strftime('%Y-%m-%d'),endDate=end.strftime('%Y-%m-%d'),metric=metric,dimension=dimension,useTimezoneReporting=True,
).execute()

accountId: 在 admob 平台的首页上 https://apps.admob.com/v2/home 点击自己的头像, 发布商 ID 就是 accountId
metric: 指标项,点击、展示、收入等
dimension: 维度,日期、app、广告位、国家等
startDate: 开始日期,yyyy-mm-dd 格式
endDate: 结束时间,yyyy-mm-dd 格式
useTimezoneReporting: 使用账户所在的时区

参考代码

代码依赖了一个 client_secrets.json 的授权文件

import json
import datetime
import argparse
from apiclient import sample_toolsdef collect(start=None, end=None):if not start:start = datetime.datetime.now() - datetime.timedelta(days=1)if not end:end = startscope = ['https://www.googleapis.com/auth/adsense.readonly']client_secrets_file = 'client_secrets.json'service, _ = sample_tools.init('', 'adsense', 'v1.4', __doc__,client_secrets_file,parents=[], scope=scope)dimension = ["DATE", "APP_NAME", "APP_PLATFORM", "AD_UNIT_NAME", "AD_UNIT_ID", "COUNTRY_CODE"]metric = ["AD_REQUESTS", "CLICKS", "INDIVIDUAL_AD_IMPRESSIONS", "EARNINGS", "REACHED_AD_REQUESTS_SHOW_RATE"]results = service.accounts().reports().generate(accountId='pub-131xxxxxxxxxxxxx',startDate=start.strftime('%Y-%m-%d'),endDate=end.strftime('%Y-%m-%d'),metric=metric,dimension=dimension,useTimezoneReporting=True,).execute()headers = [i.lower() for i in dimension + metric]datas = []for row in results.get('rows'):data = {}for i in range(len(row)):data[headers[i]] = row[i]datas.append(data)return datasdef transform(datas):for data in datas:# 数据转化passreturn datasdef serialize(datas):for data in datas:print(json.dumps(data))def main():parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter,description="""Example:python3 admob.py -s 20181025 -e 20181028""")parser.add_argument('-s', '--start',type=lambda d: datetime.datetime.strptime(d, '%Y%m%d'),help='start time',default=None)parser.add_argument('-e', '--end',type=lambda d: datetime.datetime.strptime(d, '%Y%m%d'),help='end time',default=None)args = parser.parse_args()serialize(transform(collect(args.start, args.end)))if __name__ == '__main__':main()

参考链接

  • google 广告平台报表 api: https://developers.google.com...
  • google 广告平台指标和维度:
    https://developers.google.com...
  • google oauth 授权: https://developers.google.com...
  • How to use Google Adsense API to download Adsense data: https://009co.com/?p=389
  • google admob 平台: https://apps.admob.com/v2/home
  • google 云平台: https://console.cloud.google....
  • adsense 平台凭据: https://console.cloud.google....
转载请注明出处
本文链接:http://www.hatlonely.com/2018...



推荐阅读
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
author-avatar
npa3689305
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有