Mějte metriky NowMetrix v Google Sheets
Pomocí Google Apps Scriptu bezpečně načítejte denní data NowMetrix, plánujte aktualizace tabulky a zpřístupněte data pro výpočty, sdílení nebo přehledy v Looker Studio.
Jak propojení funguje
Tabulka funguje jako malý datový most pod vaší kontrolou:
NowMetrix REST API → Google Apps Script → Google Sheet → optional Looker Studio report
Data se neimportují do Google Analytics. Apps Script požádá vybraný endpoint NowMetrix o data pomocí vašeho API klíče a zapíše vrácené řádky do tabulky. Looker Studio pak může tento list použít jako samostatný zdroj dat.
1. Připravte API klíč a tabulku
- V NowMetrix otevřete Nastavení → API a vytvořte samostatný klíč s označením Google Sheets.
- Po zobrazení zkopírujte celý klíč. Později ho už nebude možné znovu zobrazit.
- Poznamenejte si ID trackeru webu, který chcete exportovat.
- Vytvořte nový Google Sheet, například NowMetrix Export.
- Nastavte časové pásmo tabulky na stejné časové pásmo, jaké používá tracker NowMetrix.
Níže uvedený příklad exportuje posledních 30 denních řádků z /v1/overview. Každý řádek obsahuje
datum, tracker, časové pásmo trackeru, zobrazení stránek a návštěvy.
2. Uložte API klíč do vlastností skriptu
V Google Sheetu vyberte Rozšíření → Apps Script. Potom:
- Pomocí ikony ozubeného kola otevřete Nastavení projektu.
- V části Vlastnosti skriptu vyberte Přidat vlastnost skriptu.
- Přidejte následující dvě vlastnosti:
| Vlastnost | Hodnota |
|---|---|
NOWMETRIX_API_KEY |
Váš klíč začínající řetězcem nm_ |
NOWMETRIX_TRACKER_ID |
ID trackeru, který chcete exportovat |
3. Přidejte exportní skript
Nahraďte obsah souboru Code.gs tímto skriptem. Skript kontroluje konfiguraci,
omezuje přístup tabulky na aktuální dokument, zpracovává chyby API a list nahradí pouze
po úspěšné odpovědi.
/**
* @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);
}
Nenahrazujte NOWMETRIX_API_KEY skutečným klíčem ve zdrojovém kódu. Skript ho při
spuštění načte z vlastností skriptu. Ponechte @OnlyCurrentDoc nahoře: Google tak
požádá o přístup k této tabulce, nikoli ke všem tabulkám ve vašem účtu.
4. Uložte a jednou skript spusťte
- V levém horním rohu pojmenujte projekt NowMetrix Google Sheets Export.
- Uložte projekt Apps Scriptu pomocí ikony disku nebo klávesové zkratky.
- V nabídce funkcí na panelu nástrojů editoru vyberte
syncNowMetrixDaily. - Vedle nabídky funkcí vyberte Spustit.
5. Autorizujte vlastní projekt Apps Scriptu
Google při prvním spuštění skriptu požádá o oprávnění. Vyberte Prohlédnout oprávnění a zvolte účet Google, který vlastní tabulku.
U soukromého projektu Apps Scriptu, který jste vytvořili sami, se očekává upozornění Google tuto aplikaci neověřil. E-mail vývojáře zobrazený Googlem by měl patřit vašemu účtu Google. Projekt není aplikací Google ani NowMetrix a neposkytuje NowMetrix přístup k vašemu účtu Google.
- Potvrďte, že jste projekt Apps Scriptu vytvořili vy a že e-mail vývojáře patří vám.
- Na obrazovce s upozorněním vyberte Rozšířené.
- Pokračujte do svého pojmenovaného projektu. Google může tento odkaz označit jako nebezpečný, protože soukromý projekt není ověřený.
- Prohlédněte si požadovaná oprávnění a vyberte Povolit nebo Pokračovat.
| Oprávnění | Proč je potřeba |
|---|---|
| Přístup k aktuální tabulce | Vytvoření nebo aktualizace listu Daily v tomto Google Sheetu. |
| Připojení k externí službě | Odeslání požadavku HTTPS na https://api.nowmetrix.com. |
@OnlyCurrentDoc je úplně nahoře v souboru Code.gs, uložte
projekt a spusťte funkci znovu.
Pokud jste již schválili širší přístup k tabulkám, odeberte projekt v části Účet Google → Zabezpečení → Připojení k aplikacím a službám třetích stran a uložený skript znovu spusťte, aby požádal o omezená oprávnění.
Google tento proces autorizace a omezení @OnlyCurrentDoc popisuje v
příručce k autorizaci Apps Scriptu.
6. Ověřte první export
Po autorizaci Apps Script pokračuje ve spuštění. V protokolu spuštění počkejte na Spuštění dokončeno, vraťte se do tabulky a otevřete nový list Daily. Výsledek by měl vypadat podobně:
| 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. Naplánujte automatické aktualizace
V Apps Scriptu otevřete pomocí ikony hodin Spouštěče a přidejte spouštěč:
| Funkce | syncNowMetrixDaily |
|---|---|
| Nasazení | Head |
| Zdroj události | Řízené časem |
| Četnost | Každou hodinu, nebo méně často u denního přehledu |
Spouštěč běží pod účtem Google, který ho vytvořil. Tento účet udržujte aktivní a kontrolujte oznámení o chybách Apps Scriptu. Vyhněte se zbytečně častým požadavkům: veřejné API NowMetrix aktuálně umožňuje 20 požadavků za minutu na tracker, sdílených mezi klíči a uživateli.
Příklad při každém úspěšném spuštění nahradí průběžnou tabulku za posledních 30 dní. Zabrání tak duplicitním datům a udrží tabulku přehlednou.
8. Použijte list v Looker Studio
- Vytvořte nebo otevřete přehled v Looker Studio.
- Vyberte Přidat data → Google Sheets.
- Vyberte tabulku a list Daily.
- Použijte první řádek jako záhlaví a připojte zdroj dat.
- Ověřte, že
dateje datum apageviewsavisitsjsou číselné metriky.
Nyní můžete vytvářet časové grafy, karty s hodnotami, tabulky a vypočítaná pole, například
pageviews / visits. Looker Studio tato data načítá jako samostatný zdroj dat;
hodnoty NowMetrix nepřevádí na události Google Analytics.
Zbývající nastavení přehledu Google popisuje v příručce ke konektoru Google Sheets.
Exportujte další data NowMetrix
| Případ použití | Příklad endpointu | Doporučené chování listu |
|---|---|---|
| Denní zobrazení stránek a návštěvy | /v1/overview?days=30 |
Nahradit nebo aktualizovat řádky podle trackeru a data |
| Nejčtenější stránky za včerejšek | /v1/recap?preset=yesterday&limit=100 |
Jednou denně přidat, nebo nahradit aktuální výsledek |
| Aktuální živý snímek | /v1/realtime |
Při tvorbě trendu přidat čas odpovědi |
| Aktuální zdroje návštěvnosti | /v1/sources |
Přidat čas odpovědi, nebo nahradit aktuální snímek |
preset=last30, obsahuje součty za celé průběžné období. Tyto hodnoty
každý den nepřidávejte a nesčítejte. Pro sčítatelnou historii článků exportujte uzavřené období,
například yesterday, a rozsah uložte ke každému řádku.
Kontrolní seznam zabezpečení a sdílení
- Pro export používejte samostatný API klíč NowMetrix a udělte mu pouze potřebný přístup k trackeru.
- Klíč ukládejte pouze do vlastností skriptu nebo jiného úložiště tajných údajů na serveru.
- Ponechte ve skriptu
@OnlyCurrentDoc, aby se přístup omezil na tento dokument Google Sheets. - Klíč nikdy neuvádějte v buňkách, vzorcích, parametrech přehledů, URL, snímcích obrazovky ani protokolech.
- Omezte přístup k úpravám projektu Apps Scriptu. S editory zacházejte jako s důvěryhodnými uživateli.
- Skript autorizujte pouze tehdy, když Google jako vývojáře zobrazuje váš vlastní účet.
- Pro každý účet NowMetrix používejte samostatný spreadsheet vlastněný zákazníkem.
- Před zveřejněním přehledu zkontrolujte nastavení sdílení Google Sheetu i Looker Studio.
- Pokud může být tabulka, skript nebo účet Google napaden, API klíč okamžitě zneplatněte.
Řešení problémů
| Problém | Co zkontrolovat |
|---|---|
HTTP 401 |
API klíč chybí, je neúplný, neplatný nebo zneplatněný. |
HTTP 403 |
API klíč nemá přístup ke konfigurovanému trackeru. |
HTTP 429 |
Byl překročen limit API pro daný tracker. Snižte četnost spouštěče. |
HTTP 503 |
Analytický backend je dočasně nedostupný. Zachovejte stávající data v tabulce a zkuste to později. |
| Chybí list Daily | Spusťte syncNowMetrixDaily ručně a zkontrolujte podrobnosti spuštění Apps Scriptu. |
| Google uvádí, že aplikace není ověřená | U soukromého skriptu je to očekávané. Pokračujte pouze tehdy, když jste projekt vytvořili vy a Google zobrazuje váš vlastní e-mail vývojáře. |
| Google požaduje přístup ke všem tabulkám | Zrušte akci, přidejte @OnlyCurrentDoc na začátek Code.gs, uložte projekt a spusťte funkci znovu. |
| Data vypadají nesprávně | Nastavte časové pásmo Google Sheetu na časové pásmo trackeru vrácené API. |