03

Rastreo de CLI

Rastree cómo los desarrolladores usan su herramienta CLI. Vea qué comandos son populares, cuánto tiempo toman y qué errores ocurren -- sin recopilar datos personales.

Install
npm install @bettermeter/node
Auto-track with Commander.js
import { BetterMeter } from "@bettermeter/node";
import { Command } from "commander";

const bm = new BetterMeter({
  siteId: "my-cli-tool",
  apiKey: "bm_...",
});

const program = new Command();

// Wraps all commands — tracks name, flags, exit code
bm.wrapCommander(program, { version: "1.0.0" });

program.command("deploy").action(() => { /* ... */ });
program.parse();

// Flush on exit
process.on("SIGTERM", () => bm.shutdown());
Manual tracking
bm.trackCommand({
  command: "deploy",
  subcommand: "preview",
  flags: ["--prod", "--verbose"],
  version: "2.1.0",
  durationMs: 4500,
  exitCode: 0,
  isCi: !!process.env.CI,
});

Qué se rastrea

Solo nombres de comandos y de flags. Los valores de flags, argumentos y rutas de archivos nunca se envían. El SDK captura el sistema operativo y la arquitectura para analíticas de entorno.

07

Referencia de CLI

El CLI de BetterMeter le permite consultar analíticas desde la terminal con una salida visual elegante. Todos los comandos aceptan -s/--site, -r/--range, -l/--limit y --json.

Install & authenticate
npm install -g bettermeter
bettermeter login -t <apiKey> -u https://bettermeter.com

Formatos de salida

Por defecto, el CLI muestra una salida visual enriquecida con gráficos ASCII, texto con color, sparklines y tarjetas de estadísticas. Toda la salida usa caracteres Unicode compatibles con todas las terminales modernas. Los colores detectan automáticamente las capacidades de la terminal y respetan la variable de entorno NO_COLOR.

Por defecto (visual)Gráficos de líneas, barras horizontales, sparklines, tablas estilizadas con color
--jsonDatos JSON sin procesar -- ideal para scripts, piping a jq o uso programático

La salida visual incluye:

  • Gráficos de líneas para datos de series temporales (visitantes diarios, invocaciones)
  • Barras horizontales para listas ordenadas (páginas, fuentes, países)
  • Sparklines junto a las estadísticas generales para una visualización rápida de tendencias
  • Tarjetas de estadísticas con indicadores de cambio a color para resúmenes
  • Tablas estilizadas con bordes para datos detallados
Example: visual vs JSON
# Visual output (default)
bettermeter stats -s example.com

# JSON output for scripting
bettermeter stats -s example.com --json | jq '.visitors'

Autenticación

login -t <key> -u <url>Autenticarse con clave API y URL del dashboard
logoutEliminar credenciales almacenadas
whoamiMostrar el usuario autenticado actual

Tiempo real

live -s <siteId> [--activity] [--cursor <cursor>] [--json]Conteo de visitantes en vivo; añade --activity para el feed reciente de eventos humanos y --cursor para consultas incrementales (--json para salida sin procesar)
live:screen -s <siteId> [--json]Muestra la URL autenticada de Pantalla grande para la visualización rebobinable de visitantes y su cronología de actividad de 30 minutos (--json para salida estructurada)

Analíticas web

Los comandos de tráfico humano excluyen por defecto los bots conocidos, la automatización sin navegador y las cohortes de scrapers detectadas con alta confianza. Añade --include-bots a stats, pages, sources, timeseries, ai-traffic, countries, devices, browsers o channels para incluirlos.

statsResumen: visitantes, vistas de página, sesiones + % de cambio, o un nuevo estado base si el período anterior está vacío
pagesPáginas más visitadas por número de visitantes
sourcesFuentes de tráfico (--filter all|ai|traditional)
ai-trafficDesglose de referencias de IA por plataforma
botsTráfico de bots/rastreadores (--category all|ai-crawler|search|monitoring|scraper)
timeseriesTendencia diaria de visitantes/vistas de página
countriesVisitantes por país
devicesDesglose por dispositivo
browsersDesglose por navegador
visitorsPersonas con primera fuente, campaña, visitas repetidas y ciclo de vida
visitor <visitorId>Perfil de una persona, primer contacto, sesiones y cronología
visitor:update <visitorId>Establecer un ID opaco, nombre visible o estado de visitante/cliente
visitor:properties <visitorId>Listar las propiedades clave/valor almacenadas en un visitante
visitor:tag <visitorId>Establecer o eliminar propiedades clave/valor arbitrarias en un visitante
eventsEventos personalizados con conteos
campaignsAtribución automática de URL de campaña (UTM + IDs de clic)
campaign <name>Informe detallado de campaña (calidad, variantes, desgloses)
campaign:visitors <name>Todas las personas que trajo una campaña: quién hizo clic, la página en la que aterrizó, su variante, dispositivo y país, y qué hizo después
keywordsPalabras clave que generan tráfico (utm_term, con calidad de las visitas)
marketingInforme de marketing completo: campañas, páginas de destino, mezcla de canales
screenshot <path>Capturar una página de destino y guardarla como imagen (--site, --output opcional)
channelsDesglose por canal (Directo, Búsqueda pagada, Orgánico, etc.)
exportReporte completo (--format json|csv|md)

