通过 GA Management API & R 更新 Google Analytics 自定义维度
Updating Google Analytics custom dimensions via GA Management API & R
我一直在尝试在 R 中编写脚本,以通过 Google Analytics Management API 以编程方式更新 Google Analytics 自定义维度(或指标)。
我已使用文档中的此页面来帮助构建调用:
主要问题是我可以发送呼叫,但响应是 404 状态,似乎没有任何回复。奇怪的是,如果我使用相同的参数尝试文档页面上的“试试这个 API”部分,我就可以更改维度名称。看这里:
这是我一直在使用的 R 代码:
library(tidyverse)
library(httr)
ga_edit_auth <- function(client_id,client_secret) {
myapp <- oauth_app("google", client_id,
client_secret)
google_token <- oauth2.0_token(oauth_endpoints("google"), myapp,
scope = "https://www.googleapis.com/auth/analytics.edit")
google_token$init_credentials()
return(google_token)
}
ga_token <- ga_edit_auth(id,secret)
#create the URL
api_url <- "https://www.googleapis.com/analytics/v3/management"
account_slug <- paste('/accounts/',account_id,sep='')
property_slug <- paste('/webproperties/',property_id,sep='')
dim_slug <- '/customDimensions/ga:dimension1'
post_url <- paste(api_url,account_slug,property_slug,dim_slug,sep = '')
#try to change the current dimension name value from 'old' to 'gold'
call <- POST(post_url,
add_headers(Authorization = paste('Bearer', ga_token$credentials$access_token)),
encode = 'json',
body = list(kind = 'analytics#customDimension',
accountId = account_id,
webPropertyId = property_id,
name = 'gold',
index = 1,
scope = 'Hit',
active = TRUE,
id = 'ga:dimension1'
)
)
然后这些是我得到的结果:
call$status_code
#404
content <- content(call,'parsed')
"
{xml_document}
<html>
[1] <body><p>Not Found</p></body>
"
请求方法应该是 PUT 而不是 POST。试试看。
我一直在尝试在 R 中编写脚本,以通过 Google Analytics Management API 以编程方式更新 Google Analytics 自定义维度(或指标)。
我已使用文档中的此页面来帮助构建调用:
主要问题是我可以发送呼叫,但响应是 404 状态,似乎没有任何回复。奇怪的是,如果我使用相同的参数尝试文档页面上的“试试这个 API”部分,我就可以更改维度名称。看这里:
这是我一直在使用的 R 代码:
library(tidyverse)
library(httr)
ga_edit_auth <- function(client_id,client_secret) {
myapp <- oauth_app("google", client_id,
client_secret)
google_token <- oauth2.0_token(oauth_endpoints("google"), myapp,
scope = "https://www.googleapis.com/auth/analytics.edit")
google_token$init_credentials()
return(google_token)
}
ga_token <- ga_edit_auth(id,secret)
#create the URL
api_url <- "https://www.googleapis.com/analytics/v3/management"
account_slug <- paste('/accounts/',account_id,sep='')
property_slug <- paste('/webproperties/',property_id,sep='')
dim_slug <- '/customDimensions/ga:dimension1'
post_url <- paste(api_url,account_slug,property_slug,dim_slug,sep = '')
#try to change the current dimension name value from 'old' to 'gold'
call <- POST(post_url,
add_headers(Authorization = paste('Bearer', ga_token$credentials$access_token)),
encode = 'json',
body = list(kind = 'analytics#customDimension',
accountId = account_id,
webPropertyId = property_id,
name = 'gold',
index = 1,
scope = 'Hit',
active = TRUE,
id = 'ga:dimension1'
)
)
然后这些是我得到的结果:
call$status_code
#404
content <- content(call,'parsed')
"
{xml_document}
<html>
[1] <body><p>Not Found</p></body>
"
请求方法应该是 PUT 而不是 POST。试试看。