Google Analytics 4
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…
Por Fernando Lens · Actualizado el
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.
https://www.youtube.com/watch?v=2lDtVt9khyo
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 Clo****ud.
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.

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: [email protected]
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.

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:

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.

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

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

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’)

Con este código podemos ver lo que hay en la carpeta
Listar contenido de la carpeta
os.listdir(’./drive/MyDrive/nombrecarpeta’)

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”

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

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].nameresult_dict[dimension_name].append(dimension_value.value)for i, metric_value inenumerate(row.metric_values):metric_name = response.metric_headers[i].nameresult_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.

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’)

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