03

Suivi CLI

Suivez comment les développeurs utilisent votre outil CLI. Voyez quelles commandes sont populaires, combien de temps elles prennent et quelles erreurs surviennent -- sans collecter de données personnelles.

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,
});

Ce qui est suivi

Uniquement les noms de commandes et de drapeaux. Les valeurs des drapeaux, les arguments et les chemins de fichiers ne sont jamais envoyés. Le SDK capture le système d'exploitation et l'architecture pour les analyses d'environnement.

07

Référence CLI

Le CLI BetterMeter vous permet d'interroger les analyses depuis le terminal avec un affichage visuel élégant. Toutes les commandes acceptent -s/--site, -r/--range, -l/--limit et --json.

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

Formats de sortie

Par défaut, le CLI affiche un rendu visuel riche avec des graphiques ASCII, du texte coloré, des sparklines et des cartes de statistiques. Toute la sortie utilise des caractères Unicode compatibles avec tous les terminaux modernes. Les couleurs détectent automatiquement les capacités du terminal et respectent la variable d'environnement NO_COLOR.

Par défaut (visuel)Graphiques linéaires, barres horizontales, sparklines, tableaux stylisés avec couleurs
--jsonDonnées JSON brutes -- idéal pour le scripting, le piping vers jq ou l'utilisation programmatique

La sortie visuelle inclut :

  • Graphiques linéaires pour les données temporelles (visiteurs quotidiens, invocations)
  • Barres horizontales pour les listes classées (pages, sources, pays)
  • Sparklines intégrées aux statistiques d'ensemble pour une visualisation rapide des tendances
  • Cartes de statistiques avec indicateurs de variation colorés pour les vues d'ensemble
  • Tableaux stylisés avec bordures pour les données détaillées
Example: visual vs JSON
# Visual output (default)
bettermeter stats -s example.com

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

Authentification

login -t <key> -u <url>S'authentifier avec une clé API et l'URL du tableau de bord
logoutSupprimer les identifiants enregistrés
whoamiAfficher l'utilisateur actuellement authentifié

Temps réel

live -s <siteId> [--activity] [--cursor <cursor>] [--json]Nombre de visiteurs en direct; ajoutez --activity pour le fil récent d’événements humains et --cursor pour l’interrogation incrémentielle (--json pour la sortie brute)
live:screen -s <siteId> [--json]Affiche l’URL authentifiée Grand écran pour la visualisation rembobinable des visiteurs et sa chronologie d’activité de 30 minutes (--json pour une sortie structurée)

Analytique web

Les commandes de trafic humain excluent par défaut les robots connus, l’automatisation sans navigateur et les cohortes de scrapers détectées avec une forte confiance. Ajoutez --include-bots à stats, pages, sources, timeseries, ai-traffic, countries, devices, browsers ou channels pour les inclure.

statsAperçu : visiteurs, pages vues, sessions + % de variation, ou nouvel état de référence si la période précédente est vide
pagesPages les plus visitées par nombre de visiteurs
sourcesSources de trafic (--filter all|ai|traditional)
ai-trafficRépartition des référencements IA par plateforme
botsTrafic robots/crawlers (--category all|ai-crawler|search|monitoring|scraper)
timeseriesTendance quotidienne visiteurs/pages vues
countriesVisiteurs par pays
devicesRépartition par appareil
browsersRépartition par navigateur
visitorsPersonnes avec première source, campagne, visites répétées et cycle de vie
visitor <visitorId>Profil d'une personne, première interaction, sessions et chronologie
visitor:update <visitorId>Définir un identifiant opaque, un nom d'affichage ou le statut visiteur/client
visitor:properties <visitorId>Lister les propriétés clé/valeur stockées sur un visiteur
visitor:tag <visitorId>Définir ou supprimer des propriétés clé/valeur arbitraires sur un visiteur
eventsÉvénements personnalisés avec compteurs
campaignsAttribution automatique des URL de campagne (UTM + identifiants de clic)
campaign <name>Rapport détaillé de campagne (qualité, variantes, répartitions)
campaign:visitors <name>Toutes les personnes amenées par une campagne : qui a cliqué, la page d'arrivée, la variante, l'appareil, le pays et ce qu'elles ont fait ensuite
keywordsMots-clés générant du trafic (utm_term, avec qualité des visites)
marketingRapport marketing complet : campagnes, pages d’atterrissage, mix de canaux
screenshot <path>Capturer une page d’atterrissage et l’enregistrer comme image (--site, --output facultatif)
channelsRépartition par canal (Direct, Recherche payante, Organique, etc.)
exportRapport complet (--format json|csv|md)

Analytique CLI

