Eksport · Google Sheets

Dane NowMetrix w Google Sheets

Za pomocą Google Apps Script można bezpiecznie pobierać codzienne dane NowMetrix, odświeżać arkusz według harmonogramu oraz udostępniać dane do obliczeń, współpracy lub raportów w Looker Studio.

Jak działa połączenie

Arkusz pełni funkcję niewielkiego, zarządzanego przez klienta pośrednika danych:

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

Dane nie są importowane do Google Analytics. Apps Script wysyła żądanie do wybranego endpointu NowMetrix, używając klucza API, a następnie zapisuje zwrócone wiersze w arkuszu. Looker Studio może później używać tego arkusza jako osobnego źródła danych.

To rozwiązanie sprawdza się przy raportowaniu godzinowym lub dziennym. Google Sheets i Looker Studio buforują dane, dlatego do monitorowania pracy redakcji z dokładnością do sekund należy używać panelu NowMetrix.

1. Przygotowanie klucza API i arkusza

  1. W NowMetrix otworzyć Ustawienia → API i utworzyć osobny klucz oznaczony Google Sheets.
  2. Skopiować cały klucz po jego wyświetleniu. Później nie będzie można wyświetlić go ponownie.
  3. Zapisać identyfikator trackera witryny, z której mają być eksportowane dane.
  4. Utworzyć nowy arkusz Google, na przykład NowMetrix Export.
  5. Ustawić strefę czasową arkusza taką samą jak strefa czasowa trackera NowMetrix.

Poniższy przykład eksportuje 30 ostatnich dziennych wierszy z /v1/overview. Każdy wiersz zawiera datę, tracker, strefę czasową trackera, odsłony i wizyty.

2. Zapisanie klucza API we właściwościach skryptu

W arkuszu Google wybrać Rozszerzenia → Apps Script. Następnie:

  1. Otworzyć Ustawienia projektu za pomocą ikony koła zębatego.
  2. W sekcji Właściwości skryptu wybrać Dodaj właściwość skryptu.
  3. Dodać następujące dwie właściwości:
Właściwość Wartość
NOWMETRIX_API_KEY Klucz rozpoczynający się od nm_
NOWMETRIX_TRACKER_ID Identyfikator trackera do eksportu
Nigdy nie umieszczać klucza API w komórce arkusza, parametrze raportu, kodzie źródłowym skryptu, adresie URL ani komunikacie w dzienniku. Właściwości skryptu chronią klucz przed umieszczeniem go w arkuszu, ale osoby mające uprawnienia do edycji projektu Apps Script nadal muszą być zaufane.

3. Dodanie skryptu eksportu

Zastąpić zawartość pliku Code.gs poniższym skryptem. Skrypt sprawdza konfigurację, ogranicza dostęp do bieżącego dokumentu, obsługuje błędy API i zastępuje arkusz dopiero po pomyślnym otrzymaniu odpowiedzi.

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

Nie zastępować NOWMETRIX_API_KEY rzeczywistym kluczem w kodzie źródłowym. Skrypt odczytuje go z właściwości skryptu podczas działania. Zachować @OnlyCurrentDoc na początku: informuje Google, że należy poprosić o dostęp do tego arkusza, a nie do wszystkich arkuszy na koncie.

4. Zapisanie i jednokrotne uruchomienie skryptu

  1. Nadać projektowi nazwę NowMetrix Google Sheets Export w lewym górnym rogu.
  2. Zapisać projekt Apps Script za pomocą ikony dyskietki lub skrótu klawiaturowego.
  3. Wybrać syncNowMetrixDaily w menu funkcji na pasku narzędzi edytora.
  4. Wybrać Uruchom obok menu funkcji.
Nie wybierać opcji Wdróż. Ten eksport nie jest aplikacją internetową, wykonywalnym API, dodatkiem ani biblioteką i nie wymaga wdrożenia. Funkcję należy uruchomić bezpośrednio w edytorze.

5. Autoryzacja własnego projektu Apps Script

