Export · Google Sheets

NowMetrix-Kennzahlen in Google Sheets aktuell halten

Rufen Sie mit Google Apps Script täglich NowMetrix-Daten sicher ab, aktualisieren Sie die Tabelle nach einem Zeitplan und stellen Sie die Daten für Berechnungen, zum Teilen oder für Looker-Studio-Berichte bereit.

So funktioniert die Verbindung

Die Tabelle dient als kleine, von Ihnen kontrollierte Datenbrücke:

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

Die Daten werden nicht in Google Analytics importiert. Apps Script ruft den ausgewählten NowMetrix- endpoint mit Ihrem API-Schlüssel ab und schreibt die zurückgegebenen Zeilen in die Tabelle. Looker Studio kann dieses Tabellenblatt anschliessend als separate Datenquelle verwenden.

Diese Einrichtung eignet sich gut für stündliche oder tägliche Berichte. Google Sheets und Looker Studio speichern Daten im Cache. Verwenden Sie daher das NowMetrix-Dashboard für die sekündliche Überwachung Ihrer Redaktion.

1. API-Schlüssel und Tabelle vorbereiten

  1. Öffnen Sie in NowMetrix Einstellungen → API und erstellen Sie einen separaten Schlüssel mit der Bezeichnung Google Sheets.
  2. Kopieren Sie den vollständigen Schlüssel, sobald er angezeigt wird. Später kann er nicht erneut angezeigt werden.
  3. Notieren Sie die Tracker ID der Website, die Sie exportieren möchten.
  4. Erstellen Sie ein neues Google Sheet, zum Beispiel NowMetrix Export.
  5. Stellen Sie die Zeitzone der Tabelle auf dieselbe Zeitzone wie den NowMetrix Tracker ein.

Das folgende Beispiel exportiert die letzten 30 Tageszeilen aus /v1/overview. Jede Zeile enthält das Datum, den Tracker, die Zeitzone des trackers, Pageviews und Besuche.

2. API-Schlüssel in den Script Properties speichern

Wählen Sie im Google Sheet Erweiterungen → Apps Script. Anschliessend:

  1. Öffnen Sie über das Zahnradsymbol die Projekteinstellungen.
  2. Wählen Sie unter Script Properties die Option Add script property.
  3. Fügen Sie die folgenden beiden Eigenschaften hinzu:
Eigenschaft Wert
NOWMETRIX_API_KEY Ihr Schlüssel, der mit nm_ beginnt
NOWMETRIX_TRACKER_ID Die zu exportierende Tracker ID
Speichern Sie den API-Schlüssel niemals in einer Tabellenzelle, einem Berichtsparameter, dem Quelltext des Scripts, einer URL oder einer Protokollmeldung. Script Properties halten ihn aus dem Tabellenblatt heraus. Personen mit Bearbeitungszugriff auf das Apps-Script-Projekt müssen jedoch weiterhin vertrauenswürdig sein.

3. Exportscript hinzufügen

Ersetzen Sie den Inhalt von Code.gs durch dieses Script. Es prüft die Konfiguration, beschränkt den Tabellenzugriff auf das aktuelle Dokument, verarbeitet API-Fehler und ersetzt das Tabellenblatt erst nach einer erfolgreichen Antwort.

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

Ersetzen Sie NOWMETRIX_API_KEY im Quelltext nicht durch den tatsächlichen Schlüssel. Das Script liest ihn zur Laufzeit aus den Script Properties. Lassen Sie @OnlyCurrentDoc am Anfang stehen: Dadurch fordert Google Zugriff auf dieses Tabellenblatt statt auf alle Tabellenblätter Ihres Kontos an.

4. Script speichern und einmal ausführen

  1. Benennen Sie das Projekt oben links in NowMetrix Google Sheets Export um.
  2. Speichern Sie das Apps-Script-Projekt über das Diskettensymbol oder das Tastaturkürzel.
  3. Wählen Sie im Funktionsmenü der Editor-Symbolleiste syncNowMetrixDaily aus.
  4. Wählen Sie neben dem Funktionsmenü Ausführen.
Wählen Sie nicht Bereitstellen. Dieser Export ist weder eine Web-App, eine ausführbare API, ein Add-on noch eine Bibliothek und benötigt keine Bereitstellung. Führen Sie die Funktion direkt im Editor aus.

5. Eigenes Apps-Script-Projekt autorisieren

