Обновление пользовательских измерений Google Analytics с помощью GA Management API & R - PullRequest
0 голосов
/ 21 сентября 2018

Я пытался написать скрипт на R для программного обновления пользовательских измерений (или метрик) Google Analytics через API управления Google Analytics.

Я использовал эту страницу в документации, чтобы помочьпостроить вызов:

https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtReference/management/customDimensions/update

Основная проблема заключается в том, что я могу отправить вызов, но ответ имеет статус 404, и кажется, что ничего не возвращается.Странно то, что если я попробую раздел «Попробуйте этот API» на странице документации с теми же параметрами, я смогу изменить имя измерения.Смотрите здесь:

Successful Google Management API test

Вот код 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>
"

1 Ответ

0 голосов
/ 21 сентября 2018

Метод запроса должен быть PUT, а не POST.Попробуйте это.

...