Mantenga las métricas de NowMetrix en Google Sheets
Utilice Google Apps Script para obtener de forma segura los datos diarios de NowMetrix, actualizar la hoja de cálculo según una programación y ponerlos a disposición de cálculos, uso compartido o informes de Looker Studio.
Cómo funciona la conexión
La hoja de cálculo actúa como un pequeño puente de datos controlado por el cliente:
NowMetrix REST API → Google Apps Script → Google Sheet → optional Looker Studio report
Los datos no se importan en Google Analytics. Apps Script solicita al endpoint de NowMetrix seleccionado los datos mediante la API key y escribe las filas devueltas en la hoja de cálculo. A continuación, Looker Studio puede utilizar esa hoja como una fuente de datos independiente.
1. Prepare la API key y la hoja de cálculo
- En NowMetrix, abra Ajustes → API y cree una clave independiente con la etiqueta Google Sheets.
- Copie la clave completa cuando se muestre. No podrá volver a mostrarse más adelante.
- Anote el ID del tracker del sitio web que desea exportar.
- Cree una hoja de cálculo de Google nueva, por ejemplo NowMetrix Export.
- Configure la zona horaria de la hoja de cálculo para que coincida con la zona horaria del tracker de NowMetrix.
El ejemplo siguiente exporta las últimas 30 filas diarias de /v1/overview. Cada fila contiene
la fecha, el tracker, la zona horaria del tracker, las páginas vistas y las visitas.
2. Guarde la API key en Script Properties
En Google Sheet, seleccione Extensiones → Apps Script. A continuación:
- Abra Configuración del proyecto mediante el icono de rueda dentada.
- En Propiedades del script, seleccione Añadir propiedad del script.
- Añada las dos propiedades siguientes:
| Propiedad | Valor |
|---|---|
NOWMETRIX_API_KEY |
Su clave, que comienza por nm_ |
NOWMETRIX_TRACKER_ID |
El ID del tracker que se exportará |
3. Añada el script de exportación
Sustituya el contenido de Code.gs por este script. Comprueba la configuración, limita el acceso
de la hoja de cálculo al documento actual, gestiona los errores de la API y solo sustituye la hoja después de
recibir una respuesta correcta.
/**
* @OnlyCurrentDoc
*/
const NOWMETRIX_BASE_URL = 'https://api.nowmetrix.com';
function fetchNowMetrix(path) {
const properties = PropertiesService.getScriptProperties();
const apiKey = properties.getProperty('NOWMETRIX_API_KEY');
const trackerId = properties.getProperty('NOWMETRIX_TRACKER_ID');
if (!apiKey || !trackerId) {
throw new Error('NOWMETRIX_API_KEY or NOWMETRIX_TRACKER_ID is missing.');
}
const separator = path.includes('?') ? '&' : '?';
const url = NOWMETRIX_BASE_URL
+ path
+ separator
+ 'site=' + encodeURIComponent(trackerId);
const response = UrlFetchApp.fetch(url, {
method: 'get',
headers: {
Authorization: 'Bearer ' + apiKey,
Accept: 'application/json'
},
muteHttpExceptions: true
});
const status = response.getResponseCode();
const body = response.getContentText();
if (status < 200 || status >= 300) {
throw new Error('NowMetrix API returned HTTP ' + status + ': ' + body);
}
return JSON.parse(body);
}
function toSheetDate(value) {
const parts = value.split('-').map(Number);
return new Date(parts[0], parts[1] - 1, parts[2]);
}
function syncNowMetrixDaily() {
const result = fetchNowMetrix('/v1/overview?days=30');
const rows = result.daily.map(day => [
toSheetDate(day.date),
result.site,
result.timezone,
day.pageviews,
day.visits
]);
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getSheetByName('Daily')
|| spreadsheet.insertSheet('Daily');
const values = [
['date', 'tracker', 'timezone', 'pageviews', 'visits'],
...rows
];
sheet.clearContents();
sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
sheet.setFrozenRows(1);
sheet.getRange(1, 1, 1, values[0].length).setFontWeight('bold');
if (rows.length > 0) {
sheet.getRange(2, 1, rows.length, 1).setNumberFormat('yyyy-mm-dd');
sheet.getRange(2, 4, rows.length, 2).setNumberFormat('#,##0');
}
sheet.autoResizeColumns(1, values[0].length);
}
No sustituya NOWMETRIX_API_KEY por la clave real en el código fuente. El script la lee de Script Properties
durante la ejecución. Mantenga @OnlyCurrentDoc al principio: indica a Google que solicite acceso a esta hoja
de cálculo, en lugar de a todas las hojas de su cuenta.
4. Guarde y ejecute el script una vez
- Asigne al proyecto el nombre NowMetrix Google Sheets Export en la esquina superior izquierda.
- Guarde el proyecto de Apps Script mediante el icono del disco o el atajo de teclado.
- Seleccione
syncNowMetrixDailyen el menú de funciones de la barra de herramientas del editor. - Seleccione Ejecutar junto al menú de funciones.
5. Autorice su propio proyecto de Apps Script
Google solicita permiso la primera vez que se ejecuta el script. Seleccione Revisar permisos y elija la cuenta de Google propietaria de la hoja de cálculo.
Es normal que aparezca un aviso como Google no ha verificado esta aplicación en un proyecto de Apps Script privado creado por usted. El correo del desarrollador que muestra Google debe ser el de su propia cuenta de Google. El proyecto no es una aplicación de Google de NowMetrix y no proporciona a NowMetrix acceso a su cuenta de Google.
- Confirme que ha creado el proyecto de Apps Script y que el correo del desarrollador es el suyo.
- Seleccione Avanzado en la pantalla de advertencia.
- Continúe hasta el proyecto que ha nombrado. Google puede marcar este enlace como no seguro porque el proyecto privado no está verificado.
- Revise los permisos solicitados y seleccione Permitir o Continuar.
| Permiso | Motivo |
|---|---|
| Acceso a la hoja de cálculo actual | Crear o actualizar la hoja Daily en este Google Sheet. |
| Conexión con un servicio externo | Enviar una solicitud HTTPS a https://api.nowmetrix.com. |
@OnlyCurrentDoc
aparece al principio de Code.gs, guarde los cambios y vuelva a ejecutar la función.
Si ya ha aprobado un acceso más amplio a las hojas de cálculo, elimine el proyecto en Cuenta de Google → Seguridad → Conexiones con aplicaciones y servicios de terceros y vuelva a ejecutar el script guardado para solicitar permisos más limitados.
Google documenta este proceso de autorización y la restricción @OnlyCurrentDoc en su
guía de autorización de Apps Script.
6. Compruebe la primera exportación
Después de la autorización, Apps Script continuará la ejecución. Espere a que aparezca Ejecución completada en el registro de ejecución, vuelva a la hoja de cálculo y abra la nueva hoja Daily. El resultado debería ser similar a este:
| date | tracker | timezone | pageviews | visits |
|---|---|---|---|---|
| 2026-08-22 | TRACKER_ID | Europe/Zurich | 81,240 | 53,210 |
| 2026-08-23 | TRACKER_ID | Europe/Zurich | 77,480 | 50,195 |
7. Programe las actualizaciones automáticas
En Apps Script, abra Activadores mediante el icono del reloj y añada un activador:
| Función | syncNowMetrixDaily |
|---|---|
| Implementación | Head |
| Origen del evento | Basado en tiempo |
| Frecuencia | Cada hora o con menor frecuencia para un informe diario |
El activador se ejecuta con la cuenta de Google que lo ha creado. Mantenga activa esa cuenta y revise las notificaciones de errores de Apps Script. Evite las solicitudes innecesariamente frecuentes: la API pública de NowMetrix permite actualmente 20 solicitudes por minuto y tracker, compartidas entre claves y usuarios.
El ejemplo sustituye la tabla móvil de 30 días en cada ejecución correcta. Así se evitan las fechas duplicadas y se mantiene la hoja compacta.
8. Utilice la hoja en Looker Studio
- Cree o abra un informe en Looker Studio.
- Seleccione Añadir datos → Google Sheets.
- Seleccione la hoja de cálculo y la hoja Daily.
- Utilice la primera fila como encabezados y conecte la fuente de datos.
- Confirme que
datees una fecha y quepageviewsyvisitsson métricas numéricas.
Ya puede crear gráficos de series temporales, tarjetas de resultados, tablas y campos calculados como
pageviews / visits. Looker Studio lee estos datos como una fuente independiente; no convierte los valores
de NowMetrix en eventos de Google Analytics.
Google documenta el resto de la configuración del informe en su guía del conector de Google Sheets.
Exporte otros datos de NowMetrix
| Caso de uso | Ejemplo de endpoint | Comportamiento recomendado de la hoja |
|---|---|---|
| Páginas vistas y visitas diarias | /v1/overview?days=30 |
Sustituir o actualizar las filas por tracker y fecha |
| Páginas principales de ayer | /v1/recap?preset=yesterday&limit=100 |
Añadir una vez al día o sustituir el resultado actual |
| Instantánea actual en directo | /v1/realtime |
Añadir la marca de tiempo de la respuesta al crear una tendencia |
| Fuentes de tráfico actuales | /v1/sources |
Añadir la marca de tiempo de la respuesta o sustituir la instantánea actual |
preset=last30 contiene los totales del periodo móvil completo. No añada esos valores
diariamente. Para obtener un historial de artículos acumulable, exporte un periodo cerrado como yesterday
y guarde el intervalo en cada fila.
Lista de comprobación de seguridad y uso compartido
- Utilice una API key de NowMetrix independiente para la exportación y conceda únicamente acceso al tracker necesario.
- Guarde la clave solo en Script Properties o en otro almacén de secretos del servidor.
- Mantenga
@OnlyCurrentDocen el script para limitar el acceso de Google Sheets a este documento. - No incluya nunca la clave en celdas, fórmulas, parámetros de informes, URL, capturas de pantalla ni registros.
- Limite el acceso de edición al proyecto de Apps Script. Los editores deben considerarse usuarios de confianza.
- Autorice el script únicamente cuando Google muestre su propia cuenta como desarrollador.
- Utilice una hoja de cálculo independiente propiedad del cliente para cada cuenta de NowMetrix.
- Revise la configuración de uso compartido de Google Sheet y Looker Studio antes de publicar un informe.
- Revoque inmediatamente la API key si la hoja, el script o la cuenta de Google pueden haberse visto comprometidos.
Resolución de problemas
| Problema | Qué comprobar |
|---|---|
HTTP 401 |
La API key falta, está incompleta, no es válida o se ha revocado. |
HTTP 403 |
La API key no tiene acceso al tracker configurado. |
HTTP 429 |
Se ha superado el límite de solicitudes de la API para el tracker. Reduzca la frecuencia del activador. |
HTTP 503 |
El sistema de análisis no está disponible temporalmente. Conserve los datos existentes de la hoja y vuelva a intentarlo más tarde. |
| No hay ninguna hoja Daily | Ejecute syncNowMetrixDaily manualmente y revise los detalles de ejecución de Apps Script. |
| Google indica que la aplicación no está verificada | Es normal en un script privado. Continúe únicamente si ha creado el proyecto y Google muestra el correo del desarrollador que le pertenece. |
| Google solicita acceso a todas las hojas de cálculo | Cancele, añada @OnlyCurrentDoc al principio de Code.gs, guarde los cambios y vuelva a ejecutar la función. |
| Las fechas parecen incorrectas | Haga coincidir la zona horaria de Google Sheet con la zona horaria del tracker devuelta por la API. |