Beim ersten Ausführen des Scripts bittet Google um eine Berechtigung. Wählen Sie Berechtigungen prüfen und anschliessend das Google-Konto, dem die Tabelle gehört.

Eine Warnung wie Google hat diese App nicht bestätigt ist bei einem privaten, selbst erstellten Apps-Script-Projekt zu erwarten. Die von Google angezeigte E-Mail-Adresse des Entwicklers sollte Ihre eigene Google-Adresse sein. Das Projekt ist keine Google-App von NowMetrix und gewährt NowMetrix keinen Zugriff auf Ihr Google-Konto.

  1. Bestätigen Sie, dass Sie das Apps-Script-Projekt erstellt haben und dass die E-Mail-Adresse des Entwicklers Ihnen gehört.
  2. Wählen Sie auf dem Warnbildschirm Erweitert.
  3. Fahren Sie mit Ihrem benannten Projekt fort. Google kennzeichnet diesen Link möglicherweise als unsicher, da das private Projekt nicht bestätigt ist.
  4. Prüfen Sie die angeforderten Berechtigungen und wählen Sie Zulassen oder Fortfahren.
Berechtigung Benötigt für
Zugriff auf die aktuelle Tabelle Das Tabellenblatt Daily in diesem Google Sheet erstellen oder aktualisieren.
Verbindung zu einem externen Dienst Eine HTTPS-Anfrage an https://api.nowmetrix.com senden.
Brechen Sie ab, wenn die E-Mail-Adresse des Entwicklers nicht Ihnen gehört, Sie das Projekt nicht erstellt haben oder der Code vom Beispiel abweicht. Wenn Google Zugriff auf alle Ihre Tabellen anfordert, brechen Sie ab. Prüfen Sie, ob @OnlyCurrentDoc ganz oben in Code.gs steht, speichern Sie und führen Sie die Funktion erneut aus.

Wenn Sie bereits einen umfassenderen Tabellenzugriff genehmigt haben, entfernen Sie das Projekt unter Google-Konto → Sicherheit → Verbindungen zu Drittanbieter-Apps und -Diensten. Führen Sie anschliessend das gespeicherte Script erneut aus, um die eingeschränkten Berechtigungen anzufordern.

Google beschreibt diesen Autorisierungsablauf und die Einschränkung durch @OnlyCurrentDoc in seinem Leitfaden zur Apps-Script-Autorisierung.

6. Ersten Export prüfen

Nach der Autorisierung setzt Apps Script die Ausführung fort. Warten Sie im Ausführungsprotokoll auf Ausführung abgeschlossen, kehren Sie zur Tabelle zurück und öffnen Sie das neue Tabellenblatt Daily. Das Ergebnis sollte ähnlich aussehen:

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. Automatische Aktualisierungen planen

Öffnen Sie in Apps Script über das Uhrsymbol die Trigger und fügen Sie einen Trigger hinzu:

Funktion syncNowMetrixDaily
Bereitstellung Head
Ereignisquelle Zeitgesteuert
Häufigkeit Stündlich oder bei einem Tagesbericht seltener

Der Trigger wird unter dem Google-Konto ausgeführt, mit dem er erstellt wurde. Lassen Sie dieses Konto aktiv und prüfen Sie die Fehlermeldungen von Apps Script. Vermeiden Sie unnötig häufige Anfragen: Die öffentliche NowMetrix API erlaubt derzeit 20 Anfragen pro Minute und Tracker, gemeinsam für alle Schlüssel und Benutzer.

Das Beispiel ersetzt die fortlaufende 30-Tage-Tabelle nach jeder erfolgreichen Ausführung. Dadurch werden doppelte Datumsangaben verhindert und das Tabellenblatt bleibt kompakt.

8. Tabellenblatt in Looker Studio verwenden

  1. Erstellen oder öffnen Sie einen Bericht in Looker Studio.
  2. Wählen Sie Daten hinzufügen → Google Sheets.
  3. Wählen Sie die Tabelle und das Tabellenblatt Daily aus.
  4. Verwenden Sie die erste Zeile als Überschriften und verbinden Sie die Datenquelle.
  5. Bestätigen Sie, dass date ein Datum und pageviews sowie visits numerische Kennzahlen sind.

