Exportation · Google Sheets

Conserver les indicateurs NowMetrix dans Google Sheets

Utilisez Google Apps Script pour récupérer quotidiennement les données NowMetrix en toute sécurité, actualiser la feuille selon une planification et les rendre disponibles pour des calculs, un partage ou des rapports Looker Studio.

Fonctionnement de la connexion

La feuille de calcul sert de petite passerelle de données contrôlée par le client :

NowMetrix REST API → Google Apps Script → Google Sheet → optional Looker Studio report

Les données ne sont pas importées dans Google Analytics. Apps Script interroge l’endpoint NowMetrix sélectionné avec votre clé API et écrit les lignes renvoyées dans la feuille de calcul. Looker Studio peut ensuite utiliser cette feuille comme source de données distincte.

Cette configuration convient aux rapports horaires ou quotidiens. Google Sheets et Looker Studio mettent les données en cache : utilisez le tableau de bord NowMetrix pour suivre l’actualité seconde par seconde.

1. Préparer la clé API et la feuille de calcul

  1. Dans NowMetrix, ouvrez Paramètres → API et créez une clé distincte nommée Google Sheets.
  2. Copiez la clé complète lorsqu’elle s’affiche. Elle ne pourra plus être affichée ultérieurement.
  3. Notez l’identifiant du tracker du site à exporter.
  4. Créez une feuille Google Sheets, par exemple NowMetrix Export.
  5. Définissez le fuseau horaire de la feuille sur celui du tracker NowMetrix.

L’exemple ci-dessous exporte les 30 dernières lignes quotidiennes depuis /v1/overview. Chaque ligne contient la date, le tracker, son fuseau horaire, le nombre de pages vues et le nombre de visites.

2. Enregistrer la clé API dans les propriétés du script

Dans Google Sheets, sélectionnez Extensions → Apps Script. Ensuite :

  1. Ouvrez Paramètres du projet à l’aide de l’icône en forme d’engrenage.
  2. Dans Propriétés du script, sélectionnez Ajouter une propriété de script.
  3. Ajoutez les deux propriétés suivantes :
Propriété Valeur
NOWMETRIX_API_KEY Votre clé commençant par nm_
NOWMETRIX_TRACKER_ID L’identifiant du tracker à exporter
Ne placez jamais la clé API dans une cellule, un paramètre de rapport, le code source du script, une URL ou un message de journalisation. Les propriétés du script la tiennent à l’écart de la feuille, mais les personnes disposant d’un accès en modification au projet Apps Script doivent tout de même être dignes de confiance.

3. Ajouter le script d’exportation

Remplacez le contenu de Code.gs par ce script. Il vérifie la configuration, limite l’accès au tableur actuel, gère les erreurs de l’API et ne remplace la feuille qu’après une réponse valide.

/**
 * @OnlyCurrentDoc
 */

const NOWMETRIX_BASE_URL = 'https://api.nowmetrix.com';

function fetchNowMetrix(path) {
  const properties = PropertiesService.getScriptProperties();
  const apiKey = properties.getProperty('NOWMETRIX_API_KEY');
  const trackerId = properties.getProperty('NOWMETRIX_TRACKER_ID');

  if (!apiKey || !trackerId) {
    throw new Error('NOWMETRIX_API_KEY or NOWMETRIX_TRACKER_ID is missing.');
  }

  const separator = path.includes('?') ? '&' : '?';
  const url = NOWMETRIX_BASE_URL
    + path
    + separator
    + 'site=' + encodeURIComponent(trackerId);

  const response = UrlFetchApp.fetch(url, {
    method: 'get',
    headers: {
      Authorization: 'Bearer ' + apiKey,
      Accept: 'application/json'
    },
    muteHttpExceptions: true
  });

  const status = response.getResponseCode();
  const body = response.getContentText();

  if (status < 200 || status >= 300) {
    throw new Error('NowMetrix API returned HTTP ' + status + ': ' + body);
  }

  return JSON.parse(body);
}

function toSheetDate(value) {
  const parts = value.split('-').map(Number);
  return new Date(parts[0], parts[1] - 1, parts[2]);
}

