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.
npm install @bettermeter/nodeimport { 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());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.
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 -r/--range et --json, et toutes sauf all-sites acceptent aussi -s/--site — celle-ci porte sur tout le compte et ne prend aucun site. -l/--limit ne s'applique qu'aux commandes qui renvoient une liste classée.
npm install -g bettermeter
bettermeter login -t <apiKey> -u https://bettermeter.comFormats 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 programmatiqueLa 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
# 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 bordlogoutSupprimer les identifiants enregistréswhoamiAfficher 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)Portefeuille de sites
all-sites [-r <range>] [--json]Le trafic de tous les sites auxquels vous avez accès, côte à côte : visiteurs, pages vues, sessions et événements personnalisés par site, la variation du nombre de visiteurs d'une période à l'autre pour chaque site, et les totaux du compte. Ne prend pas -s/--siteAnalytique 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, sessions, session-stats, channels, goals, goal:show ou goals:suggest pour les inclure.
-l/--limit est accepté par les commandes qui renvoient une liste classée : pages, sources, bots, countries, browsers, visitors, sessions, events, campaigns, conversions, keywords, campaign:visitors, export, cli-commands, mcp-tools, mcp-clients et api-endpoints. Il n'a pas de valeur par défaut propre : si vous l'omettez, la commande renvoie la page par défaut du point de terminaison, qui varie selon le jeu de données — aujourd'hui visitors renvoie 50 lignes là où pages en renvoie 10 — et le drapeau sert à demander un nombre précis. Les commandes de synthèse, de tendance et de détail ne l'acceptent pas — stats, ai-traffic, timeseries, devices, channels, marketing, ads, campaign, event, ainsi que les commandes overview et timeseries de cli, mcp et api. Sur sources --filter et bots --category, la limite est appliquée avant le filtre : un résultat filtré peut donc contenir moins de lignes que la limite.
statsAperçu : visiteurs, pages vues, sessions + % de variation, ou nouvel état de référence si la période précédente est videpagesPages les plus visitées par nombre de visiteurssourcesSources de trafic (--filter all|ai|traditional)ai-trafficRépartition des référencements IA par plateformebotsTrafic robots/crawlers (--category all|ai-crawler|search|monitoring|scraper)timeseriesTendance quotidienne visiteurs/pages vuescountriesVisiteurs par paysdevicesRépartition par appareilbrowsersRépartition par navigateurvisitorsPersonnes avec leur source d'événement (web / CLI / MCP / API / bot) et son détail, ainsi que première source, campagne, visites répétées et cycle de viesessionsChaque session avec durée, pages, événements, parcours de l'entrée à la sortie, niveau d'engagement et rebond, sous les totaux de la périodevisitor <visitorId>Profil d'une personne, première interaction, sessions et chronologievisitor:update <visitorId>Définir un identifiant opaque, un nom d'affichage ou le statut visiteur/clientvisitor:properties <visitorId>Lister les propriétés clé/valeur stockées sur un visiteurvisitor:tag <visitorId>Définir ou supprimer des propriétés clé/valeur arbitraires sur un visiteurvisitor:findTrouver un visiteur par e-mail, identifiant de contact CRM ou paire clé/valeur exacteeventsÉvénements personnalisés avec compteursevent <name>Un événement personnalisé en détail : déclenchements totaux, visiteurs uniques, répartition des valeurs de propriétés, déclenchements récentscampaignsAttribution 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 ensuitekeywordsMots-clés générant du trafic (utm_term, avec qualité des visites)marketingRapport marketing complet : campagnes, pages d’atterrissage, mix de canauxscreenshot <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 moyennecli-commandsCommandes les plus utilisées par nombre d'invocationscli-timeseriesActivité CLI quotidienneAnalytique MCP
mcp-overviewInvocations, appelants, taux de succès, durée moyennemcp-toolsOutils MCP les plus utilisés par nombre d'invocationsmcp-clientsRépartition par client (Claude, Cursor, etc.)mcp-timeseriesActivité MCP quotidienneAnalytique API
api-overviewInvocations, appelants, taux d'erreur, durée moyenneapi-endpointsEndpoints les plus sollicités par nombre d'invocationsapi-timeseriesActivité API quotidienneBuilder
dashboardsLister les mises en page de dashboards enregistrées affichées dans la navigation latéraledashboard:createCréer un dashboard personnalisé, y compris le widget Meta paidPerformance réservé aux Éditeurs et Administrateursdashboard:update -i <id>Modifier une mise en page de dashboard personnalisée (seuls les indicateurs passés changent)dashboard:deleteSupprimer une mise en page de dashboard personnaliséereportsLister les modèles de rapport enregistrésreport:createCréer un modèle de rapport, y compris la section paidMedia réservée aux Éditeurs et Administrateursreport:previewPrévisualiser un rapport avec la diffusion Meta en direct lorsque paidMedia est activéreport:update -i <id>Modifier un modèle de rapport (seuls les indicateurs passés changent)report:deleteSupprimer un modèle de rapportPulse AI
pulse askPosez toute question à Pulse, y compris les parcours liés aux visiteurs derrière les conversions récentespulse threadsLister vos discussions Pulse enregistrées pour un siteadsDépenses et clics de lien Meta comparés au trafic de campagne compatible suiviad-creativeLa publicité à l'origine d'une visite, ou toutes les publicités d'une campagne ; --utm-content identifie une création exacteads:syncRécupérer maintenant les dépenses des comptes publicitaires connectésconversionsFiches 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)ad-connections -s <siteId>Comptes publicitaires connectés à un site et état de leur synchronisationcrmCRM connectés à un site et état de leur synchronisationcrm:syncRécupérer les conversions CRM maintenant plutôt qu'à la prochaine synchronisation planifiée (--full pour tout relire)slackCanaux Slack reliés aux alertes Pulse de ce site, avec l'état des envoisslack:connectConnecter un webhook entrant Slack ; un message de test est publié avant l'enregistrementslack:testPublier maintenant dans un canal connecté, pour prouver que le webhook fonctionne toujoursslack:updateActiver, désactiver, renommer ou changer le seuil d'un canal connectéslack:removeDéconnecter un canal Slack ; les alertes déjà enregistrées sont conservéespulse threadRejouer une discussion Pulse sous forme de transcriptionpulse thread-deleteSupprimer une discussion Pulsepulse insightsAnomalies, tendances, jalons et variations de campagnes, canaux, géographie, conversions et engagementpulse 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 surveillancepulse 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 marquebrand-compare <domain>Comparer les classements avec les concurrents (-q, -c)brand-alerts <domain>Gérer les alertes de classement (-a list|create|delete|enable|disable)ai-mentions <domain>Mentions de marque par chatbots IA (-q/--queries, -p/--providers)ai-mentions:history [domain]Analyses de mentions IA enregistrées, les plus récentes d'abord — lit l'historique, ne lance jamais d'analyse payantebacklinks <domain>Profil de backlinks : rang du domaine, domaines référentsLes scans externes payants acceptent 1 à 10 requêtes par demande. La comparaison concurrentielle accepte jusqu'à 10 concurrents.
Objectifs de conversion
goals -s <siteId> [--include-bots]Lister les objectifs de conversion humains, les visiteurs convertis stables, les taux et le momentumgoal:show -s <siteId> -g <goalId> [--include-bots]Comparer l'évolution actuelle et précédente, l'acquisition au premier contact, l'efficacité par visiteur exposé et le momentumgoal:create -s <siteId> -n <name>Créer un objectif de conversion (URL de page vue, événement personnalisé, lien sortant ou téléchargement)goal:update -s <siteId> -g <goalId>Modifier un objectif de conversion — renommer, recibler, revaloriser ou archivergoal:delete -s <siteId> -g <goalId>Supprimer un objectif de conversiongoals:suggest -s <siteId> [--include-bots]Analyser le trafic humain et suggérer des cibles de conversion à forte valeur, avec justificationGestion des sites
sites listLister tous les sitessites add <domain>Ajouter un nouveau site — connectez-vous au tableau de bord; une clé API ne peut pas créer de sitesites remove <siteId>Supprimer un site — connectez-vous au tableau de bord; une clé API ne peut pas supprimer de sitesites info <siteId>Afficher les détails du site et le code de suivisites 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 siteGestion de l'équipe
members list -s <siteId>Lister les membres du sitemembers add <email>Ajouter un membre (-s, -r viewer|editor|admin, --all-sites)members remove <id>Supprimer un membre (-s)invitation:cancel <id>Annuler une invitation en attente (-s), avant qu'elle soit acceptéemembers 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 sauf all-sites-r, --range-l, --limit--json