Exporteren · Google Sheets

Houd uw NowMetrix-statistieken bij in Google Sheets

Gebruik Google Apps Script om dagelijkse NowMetrix-gegevens veilig op te halen, het spreadsheet volgens een schema te vernieuwen en beschikbaar te maken voor berekeningen, delen of rapporten in Looker Studio.

Zo werkt de koppeling

Het spreadsheet fungeert als een kleine gegevensbrug die u zelf beheert:

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

De gegevens worden niet geïmporteerd in Google Analytics. Apps Script vraagt het geselecteerde NowMetrix- endpoint op met uw API-sleutel en schrijft de geretourneerde rijen naar het spreadsheet. Looker Studio kan dat werkblad vervolgens als afzonderlijke gegevensbron gebruiken.

Deze opzet is geschikt voor rapportages per uur of per dag. Google Sheets en Looker Studio cachen gegevens. Gebruik daarom het NowMetrix-dashboard voor monitoring van de newsroom per seconde.

1. Bereid de API-sleutel en het spreadsheet voor

  1. Open in NowMetrix Instellingen → API en maak een aparte sleutel aan met het label Google Sheets.
  2. Kopieer de volledige sleutel zodra deze wordt weergegeven. Later kunt u deze niet opnieuw bekijken.
  3. Noteer de tracker-ID van de website die u wilt exporteren.
  4. Maak een nieuw Google Sheet, bijvoorbeeld NowMetrix Export.
  5. Stel de tijdzone van het spreadsheet in op dezelfde tijdzone als die van de NowMetrix-tracker.

Het onderstaande voorbeeld exporteert de laatste 30 dagelijkse rijen uit /v1/overview. Elke rij bevat de datum, tracker, tijdzone van de tracker, Pageviews en bezoeken.

2. Sla de API-sleutel op in Script Properties

Selecteer in het Google Sheet Extensies → Apps Script. Vervolgens:

  1. Open Projectinstellingen via het tandwielpictogram.
  2. Selecteer onder Script Properties de optie Add script property.
  3. Voeg de volgende twee eigenschappen toe:
Eigenschap Waarde
NOWMETRIX_API_KEY Uw sleutel, die begint met nm_
NOWMETRIX_TRACKER_ID De tracker-ID die u wilt exporteren
Plaats de API-sleutel nooit in een cel van het spreadsheet, een rapportparameter, de broncode van het script, een URL of een logbericht. Script Properties houden de sleutel buiten het werkblad, maar personen met bewerkingsrechten voor het Apps Script-project moeten nog steeds worden vertrouwd.

3. Voeg het exportscript toe

Vervang de inhoud van Code.gs door dit script. Het controleert de configuratie, beperkt de toegang tot spreadsheets tot het huidige document, handelt API-fouten af en vervangt het werkblad alleen na een geslaagd antwoord.