function syncNowMetrixDaily() {
  const result = fetchNowMetrix('/v1/overview?days=30');
  const rows = result.daily.map(day => [
    toSheetDate(day.date),
    result.site,
    result.timezone,
    day.pageviews,
    day.visits
  ]);

  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = spreadsheet.getSheetByName('Daily')
    || spreadsheet.insertSheet('Daily');
  const values = [
    ['date', 'tracker', 'timezone', 'pageviews', 'visits'],
    ...rows
  ];

  sheet.clearContents();
  sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
  sheet.setFrozenRows(1);
  sheet.getRange(1, 1, 1, values[0].length).setFontWeight('bold');

  if (rows.length > 0) {
    sheet.getRange(2, 1, rows.length, 1).setNumberFormat('yyyy-mm-dd');
    sheet.getRange(2, 4, rows.length, 2).setNumberFormat('#,##0');
  }

  sheet.autoResizeColumns(1, values[0].length);
}

Ne remplacez pas NOWMETRIX_API_KEY par la clé réelle dans le code source. Le script la lit dans les propriétés du script lors de son exécution. Conservez @OnlyCurrentDoc en haut du fichier : cette instruction indique à Google de demander l’accès à cette feuille plutôt qu’à toutes les feuilles de votre compte.

4. Enregistrer et exécuter le script une fois

  1. Nommez le projet NowMetrix Google Sheets Export dans l’angle supérieur gauche.
  2. Enregistrez le projet Apps Script à l’aide de l’icône de disquette ou du raccourci clavier.
  3. Sélectionnez syncNowMetrixDaily dans le menu des fonctions de la barre d’outils de l’éditeur.
  4. Sélectionnez Exécuter à côté du menu des fonctions.
Ne sélectionnez pas Déployer. Cette exportation n’est ni une application web, ni une API exécutable, ni un module complémentaire, ni une bibliothèque, et ne nécessite aucun déploiement. Exécutez directement la fonction dans l’éditeur.

5. Autoriser votre propre projet Apps Script

Google demande une autorisation lors de la première exécution du script. Sélectionnez Examiner les autorisations et choisissez le compte Google auquel appartient la feuille de calcul.

Un avertissement tel que Google n’a pas vérifié cette application est attendu pour un projet Apps Script privé créé par vos soins. L’adresse e-mail du développeur affichée par Google doit être celle de votre compte Google. Le projet n’est pas une application Google de NowMetrix et n’autorise pas NowMetrix à accéder à votre compte Google.

  1. Confirmez que vous avez créé le projet Apps Script et que l’adresse e-mail du développeur est la vôtre.
  2. Sélectionnez Paramètres avancés sur l’écran d’avertissement.
  3. Accédez à votre projet nommé. Google peut signaler ce lien comme non sûr, car le projet privé n’est pas vérifié.
  4. Examinez les autorisations demandées et sélectionnez Autoriser ou Continuer.
Autorisation Utilité
Accès à la feuille de calcul actuelle Créer ou mettre à jour la feuille Daily dans ce Google Sheet.
Connexion à un service externe Envoyer une requête HTTPS à https://api.nowmetrix.com.
Arrêtez-vous si l’adresse e-mail du développeur n’est pas la vôtre, si vous n’avez pas créé le projet ou si le code diffère de l’exemple. Si Google demande l’accès à toutes vos feuilles de calcul, annulez, vérifiez que @OnlyCurrentDoc se trouve tout en haut de Code.gs, enregistrez le fichier et exécutez à nouveau la fonction.

Si vous avez déjà autorisé un accès plus large aux feuilles de calcul, supprimez le projet dans Compte Google → Sécurité → Connexions aux applications et services tiers, puis exécutez à nouveau le script enregistré afin de demander des autorisations plus limitées.

Google décrit ce processus d’autorisation et la restriction @OnlyCurrentDoc dans son guide d’autorisation Apps Script.

6. Vérifier la première exportation

Après l’autorisation, Apps Script poursuit l’exécution. Attendez le message Exécution terminée dans le journal d’exécution, revenez à la feuille de calcul et ouvrez la nouvelle feuille Daily. Le résultat devrait ressembler à ceci :

date tracker timezone pageviews visits
2026-08-22 TRACKER_ID Europe/Zurich 81,240 53,210
2026-08-23 TRACKER_ID Europe/Zurich 77,480 50,195

7. Planifier les mises à jour automatiques

Dans Apps Script, ouvrez Déclencheurs à l’aide de l’icône en forme d’horloge et ajoutez un déclencheur :

Fonction syncNowMetrixDaily
Déploiement Version actuelle
Source de l’événement Selon le temps
Fréquence Toutes les heures, ou moins souvent pour un rapport quotidien

