Održavajte metrike NowMetrixa u Google Sheetsu
Pomoću Google Apps Scripta sigurno dohvaćajte dnevne podatke NowMetrixa, osvježavajte proračunsku tablicu prema rasporedu i učinite ih dostupnima za izračune, dijeljenje ili izvješća u Looker Studiju.
Kako funkcionira povezivanje
Proračunska tablica služi kao mali podatkovni most pod Vašom kontrolom:
NowMetrix REST API → Google Apps Script → Google Sheet → optional Looker Studio report
Podaci se ne uvoze u Google Analytics. Apps Script šalje zahtjev odabranoj krajnjoj točki NowMetrixa s Vašim API ključem i upisuje vraćene retke u proračunsku tablicu. Looker Studio zatim može upotrebljavati taj radni list kao zaseban izvor podataka.
1. Pripremite API ključ i proračunsku tablicu
- U NowMetrixu otvorite Postavke → API i izradite zaseban ključ s oznakom Google Sheets.
- Kopirajte cijeli ključ kada se prikaže. Poslije ga više neće biti moguće prikazati.
- Zabilježite ID trackera za web-mjesto čije podatke želite izvesti.
- Izradite novi Google Sheet, primjerice NowMetrix Export.
- Postavite vremensku zonu proračunske tablice na istu vremensku zonu kao i tracker NowMetrixa.
U primjeru u nastavku izvozi se posljednjih 30 dnevnih redaka iz krajnje točke /v1/overview.
Svaki redak sadržava datum, tracker, vremensku zonu trackera, broj pregleda stranica i broj posjeta.
2. Pohranite API ključ u svojstva skripte
U Google Sheetu odaberite Proširenja → Apps Script. Zatim:
- Otvorite Postavke projekta pomoću ikone zupčanika.
- U odjeljku Svojstva skripte odaberite Dodaj svojstvo skripte.
- Dodajte sljedeća dva svojstva:
| Svojstvo | Vrijednost |
|---|---|
NOWMETRIX_API_KEY |
Vaš ključ koji počinje s nm_ |
NOWMETRIX_TRACKER_ID |
ID trackera čije podatke izvozite |
3. Dodajte skriptu za izvoz
Zamijenite sadržaj datoteke Code.gs ovom skriptom. Skripta provjerava konfiguraciju,
ograničava pristup proračunskim tablicama na trenutačni dokument, obrađuje pogreške API-ja i
zamjenjuje radni list tek nakon uspješnog odgovora.
/**
* @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);
}
Nemojte zamijeniti NOWMETRIX_API_KEY stvarnim ključem u izvornom kodu. Skripta ga
tijekom izvođenja čita iz svojstava skripte. Ostavite @OnlyCurrentDoc na vrhu:
Googleu govori da zatraži pristup ovoj proračunskoj tablici, a ne svim proračunskim tablicama na Vašem računu.
4. Spremite i jednom pokrenite skriptu
- Imenujte projekt NowMetrix Google Sheets Export u gornjem lijevom kutu.
- Spremite projekt Apps Script pomoću ikone diska ili tipkovničkog prečaca.
- U izborniku funkcija na alatnoj traci uređivača odaberite
syncNowMetrixDaily. - Odaberite Run pokraj izbornika funkcija.
5. Autorizirajte vlastiti projekt Apps Script
Google će prvi put kada se skripta pokrene zatražiti dopuštenje. Odaberite Pregledaj dopuštenja i odaberite Google račun koji je vlasnik proračunske tablice.
Upozorenje poput Google nije potvrdio ovu aplikaciju očekivano je za privatni, samostalno izrađeni projekt Apps Script. E-adresa razvojnog programera koju prikazuje Google trebala bi biti Vaša vlastita e-adresa Google računa. Projekt nije Googleova aplikacija NowMetrixa i NowMetrixu ne daje pristup Vašem Google računu.
- Potvrdite da ste izradili projekt Apps Script i da je e-adresa razvojnog programera Vaša.
- Na zaslonu s upozorenjem odaberite Napredno.
- Nastavite do imenovanog projekta. Google ovu poveznicu može označiti kao nesigurnu jer privatni projekt nije potvrđen.
- Pregledajte zatražena dopuštenja i odaberite Dopusti ili Nastavi.
| Dopuštenje | Zašto je potrebno |
|---|---|
| Pristup trenutačnoj proračunskoj tablici | Izrada ili ažuriranje radnog lista Daily u ovoj Google tablici. |
| Povezivanje s vanjskom uslugom | Slanje HTTPS zahtjeva na https://api.nowmetrix.com. |
@OnlyCurrentDoc na samom vrhu datoteke
Code.gs, spremite promjene i ponovno pokrenite funkciju.
Ako ste već odobrili širi pristup proračunskim tablicama, uklonite projekt u odjeljku Google račun → Sigurnost → Povezivanja s aplikacijama i uslugama trećih strana, a zatim ponovno pokrenite spremljenu skriptu kako biste zatražili uži opseg dopuštenja.
Google opisuje ovaj tijek autorizacije i ograničenje @OnlyCurrentDoc u svojem
vodiču za autorizaciju Apps Scripta.
6. Provjerite prvi izvoz
Nakon autorizacije Apps Script nastavlja izvođenje. U zapisniku izvođenja pričekajte poruku Izvršavanje je dovršeno, vratite se u proračunsku tablicu i otvorite novi radni list Daily. Rezultat bi trebao izgledati ovako:
| 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. Zakažite automatska ažuriranja
U Apps Scriptu otvorite Okidači pomoću ikone sata i dodajte okidač:
| Funkcija | syncNowMetrixDaily |
|---|---|
| Implementacija | Head |
| Izvor događaja | Temeljeno na vremenu |
| Učestalost | Svaki sat ili rjeđe za dnevno izvješće |
Okidač se izvršava pod Google računom koji ga je izradio. Taj račun mora ostati aktivan, a obavijesti o pogreškama Apps Scripta redovito provjeravajte. Izbjegavajte nepotrebno često slanje zahtjeva: javni API NowMetrixa trenutačno dopušta 20 zahtjeva u minuti po trackeru, zajednički za ključeve i korisnike.
Primjer pri svakom uspješnom izvođenju zamjenjuje pomičnu tablicu za posljednjih 30 dana. Time se sprječavaju duplicirani datumi i radni list ostaje pregledan.
8. Upotrijebite radni list u Looker Studiju
- Izradite ili otvorite izvješće u alatu Looker Studio.
- Odaberite Dodaj podatke → Google Sheets.
- Odaberite proračunsku tablicu i radni list Daily.
- Upotrijebite prvi redak kao zaglavlja i povežite izvor podataka.
- Potvrdite da je
datedatum te da supageviewsivisitsnumeričke metrike.
Sada možete izraditi grafikone vremenskih nizova, kartice s rezultatima, tablice i izračunata polja
kao što je pageviews / visits. Looker Studio ovo čita kao zaseban izvor podataka;
vrijednosti NowMetrixa ne pretvara u događaje Google Analyticsa.
Google preostale postavke izvješća opisuje u svojem vodiču za povezivanje Google Sheetsa.
Izvoz drugih podataka NowMetrixa
| Slučaj upotrebe | Primjer krajnje točke | Preporučeno ponašanje radnog lista |
|---|---|---|
| Dnevni pregledi stranica i posjeti | /v1/overview?days=30 |
Zamijenite ili ažurirajte retke prema trackeru i datumu |
| Najpopularnije stranice jučer | /v1/recap?preset=yesterday&limit=100 |
Dodajte jednom dnevno ili zamijenite trenutačni rezultat |
| Trenutačna snimka podataka uživo | /v1/realtime |
Pri izradi trenda dodajte vremensku oznaku odgovora |
| Trenutačni izvori prometa | /v1/sources |
Dodajte vremensku oznaku odgovora ili zamijenite trenutačnu snimku |
preset=last30 sadržava ukupne vrijednosti za cijeli pomični raspon.
Nemojte te vrijednosti svaki dan dodavati postojećima. Za zbrajajuću povijest članaka izvezite
završeno razdoblje, primjerice yesterday, i uz svaki redak pohranite raspon.
Kontrolni popis za sigurnost i dijeljenje
- Za izvoz upotrebljavajte zaseban API ključ NowMetrixa i dodijelite mu samo potreban pristup trackerima.
- Ključ pohranjujte samo u svojstvima skripte ili drugom poslužiteljskom spremištu tajni.
- U skripti zadržite
@OnlyCurrentDockako biste pristup Google Sheetsu ograničili na ovaj dokument. - Ključ nikada nemojte uključivati u ćelije, formule, parametre izvješća, URL-ove, snimke zaslona ili zapisnike.
- Ograničite ovlasti za uređivanje projekta Apps Script. Urednike morate smatrati pouzdanim korisnicima.
- Skriptu autorizirajte samo kada Google kao razvojnog programera prikazuje Vaš račun.
- Za svaki račun NowMetrixa upotrebljavajte zasebnu proračunsku tablicu u vlasništvu korisnika.
- Prije objave izvješća provjerite postavke dijeljenja Google Sheetsa i Looker Studija.
- Odmah opozovite API ključ ako postoji mogućnost da su proračunska tablica, skripta ili Google račun ugroženi.
Rješavanje problema
| Problem | Što provjeriti |
|---|---|
HTTP 401 |
API ključ nedostaje, nepotpun je, nevažeći ili opozvan. |
HTTP 403 |
API ključ nema pristup konfiguriranom trackeru. |
HTTP 429 |
Prekoračeno je ograničenje brzine API-ja za tracker. Smanjite učestalost okidača. |
HTTP 503 |
Analitička pozadina trenutačno nije dostupna. Zadržite postojeće podatke u radnom listu i pokušajte ponovno poslije. |
| Nema radnog lista Daily | Ručno pokrenite syncNowMetrixDaily i pregledajte pojedinosti izvođenja u Apps Scriptu. |
| Google navodi da aplikacija nije potvrđena | To je očekivano za Vašu privatnu skriptu. Nastavite samo ako ste izradili projekt i Google prikazuje Vašu vlastitu e-adresu razvojnog programera. |
| Google traži pristup svim proračunskim tablicama | Otkažite postupak, dodajte @OnlyCurrentDoc na vrh datoteke Code.gs, spremite promjene i ponovno pokrenite funkciju. |
| Datumi izgledaju netočno | Uskladite vremensku zonu Google Sheetsa s vremenskom zonom trackera koju vraća API. |