Cómo usar la API de Google Analytics 4. Configuración y ejemplo

Cómo usar la API de Google Analytics 4. Configuración y ejemplo

En este post te mostramos una manera muy sencilla de poder usar la la API de Google Analytics 4 y poder extraer información sin necesidad de usar la interfaz de GA4 u otros métodos.

Para este tutorial utilizaremos Google Colab ya que es la opción más sencilla, creeme, de gestionar el código python necesario para hacer las llamadas a la API.

No es necesario que sepas programar para poder hacer tus primeras llamadas a la API, te lo aseguro.

Si preferís ver las instrucciones en vídeo lo podéis ver a continuación.

Requisitos necesarios para poder usar la Api de Google Analytics 4

Crear una cuenta de servicio de Google Cloud

Lo primero de todo que vas a necesitar es una cuenta de servicio de Google Cloud.

Obtenerla es super sencillo, puedes hacerlo desde Google Cloud.  O seguir los pasos desde la guía de inicio rápido de la documentación oficial de la API de GA4. Es el paso que te recomiendo.

habilitar la api directamente

Si haces clic en ese botón se te creará la cuenta de servicio directamente desde la cuenta de gmail en al que estés. 

Se te generará una cuenta como esta: quickstart@PROJECT-ID.iam.gserviceaccount.com

También se te descargarán los credenciales en formato Json. Este archivo es super importante así que guárdalo en tu google drive

Añadir cuenta de servicio de Google Cloud a la cuenta de Google Analytics 4

Este paso es imprescindible también. Debes añadir la cuenta que se te ha creado desde Google Cloud a la cuenta de GA4 desde la que quieres usar la API.

 

acceso cuentas ga4

Desde Administrar > Gestión de accesos a la cuenta > añadiremos un nuevo usuario con permiso de editor y la cuenta que hemos generado en el paso anterior.
Es una cuenta similar a esta:

quickstart@PROJECT-ID.iam.gserviceaccount.com

añadir roles a usuarios ga4

Configurar Google Colab

Para comenzar a configurar el Google Colab tan sólo debes abrir un nuevo archivo y empezar a pegar los siguientes códigos que te comparto a continuación. El texto que empieza por # es comentario. No ejecuta nada.

instalar libreria

# Documentación oficial: https://developers.google.com/analytics/devguides/reporting/data/v1/quickstart-client-libraries#python
# Info sobre dimensiones y métricas: https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema

# Instalar primero este módulo
!pip install google-analytics-data

importar modulos

A continuación importarás estos módulos.

# Importar estos módulos

from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import (
DateRange,
Dimension,
Metric,
RunReportRequest,
)
from google.oauth2 import service_account
from google.protobuf.json_format import MessageToDict
import pandas as pd
import os
from google.colab import drive

dar permiso

Lo siguiente es dar permiso a Google Colab para acceder a tu Google Drive

# Permiso para acceder Crear carpetas en drive.

drive.mount(‘/content/drive’)
os.listdir(‘./drive/MyDrive’)
listar contenido carpeta

Con este código podemos ver lo que hay en la carpeta

# Listar contenido de la carpeta

 

os.listdir(‘./drive/MyDrive/nombrecarpeta’)

guardar credenciales y propiedad

Lo siguiente será añadir este código donde se guardan como variables tanto las credenciales en Json como el Id de la propiedad de Google Analytics 4. Recordad que tenéis que sustituir el código que os paso , por vuestros datos

# Añadimos credenciales (json que hemos descargado) y el id de la propiedad en GA4

 

credentials = service_account.Credentials.from_service_account_file(‘.tu ruta de drive donde están las credencias’)
client = BetaAnalyticsDataClient(credentials=credentials)
property_id=»tu id»
request de la api de ga4

El siguiente paso es hacer el request a la api para extraer los datos. 

Aquí tendremos que indicar qué dimensiones, métricas , fechas y filtros queremos extraer.

Te recomiendo consultar el enlace oficial para saber el nombre de las dimensiones en la API ya que no es el mismo que en la interfaz. 

El código es:

# Extraemos datos de la api

request = RunReportRequest(
property=f»properties/{property_id}»,
dimensions=[Dimension(name=»city»), Dimension(name=»country»)],
metrics=[Metric(name=»activeUsers»), Metric(name=»sessions»)],
date_ranges=[DateRange(start_date=»2024-03-31″, end_date=»today»)],
)

response = client.run_report(request)
response

convertir a tablas

Para transformar el código en una tabla usaremos esto;

# Convertimos los datos en tablas

 

def ga4_result_to_df(response):
«»»Original: print_run_report_response: Prints results of a runReport call. v2.1 changed by Bram to create DataFrame»»»
result_dict = {}
for dimensionHeader in response.dimension_headers:
result_dict[dimensionHeader.name] = []
for metricHeader in response.metric_headers:
result_dict[metricHeader.name] = []
for rowIdx, row inenumerate(response.rows):
for i, dimension_value inenumerate(row.dimension_values):
dimension_name = response.dimension_headers[i].name
result_dict[dimension_name].append(dimension_value.value)
for i, metric_value inenumerate(row.metric_values):
metric_name = response.metric_headers[i].name
result_dict[metric_name].append(metric_value.value)
return pd.DataFrame(result_dict)

 

df = ga4_result_to_df(response)
df
 
El resultado que genere tendría que ser una tabla similar a esta pero con tus valores.
ejemplo de tabla

Por último, para extraer todos estos datos a una hoja de excel podemos utilizar el siguiente código:

# Exportamos los datos a un excel dentro de la misma carpeta que el json de credenciales

df.to_excel(‘./drive/MyDrive/GA4-API-PLANTILLA/GA4_Excel.xlsx’)

ejemplo de tabla

Y ya lo tienes. Ahora sólo tienes que practicar e investigar con el resto de dimensiones y métricas.

Fernando Lens
flens@seocom.agency

Actualmente desempeño mi labor como Analista Web dentro de la Agencia de Analítica Digital RoiAnalytics en proyectos web de varios tipos, E-commerce, medios especializados, páginas de captación de leads, entre otros. Cuento además con varios años de experiencia dentro del sector del SEO y también cuento con conocimientos de SEM. Me defino como un profesional de la analítica al que no solo le gusta captar el mejor dato posible si no que también busca generar el mayor beneficio posible a mis clientes gracias a los datos.