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.
1. API-Schlüssel und Tabelle vorbereiten
- Öffnen Sie in NowMetrix Einstellungen → API und erstellen Sie einen separaten Schlüssel mit der Bezeichnung Google Sheets.
- Kopieren Sie den vollständigen Schlüssel, sobald er angezeigt wird. Später kann er nicht erneut angezeigt werden.
- Notieren Sie die Tracker ID der Website, die Sie exportieren möchten.
- Erstellen Sie ein neues Google Sheet, zum Beispiel NowMetrix Export.
- 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:
- Öffnen Sie über das Zahnradsymbol die Projekteinstellungen.
- Wählen Sie unter Script Properties die Option Add script property.
- 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 |
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
- Benennen Sie das Projekt oben links in NowMetrix Google Sheets Export um.
- Speichern Sie das Apps-Script-Projekt über das Diskettensymbol oder das Tastaturkürzel.
- Wählen Sie im Funktionsmenü der Editor-Symbolleiste
syncNowMetrixDailyaus. - Wählen Sie neben dem Funktionsmenü Ausführen.
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.
- Bestätigen Sie, dass Sie das Apps-Script-Projekt erstellt haben und dass die E-Mail-Adresse des Entwicklers Ihnen gehört.
- Wählen Sie auf dem Warnbildschirm Erweitert.
- Fahren Sie mit Ihrem benannten Projekt fort. Google kennzeichnet diesen Link möglicherweise als unsicher, da das private Projekt nicht bestätigt ist.
- 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. |
@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
- Erstellen oder öffnen Sie einen Bericht in Looker Studio.
- Wählen Sie Daten hinzufügen → Google Sheets.
- Wählen Sie die Tabelle und das Tabellenblatt Daily aus.
- Verwenden Sie die erste Zeile als Überschriften und verbinden Sie die Datenquelle.
- Bestätigen Sie, dass
dateein Datum undpageviewssowievisitsnumerische 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 |
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
@OnlyCurrentDocim 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.
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. |