Skip to main content
Glama

Server Details

Marketing analytics for local businesses — Instagram, ads, web traffic, SEO and reviews.

Ownership verified
Status
Healthy
Uptime
5.3% over 58 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
somosmaqui/maqui-mcp
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 19 tools

Disambiguation5/5

Each tool has a distinct domain prefix (ga4_, gads_, gsc_, ig_, meta_) and description that clearly differentiates it from similar tools. Descriptions include explicit warnings against confusion (e.g., gads_keywords vs gads_search_terms, ga4_pages vs gsc_pages). No ambiguity.

Naming Consistency4/5

Tools follow a consistent prefix_noun pattern within each domain (e.g., ga4_pages, gads_keywords). However, there is a mix of verb_noun (get_leads) and prefix_noun conventions, and summary tools use different prefixes (ga4_summary, gads_summary, ig_summary). Overall, naming is predictable and clear.

Tool Count5/5

19 tools cover multiple analytics domains (GA4, Google Ads, GSC, Instagram, Meta Ads, CRM, reviews, sales). Each domain has a summary and several detail tools, well-scoped for an analytics MCP server serving small businesses and restaurants. The count is appropriate for the breadth.

Completeness4/5

Core CRUD and lifecycle operations are provided for each domain: summary, detail exploration, and growth trends. Minor gaps exist (e.g., missing GA4 events, Google Ads ad groups), but essential queries (pages, sources, campaigns, keywords, search terms, posts, followers) are covered. No dead ends for basic analytics tasks.

Available Tools

22 tools
clarity_pages
Read-only
Inspect

[DEMO SINTÉTICA] Páginas del sitio ordenadas por sesiones con su fricción según Clarity: scroll promedio, tiempo activo por sesión y tasas (%) de rage clicks, dead clicks, quickbacks, scroll excesivo, error clicks y errores de script. Usar para "qué página arreglar primero", "dónde se frustran los usuarios", "landing con problemas de UX", "CRO por página". Se puede filtrar por dispositivo para separar móvil de escritorio.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceNoOpcional: PC, Mobile, Tablet u Other. Sin valor, todas.
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesFricción por página y dispositivo.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
clarity_sources
Read-only
Inspect

[DEMO SINTÉTICA] Fricción por canal de adquisición (source/medium) según Clarity: sesiones, scroll, tiempo activo y tasas de rage/dead clicks y quickbacks. Usar para "el tráfico pagado se frustra más que el orgánico", "qué canal trae visitas que rebotan rápido", "calidad del tráfico por fuente". Para volumen y conversiones por fuente usar ga4_sources.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesCalidad del tráfico según Clarity; no mide conversiones.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
clarity_summary
Read-only
Inspect

[DEMO SINTÉTICA] Comportamiento y fricción de los visitantes en el sitio según Microsoft Clarity: scroll promedio, tiempo activo por sesión y tasas de rage clicks (clics repetidos por frustración), dead clicks (clics sin respuesta), quickbacks (entra y vuelve atrás en segundos), scroll excesivo, error clicks y errores de JavaScript. Usar para preguntas de CRO/UX: "por qué no convierte", "dónde se frustran", "experiencia de usuario", "fricción". NO usar para volumen de tráfico: eso es ga4_summary. Los datos empiezan el día del alta en Clarity (no hay histórico previo).

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesComportamiento según Clarity; agregados null cuando no hay filas.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
ga4_pages
Read-only
Inspect

[DEMO SINTÉTICA] Páginas más visitadas del sitio web según GA4: path, page views, sesiones, suma de usuarios diarios por página (no únicos del período), bounce rate y tiempo promedio. Usar para "páginas más vistas", "contenido más popular", "qué páginas funcionan", "top landing pages".

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesPáginas del sitio según GA4.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
ga4_sources
Read-only
Inspect

[DEMO SINTÉTICA] De dónde vienen los visitantes del sitio: source/medium (google/organic, facebook/social, direct, etc.) con sesiones, usuarios y conversiones. Usar para "de dónde viene el tráfico", "fuentes de tráfico", "canales de adquisición", "qué porcentaje es orgánico vs pagado".

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesAdquisición de tráfico en GA4.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
ga4_summary
Read-only
Inspect

[DEMO SINTÉTICA] Tráfico al sitio web según Google Analytics 4: sesiones, suma de usuarios diarios (no usuarios únicos del período), usuarios nuevos, páginas vistas, bounce rate, duración promedio de sesión y conversiones. Usar SIEMPRE para preguntas sobre "visitas", "tráfico del sitio", "cuántas personas entraron", "usuarios de la web", "page views". Esto es lo que un cliente típicamente pregunta cuando dice "visitas".

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesTráfico web de todos los canales según GA4.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
gads_campaigns
Read-only
Inspect

[DEMO SINTÉTICA] Desglose de Google Ads campaña por campaña: nombre, estado (activa/pausada), gasto, clics, impresiones, conversiones y CTR. Usar para "qué campañas de Google Ads tenemos", "campaña que mejor funciona", "performance por campaña".

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesCampañas ordenadas por gasto descendente.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
gads_keywords
Read-only
Inspect

[DEMO SINTÉTICA] Keywords contra las que pujamos en Google Ads (las que configuramos en las campañas): gasto, clics, conversiones, CPC, match type. Usar para "keywords que compramos", "palabras clave de mis campañas", "en qué keywords gasto más". NO confundir con search terms (lo que el usuario realmente escribió).

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesHasta 100 keywords ordenadas por gasto descendente; no son las consultas escritas por usuarios.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
gads_search_terms
Read-only
Inspect

[DEMO SINTÉTICA] Búsquedas reales que escribieron los usuarios y dispararon nuestros anuncios de Google Ads. Muestra términos exactos con clics y gasto. Útil para encontrar oportunidades (nuevas keywords) o exclusiones (queries irrelevantes). Usar para "qué buscan los usuarios", "términos de búsqueda", "search terms".

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesHasta 100 filas ordenadas por gasto; una consulta puede aparecer en varios días o campañas.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
gads_summary
Read-only
Inspect

[DEMO SINTÉTICA] Performance de Google Ads (publicidad pagada en Google Search/Display/YouTube). Gasto, impresiones, clics, CTR, CPC, conversiones, CPA, ROAS. Usar para "Google Ads", "publicidad en Google", "campañas pagas", "cuánto gastamos en Google", "anuncios de Google".

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesPublicidad pagada en Google; conversiones atribuidas no equivalen necesariamente a ventas del POS.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
get_leads
Read-only
Inspect

