Google Analytics es uno de los servicios más utilizados para rastrear datos de sesiones de clientes individuales, tráfico del sitio web, información de compras y otras métricas importantes. La gran cantidad de datos producidos por Google Analytics puede ayudar a extraer información empresarial útil y procesable.
A pesar de su utilidad, Google Analytics no viene acompañado de un formato ideal para el análisis de los datos producidos. Esto ha llevado a la creciente necesidad de mover datos al almacén de datos desde la aplicación, es decir, mover los datos de Google Analytics a BigQuery.
BigQuery es básicamente un destacado almacén de datos de Google. Los conjuntos de datos con tamaños extremadamente grandes se pueden consultar de manera similar a SQL muy rápidamente con BigQuery. Como resultado de la vasta infraestructura y tecnología patentada de Google, como el motor de consultas Dremel, el procesamiento de consultas se hace rápido y eficiente.
En este artículo, aprenderá todo sobre cómo transmitir datos de Google Analytics a BigQuery. Para aprender cómo transmitir datos de Google Analytics a BigQuery mediante Google Apps Script, siga los pasos que se mencionan a continuación para disfrutar de una experiencia de transmisión sin problemas.
Google Analytics 4 está reemplazando el análisis universal y, según Google, solo puede encontrar datos GA4 durante un máximo de 14 meses. Si desea conservar los datos por más tiempo, siempre puede utilizar el increíble servicio Google Bigquery.
Puede transmitir datos de Google Analytics a BigQuery mediante Google Apps Script siguiendo estos pasos:
- Cree un nuevo proyecto en Google Apps Script yendo a https://script.google.com y haciendo clic en el icono “+”.
- En el editor de secuencias de comandos, haga clic en el menú “Recursos” y seleccione “Servicios avanzados de Google”.
- Habilite la “API de BigQuery” colocando el interruptor en “ON”.
- Haga clic en el enlace “Consola de Google Cloud Platform” para abrir Cloud Console.
- En Cloud Console, crea un nuevo proyecto o selecciona un proyecto existente.
- En Cloud Console, vaya a la página “BigQuery” y cree un nuevo conjunto de datos.
- En el editor de Apps Script, vaya al menú “Archivo” y seleccione “Propiedades del proyecto”.
- En la ventana “Propiedades del proyecto”, haga clic en la pestaña “Propiedades del script”.
- Agregue una nueva propiedad de secuencia de comandos con el nombre “bq_project_id” y el valor establecido en su ID de proyecto de BigQuery.
- Agregue una nueva propiedad de secuencia de comandos con el nombre “bq_dataset_id” y el valor establecido en su ID de conjunto de datos de BigQuery.
- En el editor de Apps Script, copie y pegue el siguiente código:
function streamDataToBigQuery() {
// Replace with your table ID
var tableId = 'ga_sessions_20221231';
// Replace with your view ID
var viewId = 'ga:12345678';
// Replace with your start and end dates
var startDate = '2022-12-01';
var endDate = '2022-12-31';
// Construct the request payload
var payload = JSON.stringify({
'reportRequests': [ { 'viewId': viewId, 'dateRanges': [ { 'startDate': startDate, 'endDate': endDate } ],
'metrics': [ { 'expression': 'ga:sessions' } ],
'dimensions': [ { 'name': 'ga:country' }, { 'name': 'ga:deviceCategory' } ]
}
]
});
// Send the request and get the response
var response = Analytics.Reports.batchGet(payload);
var rows = response.reports[0].data.rows;
// Create the data for the BigQuery insert request
var data = [];
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
var values = [];
values.push(row.dimensions[0]);
values.push(row.dimensions[1]);
values.push(row.metrics[0].values[0]);
data.push({
insertId: 'row-' + i,
json: {
country: row.dimensions[0],
device: row.dimensions[1],
sessions: row.metrics[0].values[0]
}
});
}
// Set up the insert request options
var options = {
method: 'POST',
contentType: 'application/json',
payload: JSON.stringify({ rows: data })
};
// Construct the insert request URL
var url = 'https://www.googleapis.com/bigquery/v2/projects/' + PropertiesService.getScriptProperties().getProperty('bq_project_id') + '/datasets/' + PropertiesService.getScriptProperties().getProperty('bq_dataset_id') + '/tables/' + tableId + '/insertAll';
// Send the insert request
UrlFetchApp.fetch(url, options);
}