/**
 * @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);
}

Vervang NOWMETRIX_API_KEY niet door de werkelijke sleutel in de broncode. Het script leest deze tijdens runtime uit Script Properties. Laat @OnlyCurrentDoc bovenaan staan: hiermee vraagt Google toegang tot dit spreadsheet aan in plaats van tot alle spreadsheets in uw account.

4. Sla het script op en voer het één keer uit

  1. Geef het project in de linkerbovenhoek de naam NowMetrix Google Sheets Export.
  2. Sla het Apps Script-project op via het diskettepictogram of de sneltoets.
  3. Selecteer syncNowMetrixDaily in het functiemenu op de werkbalk van de editor.
  4. Selecteer Run naast het functiemenu.
Selecteer Deploy niet. Deze export is geen webapp, uitvoerbare API, add-on of bibliotheek en hoeft niet te worden geïmplementeerd. Voer de functie rechtstreeks uit in de editor.

5. Autoriseer uw eigen Apps Script-project

Google vraagt de eerste keer dat het script wordt uitgevoerd om toestemming. Selecteer Review permissions en kies het Google-account dat eigenaar is van het spreadsheet.

Een waarschuwing zoals Google hasn't verified this app is normaal bij een privé Apps Script-project dat u zelf hebt gemaakt. Het e-mailadres van de ontwikkelaar dat Google toont, moet uw eigen Google-account zijn. Het project is geen Google-app van NowMetrix en geeft NowMetrix geen toegang tot uw Google-account.

  1. Bevestig dat u het Apps Script-project hebt gemaakt en dat het e-mailadres van de ontwikkelaar van u is.
  2. Selecteer Advanced op het waarschuwingsscherm.
  3. Ga door naar uw project met de opgegeven naam. Google kan deze link als onveilig aanduiden omdat het privéproject niet is geverifieerd.
  4. Controleer de gevraagde rechten en selecteer Allow of Continue.
Recht Waarom dit nodig is
Toegang tot het huidige spreadsheet Het werkblad Daily in dit Google Sheet maken of bijwerken.
Verbinding maken met een externe service Een HTTPS-verzoek naar https://api.nowmetrix.com verzenden.
Stop als het e-mailadres van de ontwikkelaar niet van u is, als u het project niet hebt gemaakt of als de code afwijkt van het voorbeeld. Als Google toegang vraagt tot alle uw spreadsheets, annuleer dan, controleer of @OnlyCurrentDoc helemaal bovenaan Code.gs staat, sla het bestand op en voer de functie opnieuw uit.

Als u al bredere toegang tot spreadsheets hebt goedgekeurd, verwijder het project dan via Google Account → Security → Connections to third-party apps and services. Voer het opgeslagen script daarna opnieuw uit om de beperkte rechten aan te vragen.

Google beschrijft deze autorisatiestroom en de beperking van @OnlyCurrentDoc in de handleiding voor Apps Script-autorisatie.

6. Controleer de eerste export

Na de autorisatie gaat Apps Script verder met de uitvoering. Wacht in het uitvoeringslogboek op Execution completed, ga terug naar het spreadsheet en open het nieuwe werkblad Daily. Het resultaat moet er ongeveer zo uitzien:

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. Plan automatische updates

Open in Apps Script via het klokpictogram Triggers en voeg een trigger toe:

Functie syncNowMetrixDaily
Implementatie Head
Gebeurtenisbron Time-driven
Frequentie Elk uur, of minder vaak voor een dagelijks rapport

De trigger wordt uitgevoerd onder het Google-account waarmee deze is gemaakt. Houd dat account actief en controleer meldingen over fouten in Apps Script. Vermijd onnodig frequente verzoeken: de openbare NowMetrix API staat momenteel 20 verzoeken per minuut per tracker toe, gedeeld over sleutels en gebruikers.

Het voorbeeld vervangt de tabel met de meest recente 30 dagen bij elke geslaagde uitvoering. Zo voorkomt u dubbele datums en blijft het spreadsheet compact.

8. Gebruik het werkblad in Looker Studio

  1. Maak een rapport in Looker Studio of open een bestaand rapport.
  2. Selecteer Add data → Google Sheets.
  3. Selecteer het spreadsheet en het werkblad Daily.
  4. Gebruik de eerste rij als kopteksten en verbind de gegevensbron.
  5. Controleer of date een datum is en pageviews en visits numerieke statistieken zijn.

U kunt nu tijdreeksgrafieken, scorecards, tabellen en berekende velden maken, zoals pageviews / visits. Looker Studio leest dit als een afzonderlijke gegevensbron; de waarden van NowMetrix worden niet omgezet in Google Analytics-gebeurtenissen.

Google beschrijft de overige rapportinstellingen in de handleiding voor de Google Sheets-connector.

Andere NowMetrix-gegevens exporteren

Toepassing Voorbeeld van endpoint Aanbevolen gedrag voor het werkblad
Dagelijkse Pageviews en bezoeken /v1/overview?days=30 Rijen per tracker en datum vervangen of bijwerken
Toppagina’s van gisteren /v1/recap?preset=yesterday&limit=100 Eenmaal per dag toevoegen of het huidige resultaat vervangen
Huidige live momentopname /v1/realtime De tijdstempel van het antwoord toevoegen bij het opbouwen van een trend
Huidige verkeersbronnen /v1/sources De tijdstempel van het antwoord toevoegen of de huidige momentopname vervangen
Een Recap zoals preset=last30 bevat totalen voor de volledige voortschrijdende periode. Voeg deze waarden niet elke dag toe. Exporteer voor een optelbare artikelgeschiedenis een afgeronde periode, zoals yesterday, en sla de periode bij elke rij op.

Checklist voor beveiliging en delen

  • Gebruik een afzonderlijke NowMetrix API-sleutel voor de export en geef alleen toegang tot de benodigde tracker.
  • Sla de sleutel uitsluitend op in Script Properties of een andere server-side opslag voor geheime waarden.
  • Laat @OnlyCurrentDoc in het script staan om de toegang tot Google Sheets tot dit document te beperken.
  • Neem de sleutel nooit op in cellen, formules, rapportparameters, URL’s, schermafbeeldingen of logboeken.
  • Beperk de bewerkingsrechten voor het Apps Script-project. Beschouw editors als vertrouwde gebruikers.
  • Autoriseer het script alleen als Google uw eigen account als ontwikkelaar toont.
  • Gebruik voor elk NowMetrix-account een afzonderlijk spreadsheet dat eigendom is van de klant.
  • Controleer de instellingen voor delen van zowel Google Sheets als Looker Studio voordat u een rapport publiceert.
  • Herroep de API-sleutel onmiddellijk als het spreadsheet, het script of het Google-account mogelijk is gehackt.
API-toegang volgt de trackers waarvoor de NowMetrix-gebruiker rechten heeft. Als u deze toegang verwijdert of de sleutel intrekt, worden toekomstige exports gestopt, maar gegevens die al naar Google zijn gekopieerd, worden niet verwijderd.

Problemen oplossen

Probleem Wat u moet controleren
HTTP 401 De API-sleutel ontbreekt, is onvolledig, ongeldig of ingetrokken.
HTTP 403 De API-sleutel heeft geen toegang tot de geconfigureerde tracker.
HTTP 429 De API-limiet voor de tracker is overschreden. Verlaag de frequentie van de trigger.
HTTP 503 De analyticsbackend is tijdelijk niet beschikbaar. Behoud de bestaande gegevens in het spreadsheet en probeer het later opnieuw.
Geen werkblad Daily Voer syncNowMetrixDaily handmatig uit en bekijk de uitvoeringsdetails van Apps Script.
Google meldt dat de app niet is geverifieerd Dit is normaal voor uw privéscript. Ga alleen door als u het project hebt gemaakt en Google uw eigen e-mailadres als ontwikkelaar toont.
Google vraagt toegang tot alle spreadsheets Annuleer, voeg @OnlyCurrentDoc bovenaan Code.gs toe, sla het bestand op en voer de functie opnieuw uit.
Datums lijken onjuist Stel de tijdzone van Google Sheets gelijk aan de tijdzone van de tracker die door de API wordt geretourneerd.