error-handling - custom - seguimiento de eventos de google analytics
Error 403 de la API de Google Analytics: "El usuario no tiene ninguna cuenta de Google Analytics" (10)
El problema ocurre porque no proporcionamos un argumento "secundario". A menos que proporcionemos esto, la llamada se realiza en nombre de ese correo electrónico de la cuenta de servicio larga.
Así que solo proporcione un argumento secundario, con un correo electrónico al que ya haya dado acceso en el informe y ¡las cosas deberían funcionar bien!
Estoy creando una secuencia de comandos, basada en la guía paso a paso de Google Analytics de esta página:
https://developers.google.com/analytics/resources/tutorials/hello-analytics-api
La autorización se realiza sin problemas, hasta que intente acceder a los datos. El código de retorno es 403 y el mensaje de error es:
El usuario no tiene ninguna cuenta de Google Analytics
Este mensaje no tiene sentido: mi cuenta tiene datos de Google Analytics, seguimiento de varios sitios web, y puedo acceder a él desde el navegador web sin problema. He permitido la API de Analytics a través de la consola de las API de Google, y el acceso a la API me proporciona datos correctos.
El usuario para el que intenta utilizar la API no ha habilitado su servicio de GA.
Simplemente tener una cuenta de google no es suficiente .
... Sin embargo, el simple hecho de tener una cuenta de Google no le otorga automáticamente acceso a Analytics. En primer lugar, debe registrarse en Google Analytics, un proceso simple y único ...
Estaba alcanzando el error 403. Estos pasos me dieron la vuelta. Para ser claro, estaba tratando de obtener la muestra de Google "HelloAnalytics.php" trabajando con OAuth (sin interacción del usuario, adecuada para el trabajo cron, etc.).
Después de habilitar la API de Analytics, creé una nueva "Cuenta de servicio" en APIs y Auth / Credentials; y guardó el par de claves .p12. Luego entré en la consola de administración de usuarios de Analytics y agregué la dirección de correo electrónico del usuario del servicio.
La autorización .p12 con PHP API funciona si marque solo "Leer y analizar" solo en la lista de permisos. Si agrego "Administrar usuarios" y / o "Editar", obtengo el 403. Espero que esto sea útil, estuve hablando de esto por un par de horas ...
Logré arreglar esto asegurándome de que
client = Google :: APIClient.new (: application_name => ''X'',: application_version => ''1'')
La variable del nombre de la aplicación ''X anterior era el nombre de la CUENTA en el tablero de GA, no el nombre de PROPIEDAD, que en mi caso era la url real del sitio al que quiero acceder.
Confuso, pero afortunadamente reparado (¡sin agradecerle a Google!)
Recibí el error 403 hasta que cambié los permisos de la cuenta de correo electrónico de Google Analytics de ''Leer y analizar'' a otra cosa, la guardé y luego cambié los permisos a ''Leer y analizar'' y funcionó.
También recibirá este error si nunca ha iniciado sesión con la cuenta de Google con la que está intentando autenticarse.
También tuve este problema, y descubrí que el problema era que había pedido demasiados permisos. La Consola de desarrollador dice que debe solicitar los permisos http://www.googleapis.com/auth/analytics
y http://www.googleapis.com/auth/analytics.readonly
. Esto no funcionó cuando también estaba usando el reclamo sub
. Un reclamo sub
instruye a Google a emitir un token de acceso que opera en nombre de otro usuario , en mi caso, la cuenta de Google propietaria de la cuenta del servicio. Eliminé el permiso de analytics
y me quedé con analytics.readonly
con el reclamo secundario:
{
"iss":"123123123123123-xxxxxxxxxxxxxxxxxxxxxxxx@developer.gserviceaccount.com",
"sub":"[email protected]"
"scope":"http://www.googleapis.com/auth/analytics",
...
}
El token de portador emitido me permite realizar (al menos algunas) consultas de Google Analytics a perfiles que son propiedad de cuentas de Google completamente diferentes, pero que se han compartido (solo lectura) con mi usuario de gmail ([email protected]) .
También tuve este problema. Lo arreglé agregando la dirección de correo electrónico de mi cuenta de servicio al perfil de Google Analytics al que quería que accediera.
Obtuve la dirección de correo electrónico (algo así como [email protected]) para la cuenta del servicio mirando en la pestaña "Acceso a la API" en la consola de las API de Google.
Luego, seguí las instrucciones de Google para agregar una dirección de correo electrónico a un perfil de Analytics . Ahora todo está funcionando como se esperaba.
¡Buena suerte!