Google Analytics API实例

2024-06-09 17:18
文章标签 实例 api google analytics

本文主要是介绍Google Analytics API实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

用Python简单实现Google Analytics API

Google Analytics API
SEO需要经常看网站各种数据,如Visits,Keywords,landing page等,但总要登录Google Analytics(之后简称GA)查看,而且无法与其他系统数据结合。这时,就需要GA API了。GA API自动获取各种数据,不仅可以推送自定义数据,还能与其他的数据相结合。
为了更快获取周报数据,之前用Django做了自动化系统,采集了爱站和百度搜索结果页的数据,这次就加入了GA的各项数据。

1. 系统环境

系统:Ubuntu 13.10
语言:Python 2.7
操作软件:对VPS操作,并非桌面版

2. Google Developers Project创建

要创建Google Developers Project,使用project的API。

  1. 访问Google Developers Project,点击上面的“Create Project”按钮,输入PROJECT NAME并创建,如下图:
    Create Project

  2. 访问左侧边栏“APIs & auth” >> "APIs"。在右侧界面中找到“Analytics API”,使其status为ON。

  3. 访问左侧边栏“APIs & auth” >> "Consent screen"。在右侧界面中设置“EMAIL ADDRESS”和“PRODUCT NAME”。(避免出现“Error: invalid_client no application name”的错误,最后通过StactOverflow的帖子搞定)

  4. 访问左侧边栏“APIs & auth” >> "Credentials"。点击右侧“Create new Client ID”,并做如下设置:
    Create new Client ID

  5. 之后就可以得到“CLIENT ID”,“CLIENT SECRET”,以及“REDIRECT URIS”。这些是认证信息,之后会用来做认证账户使用。

3. 环境配置

运行GA API需要安装Google APIs Client Library for Python库,我直接使用了pip方式安装:

$ pip install --upgrade google-api-python-client

当然也可使用easy_install

$ easy_install --upgrade google-api-python-client

注:我在初次运行时遇到了gflags library缺失的报错,最后通过pip --upgrade python-gflags的方式解决。

4. API文件下载

访问google-api-python-client的Source页面,下载client_secrets.jsonhello_analytics_api_v3.py两个文档。这两个文件的作用是这样的:

  • client_secrets.json存储验证证书。你需要替换掉其中client_idclient_secretredirect_uris这3个字段;
  • hello_analytics_api_v3.py是简单示例文件。可运行获得2012-01-01至2012-01-15的前25个搜索关键词。这个示例文件调用了GA中Management APICore Reporting API这2个API。

你可以修改hello_analytics_api_v3.py来自定义数据:

  • 要修改其中get_top_keywords函数来设置GA的时间范围,数据纬度,细分,搜索,过滤等功能;
  • 关于数据纬度,常用的有ga:bounces、ga:pagePath、ga:visits等,更多可参见官方文档Dimensions & Metrics Reference。

5. 浏览器端验证

可能是因为我设置了Google账户二次验证,当运行hello_analytics_api_v3.py时VPS端弹出了浏览器端验证。
由于是Debian的文字浏览器,摸索了一段时间才会使用。最后因为浏览器无法运行JavaScript中断好久,直到看到服务器端提示,在运行命令后加了参数--noauth_local_webserver。之后把地址复制下来在本地电脑上打开,才最终验证成功。
需要注意的是,只要验证成功,VPS上就会有验证文件,之后可以直接获取数据。
最后获取成功的图片:
数据获取成功

备注

  1. 为了快速实现功能,本文采取了讨巧的方式,直接使用了GA API的示例文件,如有精力,建议阅读下官方指南;
  2. 虽说已经通过GA API调用了数据,但仍是入门级文章,如需深入,建议阅读GA API官方文档,并不断练习。

参考文档

  • 【英文资料】极其建议读一下Tutorial: Hello Analytics API官方文档:https://developers.google.com/analytics/solutions/articles/hello-analytics-api?hl=zh-CN
  • 【英文资料】Google APIs Client Library for Python安装文档:https://developers.google.com/api-client-library/python/start/installation
  • 【中文资料】小黑的《Python and Google Analytics API》:http://itseo.net/direction/show-139.html
  • 【中文资料】STEPHEN的《如何通过google analytics api获取数据零基础 python版》:http://www.stephensem.com/archives/318

这篇关于Google Analytics API实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1045805

相关文章

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

java String.join()方法实例详解

《javaString.join()方法实例详解》String.join()是Java提供的一个实用方法,用于将多个字符串按照指定的分隔符连接成一个字符串,这一方法是Java8中引入的,极大地简化了... 目录bVARxMJava String.join() 方法详解1. 方法定义2. 基本用法2.1 拼接

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创