google-analytics - query - google analytics reporting api
API de Google Analytics: "El usuario no tiene suficientes permisos para esta cuenta". (8)
Asegúrese de darle al correo electrónico de la cuenta de servicio (algo así como [email protected]) permisos para leer / escribir desde su vista de GA.
Admin> Ver> Administración de usuarios> "Agregar permisos para:"
Estoy escribiendo una aplicación de Ruby que accede a la API de Google Analytics para extraer algo de información del experimento.
La aplicación se conecta y se autentica con una cuenta de servicio de Google a través de la siguiente función:
def connect
...
@@client = Google::APIClient.new(:application_name => ''My Service App'',
:application_version => ''1.0.0'')
key_file = Rails.root.join(''config'', ''privatekey.p12'').to_s
key_secret = ''somesecret''
key = Google::APIClient::PKCS12.load_key(key_file, key_secret)
asserter = Google::APIClient::JWTAsserter.new(
SECRETS[:google_service_account_email],
[''https://www.googleapis.com/auth/yt-analytics.readonly'',
''https://www.googleapis.com/auth/analytics.readonly''
],
key
)
@@client.authorization = asserter.authorize()
...
end
... que autentica y descubre ambas API sin problema.
Usar el cliente contra la API de YouTube Analytics funciona sin problemas. Usando la misma cuenta exacta para acceder a la API de Analytics a través de ...
response = @@client.execute({
# ''analytics is the API object retrieved via discover_api()
:api_method => analytics.management.experiments.list,
:parameters => {
''accountId'' => ''AAAAAAAA'',
''profileId'' => ''PPPPPPPP'',
''webPropertyId'' => ''UA-WWWWWWWW-#''
}
})
Resultados en una respuesta de error 403:
{"domain":"global","reason":"insufficientPermissions","message":"User does not have sufficient permissions for this account."}
En cuanto a la autorización, he verificado dos veces la cuenta [email protected] :
- Tiene permisos completos para la interfaz web de Google Analytics. Inicié sesión con la cuenta [email protected] y pude ver los mismos experimentos que intenté enumerar.
- Ha habilitado la API de Analytics. Dentro de la Consola de API, confirmé en la sección Servicios que el elemento de la API de Analytics está en ON. (Al igual que YouTube Analytics).
- Estoy usando los valores apropiados de AccountID, ProfileID y WebPropertyID. Copiado directamente desde la interfaz web de Google Analytics.
Dado que la cuenta de servicio puede acceder al menos a una API (YouTube Analytics), y la cuenta asociada ([email protected]) puede acceder a la interfaz web de Analytics, parece que hay algún problema con la cuenta de servicio que accede a la API de Analytics en particular .
¿Algunas ideas?
Temas similares:
- "No hay permisos suficientes" cuenta de servicio de API de Google Analytics (NOTA: este error es ligeramente diferente al mío)
- Publicación de blog de Analytics, consulte la sección de comentarios para ''permisos''
Asegúrese de que está ingresando el table_id correcto
(ie. GetProfiles(oauth_token)
tableid_input = "ga:72848696")
Incluso después de agregar el correo electrónico al nivel de la cuenta en análisis, todavía tenía el mismo problema de permisos, pero la siguiente sugerencia ayudó pero no lo resolví:
$ client-> setScopes (" https : //www.googleapis.com/auth/plus.login");
Eso no me funcionó, pero esto sí:
$ client-> setScopes (" https : //www.googleapis.com/auth/analytics");
https: // ahora se requiere para autenticarse.
Si aún ve este mensaje después de agregar el correo electrónico del desarrollador al usuario analítico.
Es posible que necesite agregar alcance al objeto, antes de la nueva Google_Service_Analytics ($ client);
$ client-> setScopes (" https://www.googleapis.com/auth/plus.login ");
Pasé todo el día tratando de resolver esto!
Si alguien tiene más vista, debería usar la ID de vista.
Si eres nuevo solo para informarte, se requiere un procedimiento de 3 pasos
- Habilite la API de informes de Google Analytics y luego cree una cuenta de correo electrónico de servicio (OAuth Client ID)
- Agregue y otorgue permiso a este servicio de correo electrónico en la consola de Google
- Agregue y dé permiso a este servicio de cuenta de correo electrónico en el seguimiento de Google Analytics -> Administración de usuarios
También tuve que ir a la consola de desarrollador y habilitar la API para que funcione. Vaya a la consola de desarrolladores, seleccione su proyecto y habilite las API que desee utilizar.
¡Escoge la identificación correcta!
En mi caso, estaba usando las credenciales adecuadas (ID de cuenta, secreto de cuenta -> authorization_code -> access_token) Y tenía los permisos de correo electrónico configurados correctamente, pero estaba usando el ID de cuenta en la página Admin> Account settings y simplemente agregué ga: to El frente.
¡La identificación que realmente necesitas es la identificación de la mesa! (o ese fue el que funcionó para mí, al menos, ya que la mayoría de las personas aquí mencionan el ID de cuenta, que no funcionó para mí). Puede encontrarlo aquí: https://ga-dev-tools.appspot.com/account-explorer/
Y luego puedes consultar como
service.get_ga_data(TABLE_ID,''2017-03-25'',''2017-03-25'',''ga:users,ga:pageviews'')
Encontré que esta API está mal documentada en general y la interfaz de usuario no estaba clara. Pero tal vez sea solo yo.