Matomo es una excelente solución de analítica — respetuosa con el RGPD, respetuosa con la propiedad, soberana en cuanto a los datos. Lo que Matomo no hace bien de fábrica: reprocesar los datos de forma flexible en hojas de cálculo. Si envía semanalmente un informe de tráfico a la dirección, mantiene mensualmente una tabla de auditoría SEO o simplemente quiere recorrer sus datos con la audacia de filtrado de Google Sheets, tiene que casar Matomo y Sheets. Tres vías funcionan en la práctica, todas con un esfuerzo de configuración distinto. Para la cuestión de fondo de si Matomo o Google Analytics es la mejor opción en 2026, lea mi artículo sobre Google Analytics vs. Matomo — este da por supuesto que usted ya utiliza Matomo.
Requisitos: una instancia de Matomo en funcionamiento (cloud o autoalojada), acceso a la API (véase más abajo), una cuenta de Google con acceso a Sheets. Tiempo de configuración: de 30 a 90 minutos según el método.
¿Por qué Sheets en lugar de la interfaz de Matomo?
Antes de ponerme técnico, una pregunta rápida: ¿para qué resulta esto realmente útil?
- Reporting a las partes interesadas. Los directivos quieren tablas, no paneles que requieran una acción de ratón con sesión iniciada. Una tabla de Sheets rellenada automáticamente cada semana con las cinco métricas más importantes es oro.
- Comparación entre herramientas. Si quiere mostrar datos de Matomo junto a datos de Search Console, estadísticas de Mailchimp y conversiones del CRM, Sheets es el pegamento.
- Su propio sistema de puntuación. ¿Quiere calcular un „page quality score“ a partir de la tasa de rebote, la duración de la sesión y la tasa de conversión? Tablas dinámicas, FÓRMULAS, IF anidados — ese es el terreno de Sheets, no el de Matomo.
- Archivo histórico. Algunos planes de Matomo Cloud tienen límites de retención de datos. Quien conserve las métricas importantes en Sheets las seguirá teniendo dentro de cinco años.
Lo que Sheets no sustituye: la propia interfaz de Matomo. Análisis de embudos, grabaciones de sesión, mapas de calor — eso lo sigue haciendo en Matomo. Sheets es la capa de agregación y distribución.
Método 1: Matomo Reporting API + Apps Script (paso a paso)
El método más robusto y flexible. Tiempo de configuración: de 30 a 60 minutos.
Paso 1: crear un token de autenticación de Matomo.
En Matomo → Gestión de usuarios → Seguridad → „Tokens de autenticación“ → „Crear nuevo token“. Permiso: solo lectura sobre los sitios pertinentes. Anote el token (solo lo verá una vez).
Paso 2: construir la URL de la API.
La Matomo Reporting API tiene una estructura muy coherente:
https://IHR-MATOMO.example.com/index.php
?module=API
&method=VisitsSummary.get
&idSite=1
&period=day
&date=last30
&format=JSON
&token_auth=IHR_TOKEN
Parámetros importantes:
method— lo que quiere consultar (p. ej.VisitsSummary.get,Actions.getPageUrls,Referrers.getKeywords)idSite— el ID del sitio (lo ve en el backend de Matomo)period—day,week,month,year,rangedate— p. ej.last30,2026-05-01,2026-05-31format=JSON— devuelve datos estructurados, ideal para Apps Script
Paso 3: configurar Google Apps Script.
En Google Sheets → Extensiones → Apps Script. El siguiente script (estructura básica):
function fetchMatomoVisitsSummary() {
const url = 'https://IHR-MATOMO.example.com/index.php'
+ '?module=API&method=VisitsSummary.get'
+ '&idSite=1&period=day&date=last30'
+ '&format=JSON&token_auth=' + getToken();
const response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
const data = JSON.parse(response.getContentText());
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Matomo');
sheet.clearContents();
sheet.appendRow(['Fecha', 'Visits', 'Unique Visitors', 'Bounce Rate', 'Avg. Time']);
Object.entries(data).forEach(([date, metrics]) => {
sheet.appendRow([
date,
metrics.nb_visits || 0,
metrics.nb_uniq_visitors || 0,
metrics.bounce_rate || '0%',
metrics.avg_time_on_site || 0
]);
});
}
function getToken() {
return PropertiesService.getScriptProperties().getProperty('MATOMO_TOKEN');
}
Paso 4: guardar el token de forma segura. Apps Script → Configuración del proyecto → Propiedades del script → MATOMO_TOKEN como clave, su token como valor. Así el token no queda en el código.
Paso 5: configurar un activador. Apps Script → Activadores → „Añadir activador“ → fetchMatomoVisitsSummary → controlado por tiempo → todos los días a las 06:00.
Listo. A partir de ahora su hoja se actualiza automáticamente cada mañana con los datos de visitas de los últimos 30 días.
Método 2: Looker Studio como puente
Si quiere programar menos y hacer clic más.
Configuración:
- En Looker Studio (antes Google Data Studio) → „Fuentes de datos“ → „Matomo Connector“ (conector comunitario).
- Establecer una conexión con Matomo: URL + token de autenticación.
- Crear una fuente de datos (p. ej. „VisitsSummary“).
- En Looker Studio, crear un informe o arrastrar directamente los datos a una tabla.
- En Looker Studio → „Archivo“ → „Exportar a Google Sheets“ — bien una sola vez, bien mediante correo programado.
Ventajas:
- Sin código
- Visualizaciones „for free“ en Looker Studio
- Informes por correo programados directamente desde Looker
- Autoservicio para usuarios no técnicos
Desventajas:
- Los conectores comunitarios tienen una calidad desigual — algunos no se han actualizado desde hace dos años
- Los informes de Looker Studio no son tan dinámicos como la lógica nativa de Sheets
- Lento con grandes cantidades de datos
Para muchas configuraciones más pequeñas (autónomos en solitario, agencias pequeñas) esta es la solución pragmática — sin la carga de Apps Script.
Método 3: plugins y puentes SaaS
Hay dos tipos de plugins:
Plugins de WordPress (cuando Matomo está integrado a través de WordPress):
- „Matomo Analytics — Ethical Stats“ (el plugin oficial de Matomo) sí muestra datos en el escritorio de WordPress, pero la exportación a Sheets no está integrada.
- „Connect Polylang for Matomo“ y plugins especializados similares apuntan a otros casos de uso.
Puentes SaaS:
- Coupler.io — de pago (desde 49 USD/mes), integración basada en clics entre Matomo y Google Sheets. Merece la pena si quiere integrar varias fuentes de datos.
- Supermetrics — el gran jugador. Muy caro (desde 99 EUR/mes), pero apto para grandes empresas.
- Funnel.io — similar a Supermetrics, algo más económico.
Mi consejo para la mayoría de los lectores: el método 1 (Apps Script) es la mejor inversión de 60 minutos que puede mantener usted mismo de forma duradera y sin costes recurrentes. Los puentes SaaS tienen sentido cuando quiere orquestar más de 5 fuentes de datos y no tiene ganas de programar.
Fuentes de error: token de autenticación, CORS, límites de tasa
A lo largo de más de veinte configuraciones, he visto repetirse una y otra vez los siguientes errores:
1. Token de autenticación con demasiados permisos. Para la integración con Sheets, cree un token dedicado con permiso de lectura exclusivamente para el sitio específico. Nunca utilice tokens de administrador — si alguna vez cede la pestaña abierta, el riesgo es demasiado alto.
2. Errores de codificación de URL. Si utiliza filtros con caracteres especiales (p. ej. segment=pageUrl=@/blog/), deben estar correctamente codificados. UrlFetchApp.fetch en Apps Script suele esperar URL limpias — encodeURIComponent() es su amigo.
3. Problemas de CORS (no en Apps Script, sino en el navegador). Si quiere llamar a la API de Matomo desde una aplicación web en el navegador, necesita cabeceras CORS en Matomo. Apps Script no se ve afectado por esto, porque la llamada se ejecuta del lado del servidor.
4. Límites de tasa. Matomo Cloud no tiene (a fecha de 2026) límites de tasa de API oficiales, pero en configuraciones autoalojadas sobre hardware débil, los informes grandes (p. ej. páginas vistas a lo largo de 365 días con segmentación) pueden sobrecargar el servidor. Solución: trozos más pequeños, rangos de date más cortos.
5. Inconsistencias de marca de tiempo. Matomo utiliza UTC. Si trabaja con horas locales en Sheets, pueden producirse efectos de desfase de un día. En Apps Script, convierta antes de escribir con Utilities.formatDate(date, 'Europe/Vienna', 'yyyy-MM-dd').
Ejemplo práctico: informe de tráfico semanal
Una configuración concreta que tengo funcionando para tres clientes:
Estructura de la hoja:
- Pestaña „Raw“: datos de Apps Script procedentes de Matomo (actualizados a diario)
- Pestaña „Weekly“: totales semanales calculados mediante
QUERY()/SUMIFS() - Pestaña „Dashboard“: gráficos y cajas de KPI que remiten a „Weekly“
- Pestaña „Email“: texto semanal preparado con
&yTEXT()
Activadores de Apps Script:
- Todos los días a las 06:00: actualizar la pestaña Raw
- Todos los lunes a las 09:00: ejecutar además
sendWeeklyEmail(), que envía un correo a las partes interesadas a partir de la hoja
El correo semanal contiene entonces automáticamente: las 5 páginas principales de la semana, la comparación con la semana anterior y el mes anterior, los nuevos referentes, las anomalías técnicas (p. ej. una tasa de rebote repentinamente elevada en una página de aterrizaje).
Quien vaya en la misma dirección — aprovechar mejor los datos, sacar más partido de la analítica — debería echar también un vistazo a mi artículo sobre los análisis SEO gratuitos para principiantes. Y para la visión de conjunto de SEO + WordPress: fundamentos de SEO en WordPress.
¿Desea ayuda con la configuración?
Si no quiere montar usted mismo la configuración de Apps Script para su instancia de Matomo, puedo hacerlo por usted en 2 o 3 horas — incluida una formación de traspaso, para que pueda añadir usted mismo nuevos informes. Escríbame brevemente qué quiere medir.
→ Solicitar la configuración: Ponerse en contacto
Etiquetas