[DEMO SINTÉTICA] Leads/prospectos capturados desde formularios del sitio y campañas. Datos de contacto (nombre, email, teléfono), fuente de captación, estado en el pipeline (nuevo/contactado/calificado/cerrado/perdido). Usar para "leads", "prospectos", "formularios", "contactos nuevos", "pipeline de ventas". Solo disponible si la cuenta tiene CRM habilitado.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFiltrar por estado: nuevo, contactado, calificado, cerrado, perdido
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
get_reviews
Read-only
Inspect

[DEMO SINTÉTICA] Reseñas de Google Business Profile y otras plataformas (Facebook): rating promedio, conteo total, tasa de respuesta y últimas reseñas con autor, rating, texto y si fueron respondidas. Usar para "reseñas", "reputación", "qué dicen los clientes", "rating en Google", "reviews".

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.
min_ratingNoFiltrar reseñas con rating mínimo (1-5). Omitir para ver todas.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesReputación y reseñas del período.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
get_sales
Read-only
Inspect

[DEMO SINTÉTICA] Ventas del restaurante registradas en Fudo (sistema POS gastronómico): total facturado, cantidad de tickets, ticket promedio, desglose por canal (Local, Delivery, Mostrador). Usar para "ventas", "facturación", "ingresos", "tickets", "qué vendimos". Solo disponible para restaurantes/locales con Fudo conectado.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
gsc_pages
Read-only
Inspect

[DEMO SINTÉTICA] Páginas del sitio con mejor visibilidad orgánica en Google según Search Console: URL, clics, impresiones, CTR, posición promedio. Usar para "páginas con mejor SEO", "qué URLs rankean", "landings que reciben tráfico orgánico". Para páginas con más tráfico TOTAL (orgánico+todo) usar ga4_pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesPáginas con visibilidad orgánica en Google.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
gsc_queries
Read-only
Inspect

[DEMO SINTÉTICA] Búsquedas orgánicas en Google por las que aparece el sitio: query exacta, clics recibidos, impresiones, CTR y posición promedio. Usar para "por qué nos encuentran", "queries SEO", "keywords orgánicas", "términos de búsqueda orgánicos". NO confundir con gads_search_terms (eso es publicidad pagada).

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesConsultas SEO según Search Console, distintas de consultas publicitarias.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
gsc_summary
Read-only
Inspect

[DEMO SINTÉTICA] Visibilidad del sitio en resultados ORGÁNICOS de Google (no pagado, no GA4): clics desde búsqueda, impresiones (cuántas veces aparecimos), CTR y posición promedio. Usar SOLO para preguntas sobre "SEO", "posicionamiento", "ranking", "búsquedas orgánicas", "aparecemos en Google". NO usar para "visitas al sitio" — eso es ga4_summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesVisibilidad orgánica en Google; clics no son sesiones de GA4.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
ig_followers_growth
Read-only
Inspect

[DEMO SINTÉTICA] Evolución de la cantidad de seguidores de Instagram en el tiempo: serie diaria con total absoluto y crecimiento porcentual. Usar para "crecimiento de seguidores", "ganamos/perdimos seguidores", "evolución de la audiencia".

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesEvolución de seguidores; ausencia de snapshots no equivale a crecimiento cero.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
ig_hashtags
Read-only
Inspect

[DEMO SINTÉTICA] Hashtags usados en posts de Instagram, ordenados por alcance promedio. Incluye cuántos posts usan cada tag y su engagement rate promedio. Útil para identificar qué tags están generando más visibilidad. Usar para "hashtags que funcionan", "qué tags usar", "tags con más alcance".

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesHashtags extraídos de los captions del período.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
ig_summary
Read-only
Inspect

[DEMO SINTÉTICA] Performance de Instagram orgánico (no pagado). Métricas agregadas de posts: alcance total, engagement rate, likes, comentarios, guardados, compartidos. Usar para preguntas sobre "Instagram", "redes sociales", "alcance" o "engagement" sin contexto de publicidad pagada.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesInstagram orgánico del período.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
ig_top_posts
Read-only
Inspect

[DEMO SINTÉTICA] Posts de Instagram con mejor performance, ordenados por engagement, alcance, likes, guardados o comentarios. Incluye caption, fecha, métricas y permalink. Usar para "mejores posts", "qué contenido funcionó", "posts más vistos".

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoOrdenar por: engagement (default), reach, likes, saved, comments
limitNoCantidad de posts a retornar (default: 10, max: 50)
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesHasta 50 posts, ordenados según sort. Lista vacía si no hay posts con alcance positivo.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
meta_campaigns
Read-only
Inspect

[DEMO SINTÉTICA] Desglose de Meta Ads campaña por campaña: nombre, objetivo (tráfico/leads/ventas/mensajes), estado, gasto, alcance, clics. Usar para "campañas de Meta Ads", "qué objetivos tenemos en Facebook", "performance por campaña".

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesCampañas ordenadas por gasto descendente.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.
meta_summary
Read-only
Inspect

[DEMO SINTÉTICA] Performance de Meta Ads (publicidad pagada en Facebook e Instagram). Gasto, alcance, impresiones, clics, CTR, CPM, mensajes, leads, compras. Usar para "Meta Ads", "Facebook Ads", "publicidad en Instagram pagada", "cuánto gastamos en Meta", "anuncios de Facebook". NO confundir con ig_summary (orgánico, no pagado).

