Exportación · Google Sheets

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.

Esta configuración es adecuada para informes horarios o diarios. Google Sheets y Looker Studio almacenan los datos en caché, por lo que debe utilizar el panel de NowMetrix para supervisar la redacción segundo a segundo.

1. Prepare la API key y la hoja de cálculo

  1. En NowMetrix, abra Ajustes → API y cree una clave independiente con la etiqueta Google Sheets.
  2. Copie la clave completa cuando se muestre. No podrá volver a mostrarse más adelante.
  3. Anote el ID del tracker del sitio web que desea exportar.
  4. Cree una hoja de cálculo de Google nueva, por ejemplo NowMetrix Export.
  5. 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:

  1. Abra Configuración del proyecto mediante el icono de rueda dentada.
  2. En Propiedades del script, seleccione Añadir propiedad del script.
  3. 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á
No introduzca nunca la API key en una celda de la hoja de cálculo, un parámetro de informe, el código fuente del script, una URL o un mensaje de registro. Script Properties evita que aparezca en la hoja, pero debe seguir confiando en las personas que tienen acceso de edición al proyecto de Apps Script.

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

  1. Asigne al proyecto el nombre NowMetrix Google Sheets Export en la esquina superior izquierda.
  2. Guarde el proyecto de Apps Script mediante el icono del disco o el atajo de teclado.
  3. Seleccione syncNowMetrixDaily en el menú de funciones de la barra de herramientas del editor.
  4. Seleccione Ejecutar junto al menú de funciones.
No seleccione Implementar. Esta exportación no es una aplicación web, una API ejecutable, un complemento ni una biblioteca, por lo que no requiere ningún despliegue. Ejecute la función directamente en el editor.

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.

  1. Confirme que ha creado el proyecto de Apps Script y que el correo del desarrollador es el suyo.
  2. Seleccione Avanzado en la pantalla de advertencia.
  3. Continúe hasta el proyecto que ha nombrado. Google puede marcar este enlace como no seguro porque el proyecto privado no está verificado.
  4. 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.
Deténgase si el correo del desarrollador no es el suyo, si no ha creado el proyecto o si el código difiere del ejemplo. Si Google solicita acceso a todas sus hojas de cálculo, cancele, confirme que @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

  1. Cree o abra un informe en Looker Studio.
  2. Seleccione Añadir datos → Google Sheets.
  3. Seleccione la hoja de cálculo y la hoja Daily.
  4. Utilice la primera fila como encabezados y conecte la fuente de datos.
  5. Confirme que date es una fecha y que pageviews y visits son 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
Un Recap como 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 @OnlyCurrentDoc en 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.
El acceso a la API sigue los trackers permitidos para el usuario de NowMetrix. Retirar ese acceso o revocar la clave detiene las exportaciones futuras, pero no elimina los datos que ya se hayan copiado en Google.

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.