Le déclencheur s’exécute avec le compte Google qui l’a créé. Gardez ce compte actif et consultez les notifications d’échec d’Apps Script. Évitez les requêtes inutilement fréquentes : l’API publique NowMetrix autorise actuellement 20 requêtes par minute et par tracker, toutes clés et tous utilisateurs confondus.

L’exemple remplace la table glissante de 30 jours à chaque exécution réussie. Cela évite les dates en double et conserve une feuille compacte.

8. Utiliser la feuille dans Looker Studio

  1. Créez ou ouvrez un rapport dans Looker Studio.
  2. Sélectionnez Ajouter des données → Google Sheets.
  3. Sélectionnez la feuille de calcul et la feuille Daily.
  4. Utilisez la première ligne comme en-têtes et connectez la source de données.
  5. Vérifiez que date est une date et que pageviews et visits sont des indicateurs numériques.

Vous pouvez désormais créer des graphiques chronologiques, des cartes de score, des tableaux et des champs calculés tels que pageviews / visits. Looker Studio lit ces données comme une source distincte : elles ne sont pas converties en événements Google Analytics.

Google décrit les autres paramètres de rapport dans son guide du connecteur Google Sheets.

Exporter d’autres données NowMetrix

Cas d’usage Exemple d’endpoint Comportement recommandé pour la feuille
Pages vues et visites quotidiennes /v1/overview?days=30 Remplacer ou mettre à jour les lignes par tracker et par date
Pages principales d’hier /v1/recap?preset=yesterday&limit=100 Ajouter une fois par jour ou remplacer le résultat actuel
Instantané actuel des données en direct /v1/realtime Ajouter l’horodatage de la réponse pour établir une tendance
Sources de trafic actuelles /v1/sources Ajouter l’horodatage de la réponse ou remplacer l’instantané actuel
Un Recap tel que preset=last30 contient les totaux de l’ensemble de la période glissante. Ne les ajoutez pas chaque jour. Pour obtenir un historique cumulable des articles, exportez une période terminée telle que yesterday et enregistrez la période avec chaque ligne.

Liste de contrôle pour la sécurité et le partage

  • Utilisez une clé API NowMetrix distincte pour l’exportation et accordez uniquement l’accès aux trackers nécessaires.
  • Stockez la clé uniquement dans les propriétés du script ou dans un autre gestionnaire de secrets côté serveur.
  • Conservez @OnlyCurrentDoc dans le script afin de limiter l’accès de Google Sheets à ce document.
  • N’incluez jamais la clé dans des cellules, des formules, des paramètres de rapport, des URL, des captures d’écran ou des journaux.
  • Limitez l’accès en modification au projet Apps Script. Les éditeurs doivent être considérés comme des utilisateurs de confiance.
  • N’autorisez le script que lorsque Google affiche votre propre compte comme développeur.
  • Utilisez une feuille de calcul distincte, appartenant au client, pour chaque compte NowMetrix.
  • Vérifiez les paramètres de partage de Google Sheets et de Looker Studio avant de publier un rapport.
  • Révoquez immédiatement la clé API si la feuille, le script ou le compte Google est susceptible d’avoir été compromis.
L’accès à l’API suit les trackers autorisés pour l’utilisateur NowMetrix. La suppression de cet accès ou la révocation de la clé arrête les exportations futures, mais ne supprime pas les données déjà copiées dans Google.

Résolution des problèmes

Problème Vérification à effectuer
HTTP 401 La clé API est absente, incomplète, invalide ou révoquée.
HTTP 403 La clé API n’a pas accès au tracker configuré.
HTTP 429 La limite de requêtes de l’API pour ce tracker a été dépassée. Réduisez la fréquence du déclencheur.
HTTP 503 Le système d’analyse est temporairement indisponible. Conservez les données existantes de la feuille et réessayez ultérieurement.
Aucune feuille Daily Exécutez manuellement syncNowMetrixDaily et examinez les détails de l’exécution Apps Script.
Google indique que l’application n’est pas vérifiée C’est normal pour votre script privé. Continuez uniquement si vous avez créé le projet et que Google affiche votre propre adresse e-mail de développeur.
Google demande l’accès à toutes les feuilles de calcul Annulez, ajoutez @OnlyCurrentDoc en haut de Code.gs, enregistrez le fichier et exécutez à nouveau la fonction.
Les dates semblent incorrectes Alignez le fuseau horaire de Google Sheets sur celui du tracker renvoyé par l’API.