ParametersJSON Schema
NameRequiredDescriptionDefault
date_rangeNoPeríodo a consultar. Ejemplos: "últimos 30 días", "enero 2025", "2025-01-01 a 2025-01-31", "este mes", "mes pasado". Por defecto: últimos 30 días.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYesPublicidad pagada en Facebook e Instagram, independiente del Instagram orgánico.
demoNoSolo aparece en demo; todos sus datos son ficticios.
noticeNoAviso obligatorio de datos sintéticos cuando demo es true.
sample_periodNoPeríodo fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.
requested_periodNoRango solicitado a la demo; no es el período real de sus ejemplos.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 22 tool updates
    • Changedclarity_pages1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Fricción por página y dispositivo.",
        +      "properties": {
        +        "device": {
        +          "description": "Filtro aplicado; null significa todos los dispositivos.",
        +          "enum": [
        +            "PC",
        +            "Mobile",
        +            "Tablet",
        +            "Other",
        +            null
        +          ],
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "pages": {
        +          "description": "Hasta 50 páginas ordenadas por sesiones.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Comportamiento en esta página.",
        +            "properties": {
        +              "active_time": {
        +                "description": "Suma de activeTime exportado por Clarity. Unidad no confirmada: no presentar como segundos o minutos sin verificarla.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "active_time_per_session": {
        +                "description": "active_time dividido por sesiones, redondeado. Unidad no confirmada: no presentar como segundos o minutos sin verificarla.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "avg_scroll_depth": {
        +                "description": "Profundidad de scroll, promedio ponderado por sesiones. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "bot_sessions": {
        +                "description": "Sesiones identificadas como bots. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "dead_click_events": {
        +                "description": "Eventos de dead_click; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "dead_click_rate": {
        +                "description": "Sesiones afectadas por dead_click sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "dead_click_sessions": {
        +                "description": "Sesiones afectadas por dead_click. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "error_click_events": {
        +                "description": "Eventos de error_click; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "error_click_rate": {
        +                "description": "Sesiones afectadas por error_click sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "error_click_sessions": {
        +                "description": "Sesiones afectadas por error_click. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "excessive_scroll_events": {
        +                "description": "Eventos de excessive_scroll; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "excessive_scroll_rate": {
        +                "description": "Sesiones afectadas por excessive_scroll sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "excessive_scroll_sessions": {
        +                "description": "Sesiones afectadas por excessive_scroll. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "page_path": {
        +                "description": "Ruta de página, sin dominio, query ni fragmento.",
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "pages_per_session": {
        +                "description": "Páginas por sesión, promedio ponderado por sesiones.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "quickback_events": {
        +                "description": "Eventos de quickback; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "quickback_rate": {
        +                "description": "Sesiones afectadas por quickback sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "quickback_sessions": {
        +                "description": "Sesiones afectadas por quickback. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "rage_click_events": {
        +                "description": "Eventos de rage_click; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "rage_click_rate": {
        +                "description": "Sesiones afectadas por rage_click sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "rage_click_sessions": {
        +                "description": "Sesiones afectadas por rage_click. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "script_error_events": {
        +                "description": "Eventos de script_error; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "script_error_rate": {
        +                "description": "Sesiones afectadas por script_error sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "script_error_sessions": {
        +                "description": "Sesiones afectadas por script_error. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "sessions": {
        +                "description": "Suma de sesiones en los días consultados. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "total_time": {
        +                "description": "Suma de totalTime exportado por Clarity. Unidad no confirmada: no presentar como segundos o minutos sin verificarla.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "users": {
        +                "description": "Suma de usuarios diarios; no son usuarios únicos del período. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "page_path",
        +              "sessions",
        +              "bot_sessions",
        +              "users",
        +              "pages_per_session",
        +              "avg_scroll_depth",
        +              "total_time",
        +              "active_time",
        +              "active_time_per_session",
        +              "dead_click_sessions",
        +              "dead_click_events",
        +              "dead_click_rate",
        +              "rage_click_sessions",
        +              "rage_click_events",
        +              "rage_click_rate",
        +              "quickback_sessions",
        +              "quickback_events",
        +              "quickback_rate",
        +              "excessive_scroll_sessions",
        +              "excessive_scroll_events",
        +              "excessive_scroll_rate",
        +              "error_click_sessions",
        +              "error_click_events",
        +              "error_click_rate",
        +              "script_error_sessions",
        +              "script_error_events",
        +              "script_error_rate"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "device",
        +        "pages"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedclarity_sources1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Calidad del tráfico según Clarity; no mide conversiones.",
        +      "properties": {
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        },
        +        "sources": {
        +          "description": "Hasta 30 combinaciones ordenadas por sesiones.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Comportamiento por fuente/medio.",
        +            "properties": {
        +              "active_time": {
        +                "description": "Suma de activeTime exportado por Clarity. Unidad no confirmada: no presentar como segundos o minutos sin verificarla.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "active_time_per_session": {
        +                "description": "active_time dividido por sesiones, redondeado. Unidad no confirmada: no presentar como segundos o minutos sin verificarla.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "avg_scroll_depth": {
        +                "description": "Profundidad de scroll, promedio ponderado por sesiones. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "bot_sessions": {
        +                "description": "Sesiones identificadas como bots. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "dead_click_events": {
        +                "description": "Eventos de dead_click; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "dead_click_rate": {
        +                "description": "Sesiones afectadas por dead_click sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "dead_click_sessions": {
        +                "description": "Sesiones afectadas por dead_click. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "error_click_events": {
        +                "description": "Eventos de error_click; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "error_click_rate": {
        +                "description": "Sesiones afectadas por error_click sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "error_click_sessions": {
        +                "description": "Sesiones afectadas por error_click. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "excessive_scroll_events": {
        +                "description": "Eventos de excessive_scroll; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "excessive_scroll_rate": {
        +                "description": "Sesiones afectadas por excessive_scroll sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "excessive_scroll_sessions": {
        +                "description": "Sesiones afectadas por excessive_scroll. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "medium": {
        +                "description": "Medio de adquisición.",
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "pages_per_session": {
        +                "description": "Páginas por sesión, promedio ponderado por sesiones.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "quickback_events": {
        +                "description": "Eventos de quickback; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "quickback_rate": {
        +                "description": "Sesiones afectadas por quickback sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "quickback_sessions": {
        +                "description": "Sesiones afectadas por quickback. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "rage_click_events": {
        +                "description": "Eventos de rage_click; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "rage_click_rate": {
        +                "description": "Sesiones afectadas por rage_click sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "rage_click_sessions": {
        +                "description": "Sesiones afectadas por rage_click. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "script_error_events": {
        +                "description": "Eventos de script_error; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "script_error_rate": {
        +                "description": "Sesiones afectadas por script_error sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "script_error_sessions": {
        +                "description": "Sesiones afectadas por script_error. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "sessions": {
        +                "description": "Suma de sesiones en los días consultados. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "source": {
        +                "description": "Fuente de adquisición.",
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "total_time": {
        +                "description": "Suma de totalTime exportado por Clarity. Unidad no confirmada: no presentar como segundos o minutos sin verificarla.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "users": {
        +                "description": "Suma de usuarios diarios; no son usuarios únicos del período. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "source",
        +              "medium",
        +              "sessions",
        +              "bot_sessions",
        +              "users",
        +              "pages_per_session",
        +              "avg_scroll_depth",
        +              "total_time",
        +              "active_time",
        +              "active_time_per_session",
        +              "dead_click_sessions",
        +              "dead_click_events",
        +              "dead_click_rate",
        +              "rage_click_sessions",
        +              "rage_click_events",
        +              "rage_click_rate",
        +              "quickback_sessions",
        +              "quickback_events",
        +              "quickback_rate",
        +              "excessive_scroll_sessions",
        +              "excessive_scroll_events",
        +              "excessive_scroll_rate",
        +              "error_click_sessions",
        +              "error_click_events",
        +              "error_click_rate",
        +              "script_error_sessions",
        +              "script_error_events",
        +              "script_error_rate"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "sources"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedclarity_summary1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Comportamiento según Clarity; agregados null cuando no hay filas.",
        +      "properties": {
        +        "active_days": {
        +          "description": "Días con datos disponibles; Clarity no tiene histórico anterior al alta.",
        +          "type": "number"
        +        },
        +        "active_time": {
        +          "description": "Suma de activeTime exportado por Clarity. Unidad no confirmada: no presentar como segundos o minutos sin verificarla.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "active_time_per_session": {
        +          "description": "active_time dividido por sesiones, redondeado. Unidad no confirmada: no presentar como segundos o minutos sin verificarla.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "avg_scroll_depth": {
        +          "description": "Profundidad de scroll, promedio ponderado por sesiones. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "bot_sessions": {
        +          "description": "Sesiones identificadas como bots. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "dead_click_events": {
        +          "description": "Eventos de dead_click; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "dead_click_rate": {
        +          "description": "Sesiones afectadas por dead_click sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "dead_click_sessions": {
        +          "description": "Sesiones afectadas por dead_click. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "error_click_events": {
        +          "description": "Eventos de error_click; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "error_click_rate": {
        +          "description": "Sesiones afectadas por error_click sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "error_click_sessions": {
        +          "description": "Sesiones afectadas por error_click. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "excessive_scroll_events": {
        +          "description": "Eventos de excessive_scroll; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "excessive_scroll_rate": {
        +          "description": "Sesiones afectadas por excessive_scroll sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "excessive_scroll_sessions": {
        +          "description": "Sesiones afectadas por excessive_scroll. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "pages_per_session": {
        +          "description": "Páginas por sesión, promedio ponderado por sesiones.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        },
        +        "quickback_events": {
        +          "description": "Eventos de quickback; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "quickback_rate": {
        +          "description": "Sesiones afectadas por quickback sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "quickback_sessions": {
        +          "description": "Sesiones afectadas por quickback. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "rage_click_events": {
        +          "description": "Eventos de rage_click; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "rage_click_rate": {
        +          "description": "Sesiones afectadas por rage_click sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "rage_click_sessions": {
        +          "description": "Sesiones afectadas por rage_click. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "script_error_events": {
        +          "description": "Eventos de script_error; una sesión puede tener varios. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "script_error_rate": {
        +          "description": "Sesiones afectadas por script_error sobre sesiones totales. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "script_error_sessions": {
        +          "description": "Sesiones afectadas por script_error. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "sessions": {
        +          "description": "Suma de sesiones en los días consultados. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "total_time": {
        +          "description": "Suma de totalTime exportado por Clarity. Unidad no confirmada: no presentar como segundos o minutos sin verificarla.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "users": {
        +          "description": "Suma de usuarios diarios; no son usuarios únicos del período. null indica ausencia del valor en la fuente.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "sessions",
        +        "bot_sessions",
        +        "users",
        +        "pages_per_session",
        +        "avg_scroll_depth",
        +        "total_time",
        +        "active_time",
        +        "active_time_per_session",
        +        "dead_click_sessions",
        +        "dead_click_events",
        +        "dead_click_rate",
        +        "rage_click_sessions",
        +        "rage_click_events",
        +        "rage_click_rate",
        +        "quickback_sessions",
        +        "quickback_events",
        +        "quickback_rate",
        +        "excessive_scroll_sessions",
        +        "excessive_scroll_events",
        +        "excessive_scroll_rate",
        +        "error_click_sessions",
        +        "error_click_events",
        +        "error_click_rate",
        +        "script_error_sessions",
        +        "script_error_events",
        +        "script_error_rate",
        +        "active_days"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedga4_pages1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Páginas del sitio según GA4.",
        +      "properties": {
        +        "pages": {
        +          "description": "Hasta 50 páginas ordenadas por vistas.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Página y métricas de GA4.",
        +            "properties": {
        +              "avg_session_duration": {
        +                "description": "Promedio simple de duración media diaria en segundos, redondeado.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "bounce_rate": {
        +                "description": "Promedio simple de tasas diarias de rebote. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "page_path": {
        +                "description": "Ruta de página, sin dominio.",
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "page_views": {
        +                "description": "Vistas de página. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "sessions": {
        +                "description": "Sesiones registradas para la página. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "total_users": {
        +                "description": "Suma de usuarios diarios por página, no deduplicada para el período. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "page_path",
        +              "page_views",
        +              "sessions",
        +              "total_users",
        +              "bounce_rate",
        +              "avg_session_duration"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "pages"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedga4_sources1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Adquisición de tráfico en GA4.",
        +      "properties": {
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        },
        +        "sources": {
        +          "description": "Hasta 50 combinaciones ordenadas por sesiones; la lista puede omitir fuentes menores.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Fuente/medio de adquisición.",
        +            "properties": {
        +              "conversions": {
        +                "description": "Conversiones/key events. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "session_medium": {
        +                "description": "Medio de la sesión.",
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "session_source": {
        +                "description": "Fuente de la sesión.",
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "sessions": {
        +                "description": "Sesiones de esta fuente/medio. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "total_users": {
        +                "description": "Suma de usuarios diarios por fuente/medio; no deduplicada para el período. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "session_source",
        +              "session_medium",
        +              "sessions",
        +              "total_users",
        +              "conversions"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "sources"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedga4_summary1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Tráfico web de todos los canales según GA4.",
        +      "properties": {
        +        "activeDays": {
        +          "description": "Días con filas disponibles; no es el número de días del rango solicitado.",
        +          "type": "number"
        +        },
        +        "avgSessionDurationSeconds": {
        +          "description": "Promedio simple de la duración media diaria, en segundos, redondeado.",
        +          "type": "number"
        +        },
        +        "bounceRate": {
        +          "description": "Promedio simple de las tasas diarias de rebote, no ponderado por sesiones. Porcentaje: 5 significa 5%, no 0,05.",
        +          "type": "number"
        +        },
        +        "conversions": {
        +          "description": "Conversiones/key events registrados en GA4; no equivalen necesariamente a ventas.",
        +          "type": "number"
        +        },
        +        "engagementRate": {
        +          "description": "Promedio simple de las tasas diarias de engagement, no ponderado por sesiones. Porcentaje: 5 significa 5%, no 0,05.",
        +          "type": "number"
        +        },
        +        "newUsers": {
        +          "description": "Suma de usuarios nuevos diarios.",
        +          "type": "number"
        +        },
        +        "pageViews": {
        +          "description": "Vistas de página, incluidas visitas repetidas.",
        +          "type": "number"
        +        },
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        },
        +        "sessions": {
        +          "description": "Suma de sesiones diarias.",
        +          "type": "number"
        +        },
        +        "totalUsers": {
        +          "description": "Suma de usuarios diarios; no son usuarios únicos de todo el período.",
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "sessions",
        +        "totalUsers",
        +        "newUsers",
        +        "pageViews",
        +        "bounceRate",
        +        "avgSessionDurationSeconds",
        +        "engagementRate",
        +        "conversions",
        +        "activeDays"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedgads_campaigns1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "description": "Campañas ordenadas por gasto descendente.",
        +      "items": {
        +        "additionalProperties": false,
        +        "description": "Campaña de Google Ads.",
        +        "properties": {
        +          "campaign": {
        +            "description": "Nombre de la campaña.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "clicks": {
        +            "description": "Clics registrados. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "conversions": {
        +            "description": "Conversiones atribuidas; pueden ser fraccionarias. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "ctr": {
        +            "description": "Clics divididos por impresiones; 0 cuando no hay impresiones. Porcentaje: 5 significa 5%, no 0,05.",
        +            "type": "number"
        +          },
        +          "impressions": {
        +            "description": "Impresiones registradas. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "spend": {
        +            "description": "Gasto en la moneda de la cuenta publicitaria; consultar el resumen del mismo canal para conocerla.",
        +            "type": "number"
        +          },
        +          "status": {
        +            "description": "Estado informado por la plataforma.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "campaign",
        +          "status",
        +          "spend",
        +          "clicks",
        +          "impressions",
        +          "ctr",
        +          "conversions"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedgads_keywords1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "description": "Hasta 100 keywords ordenadas por gasto descendente; no son las consultas escritas por usuarios.",
        +      "items": {
        +        "additionalProperties": false,
        +        "description": "Keyword comprada y sus resultados.",
        +        "properties": {
        +          "campaign": {
        +            "description": "Nombre de campaña.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "clicks": {
        +            "description": "Clics registrados. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "conversions": {
        +            "description": "Conversiones atribuidas; pueden ser fraccionarias. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "cpc": {
        +            "description": "Costo por clic en la moneda de Google Ads; 0 si no hay clics.",
        +            "type": "number"
        +          },
        +          "impressions": {
        +            "description": "Impresiones registradas. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "keyword": {
        +            "description": "Keyword configurada para pujar.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "matchType": {
        +            "description": "Tipo de concordancia.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "spend": {
        +            "description": "Gasto en la moneda de la cuenta publicitaria; consultar el resumen del mismo canal para conocerla.",
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "campaign",
        +          "keyword",
        +          "matchType",
        +          "spend",
        +          "clicks",
        +          "impressions",
        +          "conversions",
        +          "cpc"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedgads_search_terms1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "description": "Hasta 100 filas ordenadas por gasto; una consulta puede aparecer en varios días o campañas.",
        +      "items": {
        +        "additionalProperties": false,
        +        "description": "Fila de consulta publicitaria, sin agregación adicional del servidor.",
        +        "properties": {
        +          "campaign": {
        +            "description": "Nombre de campaña.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "clicks": {
        +            "description": "Clics registrados. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "conversions": {
        +            "description": "Conversiones atribuidas; pueden ser fraccionarias. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "impressions": {
        +            "description": "Impresiones registradas. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "searchTerm": {
        +            "description": "Consulta real que disparó el anuncio.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "spend": {
        +            "description": "Gasto en la moneda de la cuenta publicitaria; consultar el resumen del mismo canal para conocerla.",
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "campaign",
        +          "searchTerm",
        +          "impressions",
        +          "clicks",
        +          "spend",
        +          "conversions"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedgads_summary1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Publicidad pagada en Google; conversiones atribuidas no equivalen necesariamente a ventas del POS.",
        +      "properties": {
        +        "campaigns": {
        +          "description": "Campañas distintas con filas en el período.",
        +          "type": "number"
        +        },
        +        "clicks": {
        +          "description": "Clics.",
        +          "type": "number"
        +        },
        +        "conversions": {
        +          "description": "Conversiones atribuidas por Google Ads; pueden ser fraccionarias.",
        +          "type": "number"
        +        },
        +        "cpa": {
        +          "description": "Costo por conversión en currency; 0 si no hay conversiones.",
        +          "type": "number"
        +        },
        +        "cpc": {
        +          "description": "Costo por clic en currency; 0 si no hay clics.",
        +          "type": "number"
        +        },
        +        "ctr": {
        +          "description": "Clics / impresiones; 0 si no hay impresiones. Porcentaje: 5 significa 5%, no 0,05.",
        +          "type": "number"
        +        },
        +        "currency": {
        +          "description": "Moneda configurada en la cuenta (por ejemplo CLP o USD); el servidor usa CLP si no está configurada.",
        +          "type": "string"
        +        },
        +        "impressions": {
        +          "description": "Impresiones.",
        +          "type": "number"
        +        },
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        },
        +        "roas": {
        +          "description": "Valor de conversiones / gasto, como múltiplo: 3 significa 3 veces, no 3%. 0 si no hay gasto.",
        +          "type": "number"
        +        },
        +        "totalSpend": {
        +          "description": "Gasto total en currency; ya convertido de micros a unidades monetarias.",
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "currency",
        +        "totalSpend",
        +        "impressions",
        +        "clicks",
        +        "ctr",
        +        "cpc",
        +        "conversions",
        +        "cpa",
        +        "roas",
        +        "campaigns"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedget_leads1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "description": "CRM habilitado: contactos del período.",
        +          "properties": {
        +            "byStatus": {
        +              "additionalProperties": {
        +                "description": "Leads devueltos en ese estado.",
        +                "type": "number"
        +              },
        +              "description": "Conteo por estado de las filas devueltas (hasta 100), no del total completo.",
        +              "type": "object"
        +            },
        +            "leads": {
        +              "description": "Hasta 100 leads, de más reciente a más antiguo.",
        +              "items": {
        +                "additionalProperties": false,
        +                "description": "Lead de la cuenta autenticada.",
        +                "properties": {
        +                  "created_at": {
        +                    "description": "Fecha y hora de captación.",
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "email": {
        +                    "description": "Email del prospecto.",
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "name": {
        +                    "description": "Nombre del prospecto.",
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "notes": {
        +                    "description": "Notas del contacto.",
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "phone": {
        +                    "description": "Teléfono del prospecto.",
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "source": {
        +                    "description": "Fuente de captación.",
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "status": {
        +                    "description": "Estado almacenado en CRM.",
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "name",
        +                  "email",
        +                  "phone",
        +                  "source",
        +                  "status",
        +                  "created_at",
        +                  "notes"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "period": {
        +              "additionalProperties": false,
        +              "description": "Rango consultado, desde from hasta to inclusive.",
        +              "properties": {
        +                "from": {
        +                  "description": "Fecha YYYY-MM-DD.",
        +                  "format": "date",
        +                  "type": "string"
        +                },
        +                "to": {
        +                  "description": "Fecha YYYY-MM-DD.",
        +                  "format": "date",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "from",
        +                "to"
        +              ],
        +              "type": "object"
        +            },
        +            "total": {
        +              "description": "Total de leads del período y filtro, no limitado a 100.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "period",
        +            "total",
        +            "byStatus",
        +            "leads"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "additionalProperties": false,
        +          "description": "CRM no disponible; no interpretar como cero leads.",
        +          "properties": {
        +            "error": {
        +              "description": "Motivo por el que la consulta no está disponible, por ejemplo CRM no habilitado.",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "error"
        +          ],
        +          "type": "object"
        +        }
        +      ]
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedget_reviews1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Reputación y reseñas del período.",
        +      "properties": {
        +        "avgRating": {
        +          "description": "Rating promedio en escala 1 a 5; excluye Facebook. null si no hay ratings numéricos.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        },
        +        "responseRate": {
        +          "description": "Reseñas con respuesta del propietario / total; 0 si no hay reseñas. Porcentaje: 5 significa 5%, no 0,05.",
        +          "type": "number"
        +        },
        +        "reviews": {
        +          "description": "Hasta 20 reseñas, de más reciente a más antigua; total puede ser mayor.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Reseña individual.",
        +            "properties": {
        +              "author_name": {
        +                "description": "Nombre del autor.",
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "has_reply": {
        +                "description": "1 si el propietario respondió; 0 si no.",
        +                "enum": [
        +                  0,
        +                  1
        +                ],
        +                "type": "number"
        +              },
        +              "platform": {
        +                "description": "Plataforma de origen.",
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "rating": {
        +                "description": "Rating en escala 1 a 5; null para reseñas sin rating.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "review_date": {
        +                "description": "Fecha de reseña según la fuente.",
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "review_text": {
        +                "description": "Texto de la reseña; null si no existe.",
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "author_name",
        +              "rating",
        +              "review_text",
        +              "review_date",
        +              "platform",
        +              "has_reply"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "total": {
        +          "description": "Reseñas del período que pasan el filtro, incluidas las de Facebook sin rating.",
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "total",
        +        "avgRating",
        +        "responseRate",
        +        "reviews"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedget_sales1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "description": "Ventas registradas en Fudo, no conversiones publicitarias.",
        +          "properties": {
        +            "byChannel": {
        +              "additionalProperties": false,
        +              "description": "Desglose de los tres canales conocidos; otros tipos pueden quedar fuera del desglose.",
        +              "properties": {
        +                "delivery": {
        +                  "additionalProperties": false,
        +                  "description": "Ventas de este canal.",
        +                  "properties": {
        +                    "total": {
        +                      "description": "Facturación en la moneda del POS.",
        +                      "type": "number"
        +                    },
        +                    "ventas": {
        +                      "description": "Cantidad de tickets cerrados.",
        +                      "type": "number"
        +                    }
        +                  },
        +                  "required": [
        +                    "ventas",
        +                    "total"
        +                  ],
        +                  "type": "object"
        +                },
        +                "local": {
        +                  "additionalProperties": false,
        +                  "description": "Ventas de este canal.",
        +                  "properties": {
        +                    "total": {
        +                      "description": "Facturación en la moneda del POS.",
        +                      "type": "number"
        +                    },
        +                    "ventas": {
        +                      "description": "Cantidad de tickets cerrados.",
        +                      "type": "number"
        +                    }
        +                  },
        +                  "required": [
        +                    "ventas",
        +                    "total"
        +                  ],
        +                  "type": "object"
        +                },
        +                "mostrador": {
        +                  "additionalProperties": false,
        +                  "description": "Ventas de este canal.",
        +                  "properties": {
        +                    "total": {
        +                      "description": "Facturación en la moneda del POS.",
        +                      "type": "number"
        +                    },
        +                    "ventas": {
        +                      "description": "Cantidad de tickets cerrados.",
        +                      "type": "number"
        +                    }
        +                  },
        +                  "required": [
        +                    "ventas",
        +                    "total"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "local",
        +                "delivery",
        +                "mostrador"
        +              ],
        +              "type": "object"
        +            },
        +            "period": {
        +              "additionalProperties": false,
        +              "description": "Rango consultado, desde from hasta to inclusive.",
        +              "properties": {
        +                "from": {
        +                  "description": "Fecha YYYY-MM-DD.",
        +                  "format": "date",
        +                  "type": "string"
        +                },
        +                "to": {
        +                  "description": "Fecha YYYY-MM-DD.",
        +                  "format": "date",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "from",
        +                "to"
        +              ],
        +              "type": "object"
        +            },
        +            "ticketPromedio": {
        +              "description": "Promedio por ticket cerrado en moneda del POS, redondeado.",
        +              "type": "number"
        +            },
        +            "totalFacturado": {
        +              "description": "Facturación de tickets cerrados en moneda del POS, redondeada.",
        +              "type": "number"
        +            },
        +            "totalVentas": {
        +              "description": "Tickets cerrados registrados en Fudo.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "period",
        +            "totalVentas",
        +            "totalFacturado",
        +            "ticketPromedio",
        +            "byChannel"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "additionalProperties": false,
        +          "description": "Sin datos de ventas; no afirmar ingresos cero sin verificar cobertura del POS.",
        +          "properties": {
        +            "message": {
        +              "description": "Aviso de que no hay datos de ventas para el período.",
        +              "type": "string"
        +            },
        +            "period": {
        +              "additionalProperties": false,
        +              "description": "Rango consultado, desde from hasta to inclusive.",
        +              "properties": {
        +                "from": {
        +                  "description": "Fecha YYYY-MM-DD.",
        +                  "format": "date",
        +                  "type": "string"
        +                },
        +                "to": {
        +                  "description": "Fecha YYYY-MM-DD.",
        +                  "format": "date",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "from",
        +                "to"
        +              ],
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "period",
        +            "message"
        +          ],
        +          "type": "object"
        +        }
        +      ]
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedgsc_pages1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Páginas con visibilidad orgánica en Google.",
        +      "properties": {
        +        "pages": {
        +          "description": "Hasta 50 páginas ordenadas por clics.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Página y visibilidad orgánica.",
        +            "properties": {
        +              "clicks": {
        +                "description": "Clics orgánicos desde Google. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "ctr": {
        +                "description": "Clics divididos por impresiones. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "impressions": {
        +                "description": "Apariciones en resultados de Google. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "page": {
        +                "description": "URL de la página en Search Console.",
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "position": {
        +                "description": "Posición ponderada por clics del período (cálculo actual del servidor); menor es mejor. null si no hay clics.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "page",
        +              "clicks",
        +              "impressions",
        +              "ctr",
        +              "position"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "pages"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedgsc_queries1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Consultas SEO según Search Console, distintas de consultas publicitarias.",
        +      "properties": {
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        },
        +        "queries": {
        +          "description": "Hasta 50 consultas ordenadas por clics; no cubre necesariamente todas las consultas.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Consulta y visibilidad orgánica.",
        +            "properties": {
        +              "clicks": {
        +                "description": "Clics orgánicos desde Google. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "ctr": {
        +                "description": "Clics divididos por impresiones. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "impressions": {
        +                "description": "Apariciones en resultados de Google. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "position": {
        +                "description": "Posición ponderada por clics del período (cálculo actual del servidor); menor es mejor. null si no hay clics.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "query": {
        +                "description": "Consulta orgánica exacta en Google.",
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "query",
        +              "clicks",
        +              "impressions",
        +              "ctr",
        +              "position"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "queries"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedgsc_summary1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Visibilidad orgánica en Google; clics no son sesiones de GA4.",
        +      "properties": {
        +        "activeDays": {
        +          "description": "Días con datos disponibles.",
        +          "type": "number"
        +        },
        +        "avgPosition": {
        +          "description": "Posición ponderada por clics según el cálculo actual del servidor; menor es mejor. 0 si no hay clics (no significa posición 0).",
        +          "type": "number"
        +        },
        +        "clicks": {
        +          "description": "Clics orgánicos desde Google.",
        +          "type": "number"
        +        },
        +        "ctr": {
        +          "description": "Clics / impresiones; 0 si no hay impresiones. Porcentaje: 5 significa 5%, no 0,05.",
        +          "type": "number"
        +        },
        +        "impressions": {
        +          "description": "Apariciones en resultados de Google.",
        +          "type": "number"
        +        },
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "clicks",
        +        "impressions",
        +        "ctr",
        +        "avgPosition",
        +        "activeDays"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedig_followers_growth1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Evolución de seguidores; ausencia de snapshots no equivale a crecimiento cero.",
        +      "properties": {
        +        "growth": {
        +          "description": "Último snapshot menos el primero; puede ser negativo. null si faltan snapshots.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "growthPct": {
        +          "description": "Crecimiento relativo al primer snapshot. null si falta o vale 0. Porcentaje: 5 significa 5%, no 0,05. null indica que no se puede calcular.",
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        },
        +        "series": {
        +          "description": "Serie cronológica de snapshots disponibles; puede estar vacía.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Snapshot diario de seguidores.",
        +            "properties": {
        +              "date": {
        +                "description": "Fecha YYYY-MM-DD.",
        +                "format": "date",
        +                "type": "string"
        +              },
        +              "followers": {
        +                "description": "Seguidores al cierre de ese día. null indica ausencia del valor en la fuente.",
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "date",
        +              "followers"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "series",
        +        "growth",
        +        "growthPct"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedig_hashtags1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Hashtags extraídos de los captions del período.",
        +      "properties": {
        +        "hashtags": {
        +          "description": "Hasta 30 hashtags ordenados por alcance promedio.",
        +          "items": {
        +            "additionalProperties": false,
        +            "description": "Resultados de posts que usan el hashtag; no prueban un efecto causal.",
        +            "properties": {
        +              "avgEngRate": {
        +                "description": "Promedio del engagement rate de esos posts. Porcentaje: 5 significa 5%, no 0,05.",
        +                "type": "number"
        +              },
        +              "avgReach": {
        +                "description": "Alcance promedio de esos posts, redondeado.",
        +                "type": "number"
        +              },
        +              "posts": {
        +                "description": "Posts que incluyen este hashtag.",
        +                "type": "number"
        +              },
        +              "tag": {
        +                "description": "Hashtag normalizado en minúsculas, sin #.",
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "tag",
        +              "posts",
        +              "avgReach",
        +              "avgEngRate"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "hashtags"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedig_summary1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Instagram orgánico del período.",
        +      "properties": {
        +        "account": {
        +          "description": "Usuario de Instagram; puede faltar si la cuenta no existe.",
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "avgReach": {
        +          "description": "Alcance promedio por publicación, redondeado.",
        +          "type": "number"
        +        },
        +        "engagementRate": {
        +          "description": "(Likes + comentarios + guardados + compartidos) / alcance acumulado. 0 si el alcance es 0. Porcentaje: 5 significa 5%, no 0,05.",
        +          "type": "number"
        +        },
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        },
        +        "posts": {
        +          "description": "Publicaciones del período.",
        +          "type": "number"
        +        },
        +        "totalComments": {
        +          "description": "Comentarios acumulados.",
        +          "type": "number"
        +        },
        +        "totalLikes": {
        +          "description": "Likes acumulados.",
        +          "type": "number"
        +        },
        +        "totalReach": {
        +          "description": "Suma del alcance de los posts; una persona puede contarse en varios posts.",
        +          "type": "number"
        +        },
        +        "totalSaved": {
        +          "description": "Guardados acumulados.",
        +          "type": "number"
        +        },
        +        "totalShares": {
        +          "description": "Compartidos acumulados.",
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "posts",
        +        "totalReach",
        +        "avgReach",
        +        "totalLikes",
        +        "totalComments",
        +        "totalSaved",
        +        "totalShares",
        +        "engagementRate"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedig_top_posts1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "description": "Hasta 50 posts, ordenados según sort. Lista vacía si no hay posts con alcance positivo.",
        +      "items": {
        +        "additionalProperties": false,
        +        "description": "Publicación con sus métricas.",
        +        "properties": {
        +          "caption": {
        +            "description": "Texto de la publicación; null si no existe.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "comments_count": {
        +            "description": "Comentarios del post. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "engagementRate": {
        +            "description": "Interacciones del post divididas por su alcance. Porcentaje: 5 significa 5%, no 0,05.",
        +            "type": "number"
        +          },
        +          "ig_media_id": {
        +            "description": "ID del post en Instagram.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "like_count": {
        +            "description": "Likes del post. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "media_type": {
        +            "description": "Tipo de publicación informado por Instagram.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "permalink": {
        +            "description": "Enlace a la publicación.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "reach": {
        +            "description": "Alcance del post; solo se incluyen posts con alcance positivo.",
        +            "type": "number"
        +          },
        +          "saved": {
        +            "description": "Guardados del post.",
        +            "type": "number"
        +          },
        +          "shares": {
        +            "description": "Compartidos del post.",
        +            "type": "number"
        +          },
        +          "timestamp": {
        +            "description": "Fecha y hora de publicación según la fuente.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "ig_media_id",
        +          "media_type",
        +          "caption",
        +          "timestamp",
        +          "permalink",
        +          "like_count",
        +          "comments_count",
        +          "reach",
        +          "saved",
        +          "shares",
        +          "engagementRate"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedmeta_campaigns1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "description": "Campañas ordenadas por gasto descendente.",
        +      "items": {
        +        "additionalProperties": false,
        +        "description": "Campaña de Meta Ads.",
        +        "properties": {
        +          "campaign": {
        +            "description": "Nombre de la campaña.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "clicks": {
        +            "description": "Clics registrados. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "ctr": {
        +            "description": "Clics divididos por impresiones; 0 cuando no hay impresiones. Porcentaje: 5 significa 5%, no 0,05.",
        +            "type": "number"
        +          },
        +          "impressions": {
        +            "description": "Impresiones registradas. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "objective": {
        +            "description": "Objetivo de campaña informado por Meta.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "reach": {
        +            "description": "Suma de alcances diarios; no es alcance único del período. null indica ausencia del valor en la fuente.",
        +            "type": [
        +              "number",
        +              "null"
        +            ]
        +          },
        +          "spend": {
        +            "description": "Gasto en la moneda de la cuenta publicitaria; consultar el resumen del mismo canal para conocerla.",
        +            "type": "number"
        +          },
        +          "status": {
        +            "description": "Estado informado por la plataforma.",
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "campaign",
        +          "status",
        +          "spend",
        +          "clicks",
        +          "impressions",
        +          "ctr",
        +          "objective",
        +          "reach"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
    • Changedmeta_summary1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": false,
        +  "description": "Estadísticas de la cuenta autenticada en data. Si demo es true, son ejemplos sintéticos; sample_period es su período y requested_period solo el rango solicitado.",
        +  "properties": {
        +    "data": {
        +      "additionalProperties": false,
        +      "description": "Publicidad pagada en Facebook e Instagram, independiente del Instagram orgánico.",
        +      "properties": {
        +        "campaigns": {
        +          "description": "Campañas distintas con filas en el período.",
        +          "type": "number"
        +        },
        +        "clicks": {
        +          "description": "Clics.",
        +          "type": "number"
        +        },
        +        "cpc": {
        +          "description": "Costo por clic en currency; 0 si no hay clics.",
        +          "type": "number"
        +        },
        +        "cpm": {
        +          "description": "Costo por mil impresiones en currency; 0 si no hay impresiones.",
        +          "type": "number"
        +        },
        +        "ctr": {
        +          "description": "Clics / impresiones; 0 si no hay impresiones. Porcentaje: 5 significa 5%, no 0,05.",
        +          "type": "number"
        +        },
        +        "currency": {
        +          "description": "Moneda configurada en la cuenta (por ejemplo CLP o USD); el servidor usa CLP si no está configurada.",
        +          "type": "string"
        +        },
        +        "impressions": {
        +          "description": "Impresiones.",
        +          "type": "number"
        +        },
        +        "leads": {
        +          "description": "Acciones lead atribuidas por Meta.",
        +          "type": "number"
        +        },
        +        "messages": {
        +          "description": "Conversaciones iniciadas: onsite_conversion.messaging_conversation_started_7d.",
        +          "type": "number"
        +        },
        +        "period": {
        +          "additionalProperties": false,
        +          "description": "Rango consultado, desde from hasta to inclusive.",
        +          "properties": {
        +            "from": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            },
        +            "to": {
        +              "description": "Fecha YYYY-MM-DD.",
        +              "format": "date",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "from",
        +            "to"
        +          ],
        +          "type": "object"
        +        },
        +        "purchases": {
        +          "description": "Acciones purchase atribuidas por Meta; no son tickets del POS.",
        +          "type": "number"
        +        },
        +        "reach": {
        +          "description": "Suma de alcances diarios por campaña; no es alcance único del período.",
        +          "type": "number"
        +        },
        +        "totalSpend": {
        +          "description": "Gasto total en currency.",
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "period",
        +        "currency",
        +        "totalSpend",
        +        "impressions",
        +        "clicks",
        +        "reach",
        +        "ctr",
        +        "cpc",
        +        "cpm",
        +        "messages",
        +        "leads",
        +        "purchases",
        +        "campaigns"
        +      ],
        +      "type": "object"
        +    },
        +    "demo": {
        +      "const": true,
        +      "description": "Solo aparece en demo; todos sus datos son ficticios.",
        +      "type": "boolean"
        +    },
        +    "notice": {
        +      "description": "Aviso obligatorio de datos sintéticos cuando demo es true.",
        +      "type": "string"
        +    },
        +    "requested_period": {
        +      "additionalProperties": false,
        +      "description": "Rango solicitado a la demo; no es el período real de sus ejemplos.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    },
        +    "sample_period": {
        +      "additionalProperties": false,
        +      "description": "Período fijo de los ejemplos sintéticos; no cambia al solicitar otro rango.",
        +      "properties": {
        +        "from": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        },
        +        "to": {
        +          "description": "Fecha YYYY-MM-DD.",
        +          "format": "date",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "from",
        +        "to"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "data"
        +  ],
        +  "type": "object"
        +}
  2. 3 tool updates
    • Addedclarity_pages
    • Addedclarity_sources
    • Addedclarity_summary
  3. 19 tool updates
    • First observedga4_pages
    • First observedga4_sources
    • First observedga4_summary
    • First observedgads_campaigns
    • First observedgads_keywords
    • First observedgads_search_terms
    • First observedgads_summary
    • First observedget_leads
    • First observedget_reviews
    • First observedget_sales
    • First observedgsc_pages
    • First observedgsc_queries
    • First observedgsc_summary
    • First observedig_followers_growth
    • First observedig_hashtags
    • First observedig_summary
    • First observedig_top_posts
    • First observedmeta_campaigns
    • First observedmeta_summary

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.