Przy pierwszym uruchomieniu skryptu Google poprosi o zgodę. Wybrać Sprawdź uprawnienia i konto Google, do którego należy arkusz.

Ostrzeżenie takie jak Google nie zweryfikował tej aplikacji jest oczekiwane w przypadku prywatnego, samodzielnie utworzonego projektu Apps Script. Adres e-mail dewelopera wyświetlany przez Google powinien należeć do własnego konta Google. Projekt nie jest aplikacją Google firmy NowMetrix i nie zapewnia firmie NowMetrix dostępu do konta Google.

  1. Potwierdzić, że projekt Apps Script został utworzony samodzielnie, a adres e-mail dewelopera należy do własnego konta Google.
  2. Na ekranie ostrzeżenia wybrać Zaawansowane.
  3. Przejść do nazwanego projektu. Google może oznaczyć ten link jako niebezpieczny, ponieważ prywatny projekt nie został zweryfikowany.
  4. Sprawdzić żądane uprawnienia i wybrać Zezwól lub Kontynuuj.
Uprawnienie Dlaczego jest wymagane
Dostęp do bieżącego arkusza Tworzenie lub aktualizowanie arkusza Daily w tym arkuszu Google.
Łączenie z usługą zewnętrzną Wysyłanie żądania HTTPS do https://api.nowmetrix.com.
Przerwać, jeśli adres e-mail dewelopera nie należy do własnego konta Google, projekt nie został utworzony samodzielnie lub kod różni się od przykładu. Jeśli Google poprosi o dostęp do wszystkich arkuszy, anulować, sprawdzić, czy @OnlyCurrentDoc znajduje się na samym początku pliku Code.gs, zapisać projekt i ponownie uruchomić funkcję.

Jeśli wcześniej przyznano szerszy dostęp do arkuszy, usunąć projekt w sekcji Konto Google → Bezpieczeństwo → Połączenia z aplikacjami i usługami innych firm, a następnie ponownie uruchomić zapisany skrypt, aby zażądać ograniczonych uprawnień.

Google opisuje ten proces autoryzacji oraz ograniczenie @OnlyCurrentDoc w swoim przewodniku po autoryzacji Apps Script.

6. Weryfikacja pierwszego eksportu

Po autoryzacji Apps Script wznowi działanie. Poczekać, aż w dzienniku wykonania pojawi się komunikat Wykonanie zakończone, wrócić do arkusza i otworzyć nowy arkusz Daily. Wynik powinien wyglądać podobnie do poniższego:

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. Planowanie automatycznych aktualizacji

W Apps Script otworzyć Wyzwalacze za pomocą ikony zegara i dodać wyzwalacz:

Funkcja syncNowMetrixDaily
Wdrożenie Head
Źródło zdarzenia Oparte na czasie
Częstotliwość Co godzinę lub rzadziej w przypadku raportu dziennego

Wyzwalacz działa na koncie Google, które go utworzyło. To konto musi pozostać aktywne; należy też sprawdzać powiadomienia o błędach Apps Script. Unikać niepotrzebnie częstych żądań: publiczne API NowMetrix pozwala obecnie na 20 żądań na minutę dla jednego trackera, wspólnie dla wszystkich kluczy i użytkowników.

Przykład zastępuje tabelę z ruchomym zakresem 30 dni przy każdym pomyślnym uruchomieniu. Zapobiega to powielaniu dat i pozwala zachować niewielki rozmiar arkusza.

8. Używanie arkusza w Looker Studio

  1. Utworzyć lub otworzyć raport w Looker Studio.
  2. Wybrać Dodaj dane → Google Sheets.
  3. Wybrać arkusz kalkulacyjny i arkusz Daily.
  4. Użyć pierwszego wiersza jako nagłówków i połączyć źródło danych.
  5. Potwierdzić, że date jest datą, a pageviews i visits są metrykami liczbowymi.

