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.
1. Préparer la clé API et la feuille de calcul
- Dans NowMetrix, ouvrez Paramètres → API et créez une clé distincte nommée Google Sheets.
- Copiez la clé complète lorsqu’elle s’affiche. Elle ne pourra plus être affichée ultérieurement.
- Notez l’identifiant du tracker du site à exporter.
- Créez une feuille Google Sheets, par exemple NowMetrix Export.
- 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 :
- Ouvrez Paramètres du projet à l’aide de l’icône en forme d’engrenage.
- Dans Propriétés du script, sélectionnez Ajouter une propriété de script.
- 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 |
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
- Nommez le projet NowMetrix Google Sheets Export dans l’angle supérieur gauche.
- Enregistrez le projet Apps Script à l’aide de l’icône de disquette ou du raccourci clavier.
- Sélectionnez
syncNowMetrixDailydans le menu des fonctions de la barre d’outils de l’éditeur. - Sélectionnez Exécuter à côté du menu des fonctions.
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.
- Confirmez que vous avez créé le projet Apps Script et que l’adresse e-mail du développeur est la vôtre.
- Sélectionnez Paramètres avancés sur l’écran d’avertissement.
- Accédez à votre projet nommé. Google peut signaler ce lien comme non sûr, car le projet privé n’est pas vérifié.
- 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. |
@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
- Créez ou ouvrez un rapport dans Looker Studio.
- Sélectionnez Ajouter des données → Google Sheets.
- Sélectionnez la feuille de calcul et la feuille Daily.
- Utilisez la première ligne comme en-têtes et connectez la source de données.
- Vérifiez que
dateest une date et quepageviewsetvisitssont 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 |
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
@OnlyCurrentDocdans 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.
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. |