Analíticas de CLI

cli-overviewInvocaciones, usuarios, tasa de éxito, duración promedio
cli-commandsComandos más usados por número de invocaciones
cli-timeseriesActividad diaria de CLI

Analíticas de MCP

mcp-overviewInvocaciones, usuarios, tasa de éxito, duración promedio
mcp-toolsHerramientas MCP más usadas por número de invocaciones
mcp-clientsDesglose por cliente (Claude, Cursor, etc.)
mcp-timeseriesActividad diaria de MCP

Analíticas de API

api-overviewInvocaciones, usuarios, tasa de error, duración promedio
api-endpointsEndpoints más usados por número de invocaciones
api-timeseriesActividad diaria de API

Builder

dashboardsListar layouts de dashboards guardados que aparecen en la navegación lateral
dashboard:createCrear un dashboard personalizado, incluido el widget Meta paidPerformance solo para Editores y Administradores
dashboard:deleteEliminar un layout de dashboard personalizado
reportsListar plantillas de reporte guardadas
report:createCrear una plantilla de reporte, incluida la sección paidMedia solo para Editores y Administradores
report:previewPrevisualizar un reporte con entrega de Meta en vivo cuando paidMedia está habilitado
report:deleteEliminar una plantilla de reporte

Pulse AI

pulse askPregúntale lo que sea a Pulse, incluidos los recorridos de visitantes detrás de conversiones recientes
pulse threadsListar tus conversaciones de Pulse guardadas para un sitio
adsGasto y clics de enlace de Meta comparados con tráfico de campaña compatible registrado
ads:syncTraer ahora el gasto de las cuentas publicitarias conectadas
conversionsRegistros de CRM que llevan uno de nuestros IDs de clic, con los recuentos de asociados, no asociados y pendientes de envío (--won solo para las cerradas)
crmCRM conectados a un sitio y el estado de su sincronización
crm:syncObtener las conversiones del CRM ahora en lugar de esperar a la próxima sincronización programada (--full para releerlo todo)
pulse threadReproducir una conversación de Pulse como transcripción
pulse thread-deleteEliminar una conversación de Pulse
pulse insightsAnomalías, tendencias, hitos y cambios en campañas, canales, geografía, conversiones y participación
pulse healthPuntuación de salud del producto (0-100, nota A-F)
pulse briefingBriefing diario/semanal (-p/--period daily|weekly)
pulse forecastPronóstico de tráfico (-m/--metric, -d/--days)
pulse compareComparar dos períodos (-r/--range, --from2, --to2)
pulse alertsListar reglas de alerta de monitoreo
pulse alerts:createCrear alerta (-t/--type, -n/--name, -c/--condition)
pulse alerts:deleteEliminar una alerta (-i/--id)
pulse notificationsNotificaciones recientes (--unread solo para no leídas)

Posicionamiento en búsqueda y visibilidad IA

brand-report <domain>Generar reporte de posicionamiento en búsqueda (-q/--queries)
brand-config <domain>Ver/actualizar configuración de monitoreo de marca
brand-compare <domain>Comparar posicionamiento con competidores (-q, -c)
brand-alerts <domain>Gestionar alertas de posicionamiento (-a list|create|delete)
ai-mentions <domain>Menciones de marca por chatbots de IA (-q/--queries, -p/--providers)
backlinks <domain>Perfil de backlinks: rango del dominio, dominios referentes

Los escaneos externos de pago aceptan de 1 a 10 consultas por solicitud. La comparación competitiva acepta hasta 10 competidores.

Conversion Goals

goals -s <siteId> [--include-bots]List human conversion goals, stable converters, rates, and momentum
goal:show -s <siteId> -g <goalId> [--include-bots]Compare current/prior evolution, first-touch acquisition, exposed-visitor efficiency, and momentum
goal:create -s <siteId> -n <name>Create a conversion goal (pageview URL, custom event, outbound link, or download)
goal:delete -s <siteId> -g <goalId>Delete a conversion goal
goals:suggest -s <siteId> [--include-bots]Analyze human traffic and suggest high-value conversion targets with rationales

Gestión de sitios

sites listListar todos los sitios
sites add <domain>Agregar un nuevo sitio (-n/--name para nombre de visualización)
sites remove <siteId>Eliminar un sitio
sites info <siteId>Mostrar detalles del sitio y código de rastreo
sites update <siteId> --currency <code>Establecer la moneda de visualización (código ISO 4217, CAD por defecto)
install <siteId>Obtener código de rastreo para un sitio

Gestión de equipo

members list -s <siteId>Listar miembros del sitio
members add <email>Agregar un miembro (-s, -r viewer|editor|admin, --all-sites)
members remove <id>Eliminar un miembro (-s)
members update-role <id>Actualizar rol de miembro (-s, -r)

Facturación

billingMostrar plan actual, uso e información de facturación (--json)

Opciones

-s, --siterequerido
string
ID del sitio (dominio)
-r, --range
string
Rango de fechas: today, 7d, 30d, 90d, 12m. Cada preajuste incluye exactamente el número indicado de días naturales. Por defecto: 30d
-l, --limit
number
Máximo de resultados. Por defecto: 10
--json
flag
Salida JSON sin procesar en lugar de gráficos y tablas visuales