Sie können nun Zeitreihendiagramme, Scorecards, Tabellen und berechnete Felder wie pageviews / visits erstellen. Looker Studio liest dies als separate Datenquelle; die NowMetrix-Werte werden dadurch nicht in Google-Analytics-Ereignisse umgewandelt.

Google beschreibt die übrigen Berichtseinstellungen in seinem Leitfaden zum Google-Sheets-Connector.

Weitere NowMetrix-Daten exportieren

Anwendungsfall Beispiel für den endpoint Empfohlenes Verhalten des Tabellenblatts
Tägliche Pageviews und Besuche /v1/overview?days=30 Zeilen nach Tracker und Datum ersetzen oder aktualisieren
Top Pages von gestern /v1/recap?preset=yesterday&limit=100 Einmal täglich anhängen oder das aktuelle Ergebnis ersetzen
Aktueller Live-Snapshot /v1/realtime Beim Erstellen eines Trends mit dem Zeitstempel der Antwort anhängen
Aktuelle Quellen /v1/sources Mit dem Zeitstempel der Antwort anhängen oder den aktuellen Snapshot ersetzen
Ein Recap wie preset=last30 enthält die Summen für den gesamten rollierenden Zeitraum. Hängen Sie diese Werte nicht täglich an und addieren Sie sie nicht. Für eine additive Artikelhistorie exportieren Sie einen abgeschlossenen Zeitraum wie yesterday und speichern Sie den Zeitraum mit jeder Zeile.

Checkliste für Sicherheit und Freigaben

  • Verwenden Sie für den Export einen separaten NowMetrix-API-Schlüssel und gewähren Sie nur Zugriff auf die erforderlichen Tracker.
  • Speichern Sie den Schlüssel nur in Script Properties oder einem anderen serverseitigen Geheimnisspeicher.
  • Lassen Sie @OnlyCurrentDoc im Script stehen, um den Google-Sheets-Zugriff auf dieses Dokument zu beschränken.
  • Nehmen Sie den Schlüssel niemals in Zellen, Formeln, Berichtsparameter, URLs, Screenshots oder Protokolle auf.
  • Beschränken Sie den Bearbeitungszugriff auf das Apps-Script-Projekt. Behandeln Sie Editoren als vertrauenswürdige Benutzer.
  • Autorisieren Sie das Script nur, wenn Google Ihr eigenes Konto als Entwickler anzeigt.
  • Verwenden Sie für jedes NowMetrix-Konto eine separate, kundeneigene Tabelle.
  • Prüfen Sie die Freigabeeinstellungen von Google Sheet und Looker Studio, bevor Sie einen Bericht veröffentlichen.
  • Widerrufen Sie den API-Schlüssel sofort, wenn die Tabelle, das Script oder das Google-Konto möglicherweise kompromittiert wurde.
Der API-Zugriff folgt den für den NowMetrix-Benutzer freigegebenen trackern. Wenn dieser Zugriff entfernt oder der Schlüssel widerrufen wird, werden künftige Exporte gestoppt. Bereits nach Google kopierte Daten werden jedoch nicht gelöscht.

Fehlerbehebung

Problem Prüfen Sie Folgendes
HTTP 401 Der API-Schlüssel fehlt, ist unvollständig, ungültig oder wurde widerrufen.
HTTP 403 Der API-Schlüssel hat keinen Zugriff auf den konfigurierten Tracker.
HTTP 429 Das API-Ratenlimit für den Tracker wurde überschritten. Reduzieren Sie die Trigger-Häufigkeit.
HTTP 503 Das Analytics-Backend ist vorübergehend nicht verfügbar. Behalten Sie die vorhandenen Tabellendaten bei und versuchen Sie es später erneut.
Kein Tabellenblatt Daily Führen Sie syncNowMetrixDaily manuell aus und prüfen Sie die Ausführungsdetails von Apps Script.
Google meldet, dass die App nicht bestätigt ist Dies ist bei Ihrem privaten Script zu erwarten. Fahren Sie nur fort, wenn Sie das Projekt erstellt haben und Google Ihre eigene E-Mail-Adresse als Entwickler anzeigt.
Google fordert Zugriff auf alle Tabellen an Brechen Sie ab, fügen Sie @OnlyCurrentDoc oben in Code.gs ein, speichern Sie und führen Sie die Funktion erneut aus.
Datumsangaben sehen falsch aus Stimmen Sie die Zeitzone des Google Sheets mit der vom API zurückgegebenen Zeitzone des trackers ab.