Można teraz tworzyć wykresy szeregów czasowych, karty wyników, tabele oraz pola obliczeniowe, takie jak pageviews / visits. Looker Studio odczytuje te dane jako osobne źródło; nie przekształca wartości NowMetrix w zdarzenia Google Analytics.

Pozostałe ustawienia raportu opisano w dokumentacji Google, w przewodniku po integracji z Google Sheets.

Eksport innych danych NowMetrix

Przypadek użycia Przykładowy endpoint Zalecane działanie na arkuszu
Dzienne odsłony i wizyty /v1/overview?days=30 Zastępować lub aktualizować wiersze według trackera i daty
Najpopularniejsze strony z wczoraj /v1/recap?preset=yesterday&limit=100 Dodawać raz dziennie lub zastępować bieżący wynik
Bieżący zrzut danych na żywo /v1/realtime Przy tworzeniu trendu dodawać znacznik czasu odpowiedzi
Bieżące źródła ruchu /v1/sources Dodawać znacznik czasu odpowiedzi lub zastępować bieżący zrzut
Raport Recap, taki jak preset=last30, zawiera sumy dla całego ruchomego zakresu. Nie dodawać tych wartości codziennie. Aby tworzyć sumowalną historię artykułów, eksportować zakończony okres, na przykład yesterday, i zapisywać zakres przy każdym wierszu.

Lista kontrolna bezpieczeństwa i udostępniania

  • Użyć osobnego klucza API NowMetrix do eksportu i przyznać dostęp tylko do wymaganych trackerów.
  • Przechowywać klucz wyłącznie we właściwościach skryptu lub innym serwerowym magazynie sekretów.
  • Pozostawić @OnlyCurrentDoc w skrypcie, aby ograniczyć dostęp Google Sheets do tego dokumentu.
  • Nigdy nie umieszczać klucza w komórkach, formułach, parametrach raportów, adresach URL, zrzutach ekranu ani dziennikach.
  • Ograniczyć uprawnienia do edycji projektu Apps Script. Osoby z uprawnieniami do edycji należy traktować jako zaufane.
  • Autoryzować skrypt tylko wtedy, gdy Google wyświetla własne konto jako konto dewelopera.
  • Używać osobnego arkusza należącego do klienta dla każdego konta NowMetrix.
  • Przed opublikowaniem raportu sprawdzić ustawienia udostępniania zarówno arkusza Google, jak i Looker Studio.
  • Natychmiast unieważnić klucz API, jeśli arkusz, skrypt lub konto Google mogły zostać przejęte.
Dostęp do API obejmuje trackery, do których użytkownik NowMetrix ma uprawnienia. Usunięcie tego dostępu lub unieważnienie klucza zatrzymuje przyszłe eksporty, ale nie usuwa danych już skopiowanych do Google.

Rozwiązywanie problemów

Problem Co sprawdzić
HTTP 401 Klucz API jest nieobecny, niepełny, nieprawidłowy lub unieważniony.
HTTP 403 Klucz API nie zapewnia dostępu do skonfigurowanego trackera.
HTTP 429 Przekroczono limit żądań API dla trackera. Zmniejszyć częstotliwość wyzwalacza.
HTTP 503 Backend analityczny jest tymczasowo niedostępny. Zachować dane w arkuszu i spróbować ponownie później.
Brak arkusza Daily Uruchomić ręcznie syncNowMetrixDaily i sprawdzić szczegóły wykonania w Apps Script.
Google informuje, że aplikacja nie została zweryfikowana Jest to oczekiwane w przypadku prywatnego skryptu. Kontynuować tylko wtedy, gdy projekt został utworzony samodzielnie, a Google wyświetla własny adres e-mail dewelopera.
Google prosi o dostęp do wszystkich arkuszy Anulować, dodać @OnlyCurrentDoc na początku pliku Code.gs, zapisać projekt i ponownie uruchomić funkcję.
Daty wyglądają nieprawidłowo Dopasować strefę czasową arkusza Google do strefy czasowej trackera zwróconej przez API.