cli-overviewInvocations, appelants, taux de succès, durée moyenne
cli-commandsCommandes les plus utilisées par nombre d'invocations
cli-timeseriesActivité CLI quotidienne

Analytique MCP

mcp-overviewInvocations, appelants, taux de succès, durée moyenne
mcp-toolsOutils MCP les plus utilisés par nombre d'invocations
mcp-clientsRépartition par client (Claude, Cursor, etc.)
mcp-timeseriesActivité MCP quotidienne

Analytique API

api-overviewInvocations, appelants, taux d'erreur, durée moyenne
api-endpointsEndpoints les plus sollicités par nombre d'invocations
api-timeseriesActivité API quotidienne

Builder

dashboardsLister les mises en page de dashboards enregistrées affichées dans la navigation latérale
dashboard:createCréer un dashboard personnalisé, y compris le widget Meta paidPerformance réservé aux Éditeurs et Administrateurs
dashboard:deleteSupprimer une mise en page de dashboard personnalisée
reportsLister les modèles de rapport enregistrés
report:createCréer un modèle de rapport, y compris la section paidMedia réservée aux Éditeurs et Administrateurs
report:previewPrévisualiser un rapport avec la diffusion Meta en direct lorsque paidMedia est activé
report:deleteSupprimer un modèle de rapport

Pulse AI

pulse askPosez toute question à Pulse, y compris les parcours liés aux visiteurs derrière les conversions récentes
pulse threadsLister vos discussions Pulse enregistrées pour un site
adsDépenses et clics de lien Meta comparés au trafic de campagne compatible suivi
ads:syncRécupérer maintenant les dépenses des comptes publicitaires connectés
conversionsFiches CRM portant l'un de nos identifiants de clic, avec les compteurs associés, non associés et en attente d'envoi (--won pour les conclues seulement)
crmCRM connectés à un site et état de leur synchronisation
crm:syncRécupérer les conversions CRM maintenant plutôt qu'à la prochaine synchronisation planifiée (--full pour tout relire)
pulse threadRejouer une discussion Pulse sous forme de transcription
pulse thread-deleteSupprimer une discussion Pulse
pulse insightsAnomalies, tendances, jalons et variations de campagnes, canaux, géographie, conversions et engagement
pulse healthScore de santé produit (0-100, note A-F)
pulse briefingBriefing quotidien/hebdomadaire (-p/--period daily|weekly)
pulse forecastPrévision de trafic (-m/--metric, -d/--days)
pulse compareComparer deux périodes (-r/--range, --from2, --to2)
pulse alertsLister les règles d'alerte de surveillance
pulse alerts:createCréer une alerte (-t/--type, -n/--name, -c/--condition)
pulse alerts:deleteSupprimer une alerte (-i/--id)
pulse notificationsNotifications récentes (--unread pour les non lues uniquement)

Classements de recherche et visibilité IA

brand-report <domain>Générer un rapport de classements de recherche (-q/--queries)
brand-config <domain>Voir/mettre à jour la configuration de surveillance de marque
brand-compare <domain>Comparer les classements avec les concurrents (-q, -c)
brand-alerts <domain>Gérer les alertes de classement (-a list|create|delete)
ai-mentions <domain>Mentions de marque par chatbots IA (-q/--queries, -p/--providers)
backlinks <domain>Profil de backlinks : rang du domaine, domaines référents

Les scans externes payants acceptent 1 à 10 requêtes par demande. La comparaison concurrentielle accepte jusqu'à 10 concurrents.

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

Gestion des sites

sites listLister tous les sites
sites add <domain>Ajouter un nouveau site (-n/--name pour le nom d'affichage)
sites remove <siteId>Supprimer un site
sites info <siteId>Afficher les détails du site et le code de suivi
sites update <siteId> --currency <code>Définir la devise d’affichage (code ISO 4217, CAD par défaut)
install <siteId>Obtenir le code de suivi pour un site

Gestion de l'équipe

members list -s <siteId>Lister les membres du site
members add <email>Ajouter un membre (-s, -r viewer|editor|admin, --all-sites)
members remove <id>Supprimer un membre (-s)
members update-role <id>Mettre à jour le rôle d'un membre (-s, -r)

Facturation

billingAfficher le forfait actuel, l'utilisation et les informations de facturation (--json)

Options

-s, --siterequis
string
Identifiant du site (domaine)
-r, --range
string
Plage de dates : today, 7d, 30d, 90d, 12m. Chaque préréglage comprend exactement le nombre de jours civils indiqué. Par défaut : 30d
-l, --limit
number
Nombre maximum de résultats. Par défaut : 10
--json
flag
Sortie JSON brute au lieu des graphiques et tableaux visuels