手把手教你用R连接Google Analytics的API取出数据

Google Analytics Haran 8年前 (2017-05-19) 19156次浏览 11个评论

Google Analytics非常强大,但是免费版的有诸多的限制,比如:Google analytics里面最多的记录是5000,而免费的API最多是100W,如果要做细致,个性化的分析,无疑是需要用到API,下面来介绍如何通过R来连接Google Analytics的API来获取数据。

原理

在谷歌API后台创建一个服务器ID,然后给该ID在Google Analytics的账户级别的用户管理里面授予分析的权限,然后在API创建OAuth 2.0型的ID和秘钥,这个就是放在程序里面的。

设置过程

创建服务账号

谷歌API管理里创建服务账号密钥,创建的地址:https://console.developers.google.com/apis/api?,进入后先创建一个项目,然后选择凭据》创建凭据,选择服务账号密钥

手把手教你用R连接Google Analytics的API取出数据

创建后会有个服务器ID,如
手把手教你用R连接Google Analytics的API取出数据

给服务ID授权

在Google Analytics 账户级别的给这个服务器ID授权,权限级别是分析的即可,如:
手把手教你用R连接Google Analytics的API取出数据

 

创建客户端ID

然后返回到谷歌API管理界面,创建 OAuth 2.0授权,一般选择的应用类型是web,如果不知道就选择其他,这个是通用型的:
手把手教你用R连接Google Analytics的API取出数据

创建后会看到这个,客户端id就是后面需要用到的了。
手把手教你用R连接Google Analytics的API取出数据

R中运行

然后在R上

<span style="font-size: 12pt;">library(RGoogleAnalytics)
library(httpuv)
require(RGoogleAnalytics)

token <- Auth(client.id=paste("156582067107-2c86adfpnook88a9fnn1knu7egbpjst7st.",
"apps.googleusercontent.com", sep=""), #客户端ID分拆开
client.secret="bKu-j2SYVpbkQYWAydfvuFepKJ") #客户端密码
#save(token,file="./1token_file") #保存密钥信息,下次使用的时候直接能用
ValidateToken(token)

query.list <- Init(start.date = "2017-2-3", # 设置开始日期
                   end.date = "2017-2-13", # 设置结束日期
                   dimensions = "ga:date",
                   metrics ="ga:newUsers,ga:users,ga:pageviews",
                   max.results = 50000,
                   #filters = "ga:pagePath=@/li/ch.php?",
                   #segments="users::condition::ga:dimension1=~[a-zA-z0-9]",
                  #sort = "-ga:totalEvents",
                  table.id = "ga:1115520585") #核心查询函数
ga.query <- QueryBuilder(query.list)
ga.data <- GetReportData(ga.query, token, split_daywise = T)
write.csv(ga.data,file="D:/gadata/test.csv") # 设置导出文件名</span>

 

手把手教你用R连接Google Analytics的API取出数据
如果没有的包,自行下载。包RGoogleAnalytics是已经将分页查询的功能内置,所以通过这个查询出来的数据都是尽可能不抽样。上述代码中的table.id就是view id。

下面试运行下:
手把手教你用R连接Google Analytics的API取出数据
可以看到数据已经导出来了。
核心函数里面的配置可以看:GA核心API中get函数返回结果解析


如有疑问,可以在文章底部留言或邮件(haran.huang@ichdata.com) 我~
喜欢 (11)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(11)个小伙伴在吐槽
  1. 兄弟呀~ R环境怎么链接的GA啊, 翻不了墙啊。你用的什么VPN啊
    小花花2018-08-01 16:16 回复 Windows 10 | Chrome 63.0.3239.132
    • 自建vps和一枝红杏
      GA小站2018-08-07 19:58 回复 Windows 7 | Chrome 63.0.3239.132
  2. 请问一下 重定向 uri 怎么填的
    小花花2018-08-01 11:59 回复 Windows 10 | Chrome 63.0.3239.132
  3. 请问对接GA的API后是不是网站后台系统的订单、销售额等数据都可以在GA中匹配到浏览数据了?
    小乔2018-06-05 09:00 回复 Windows 7 | Chrome 67.0.3396.62
    • 可以的
      GA小站2018-06-05 21:32 回复 Mac OS X | Chrome 66.0.3359.181
      • 感谢回复。请问:启用GA中的电子商务功能不是就可以跟踪到购买的数据了吗?一定要注册google API进行对接吗?二者有何区别呢?
        小乔2018-06-05 22:23 回复 Windows 7 | Chrome 21.0.1180.89
        • 配置好电子商务,可以直接在Ga里面看到购物数据,不需要注册谷歌API
          GA小站2018-06-06 11:39 回复 Mac OS X | Chrome 66.0.3359.181
  4. 请问授权URL如何设置呢?
    Yena2017-12-19 16:11 回复 Windows 7 | Chrome 62.0.3202.62
    • 开发者后台,添加进去
      GA小站2017-12-20 10:56 回复 Windows 10 | Chrome 63.0.3239.84
  5. 老师您好,想请问您 我已经是阅读和分析权限了,为何还是会报错? error code为403
    曈老板2017-07-27 13:32 回复 Windows 10 | Chrome 59.0.3071.115
    • 错误可能有很多原因的,看返回的报错提示
      GA小站2017-07-27 15:46 回复 Windows 10 | Chrome 59.0.3071.115