API dokumentace

Trackless přijímá data přes jednoduché HTTP JSON API. Pro PrestaShop, WordPress/WooCommerce, Joomla / VirtueMart, OpenCart, Magento 2, Shopware 6 a Sylius existují hotové moduly a pluginy. Na API se napojí jakákoli platforma (Shoptet, Shopify, vlastní řešení) - stačí jednou denně (nebo častěji) poslat dávku dat o návštěvách a objednávkách.

Jak Vás napojíme a co z toho máte

Cesta napojení závisí na Vaší platformě. Kde můžeme měřit přímo na serveru, je měření nejpřesnější; jinde pomůže malý skript. U samotné analytiky se často obejdete bez vlastních analytických cookies; právní základ a případné zařazení do cookie lišty ale vždy posuzujte podle konkrétního nasazení.

Přehled cest napojení Trackless a co každá z nich umí.
Napojení Souhlas / cookie lišta Závislost na prohlížeči Co Trackless změří
Modul/plugin - PrestaShop, WordPress/WooCommerce, Joomla / VirtueMart, OpenCart, Magento 2, Shopware 6, Sylius Zpravidla ne Nízká - měří se na serveru, prohlížeč zákazníka není hlavní měřicí vrstva Návštěvy a skutečné tržby, marže, vratky, ROAS
JavaScript - Shoptet Posoudit podle nasazení Vysoká, ne 100 % - skript běží v prohlížeči; při agresivním blokování měřicích skriptů může část návštěv chybět Návštěvy a prohlížečově neověřené objednávky/tržby ve statistikách; mimo fakturaci a cenové pásmo
JavaScript - pronajaté platformy Posoudit podle nasazení Vysoká, ne 100 % - skript běží v prohlížeči Návštěvy a prohlížečově neověřené objednávky/tržby ve statistikách; mimo fakturaci a cenové pásmo
JavaScript - Webnode Posoudit podle nasazení Vysoká, ne 100 % - skript běží v prohlížeči Návštěvnost a podle tarifu prohlížečově neověřené objednávky/tržby; mimo fakturaci a cenové pásmo
Vlastní napojení (API, Shopify a další) Podle integrace Nízká, pokud měříte ze serveru (POST /ingest) Podle vaší integrace

Modul měří přímo na serveru e-shopu, takže není závislý na prohlížečovém skriptu a sám neukládá analytické cookies. Tam, kde platforma vlastní modul nepustí (pronájmy jako Shoptet), použijeme malý skript - ten v prohlížeči neukládá cookies, ale stále závisí na tom, zda ho prohlížeč nebo rozšíření nezablokuje. Právní základ a cookie lištu posuzujte podle konkrétního nasazení.

Trackless nevytváří trvalý browser identifikátor a nepoužívá vlastní analytické cookies. Denní visitor otisk se mění; agregace a atribuce objednávek ale může v rámci atribučního okna pracovat s pseudonymními technickými údaji a interními údaji e-shopu.

Napojujete hostovanou platformu? Máme podrobné návody podle platformy.

Hotové pluginy a moduly

PrestaShop modul
Modul shaim_trackless - v PrestaShopu Moduly → Nahrát modul → .zip → nastavte a vložte api_key.
Požadavky: PrestaShop 1.6+ a PHP 7.1+.
PrestaShop modul z dílny PSModuly.cz
Stáhnout .zip
WordPress / WooCommerce plugin
Funguje na jakémkoli WordPressu (návštěvnost); s WooCommerce navíc objednávky a marže. Pluginy → Přidat plugin → vyhledejte Trackless → Instalovat → Aktivovat → vložte api_key.
Požadavky: WordPress 6.2+, PHP 7.4+ (WooCommerce volitelně - 6.0+, 8.5+ pro atribuci zdrojů objednávek).
Instalovat z WordPress.org
Joomla / VirtueMart plugin
Pro Joomla 5.4+ a 6.x - Systém -> Instalace rozšíření -> Nahrát balíček -> .zip, potom Systém -> Pluginy -> System - Trackless, vložte api_key a potvrďte zpracovatelskou smlouvu.
Požadavky: Joomla 5.4+ nebo 6.x a PHP 8.1+; pro objednávky VirtueMart 5. Měří návštěvnost, objednávky a položky serverově, bez zásahu do šablony.
Otevřít v Joomla Extensions Directory
OpenCart 3.x modul
Pro OpenCart 3.x - Rozšíření → Instalátor → nahrát .ocmod.zip → v sekci Moduly nainstalovat, vložit api_key a potvrdit zpracovatelskou smlouvu.
Požadavky: OpenCart 3.0.3+ a PHP 7.1+. Žádné zásahy do šablony ani jádra (event hooky).
Stáhnout .ocmod.zip
OpenCart 4.x modul
Pro OpenCart 4.x - Rozšíření → Instalátor → nahrát .ocmod.zip → v sekci Moduly nainstalovat, vložit api_key a potvrdit zpracovatelskou smlouvu.
Požadavky: OpenCart 4.0+ a PHP 8.0+. Soubor po stažení nepřejmenovávejte - OpenCart 4 z jeho názvu odvozuje identitu rozšíření. Žádné zásahy do šablony ani jádra.
Stáhnout .ocmod.zip
Shopware 6 plugin
Pro Shopware 6.4+ - Rozšíření → Moje rozšíření → Nahrát rozšíření → .zip → instalovat a aktivovat → v nastavení vložte api_key a potvrďte zpracovatelskou smlouvu.
Požadavky: Shopware 6.4+, PHP 7.4+. Měří na serveru vč. objednávek a položek.
Stáhnout .zip
Magento 2 modul
Pro Magento 2.4+ - vývojářská instalace přes konzoli (Magento nemá nahrávání modulů v administraci): rozbalte do app/code/Shaim/Trackless, pak spusťte bin/magento module:enable Shaim_Trackless a setup:upgrade → v Stores → Configuration → Trackless vložte api_key a potvrďte zpracovatelskou smlouvu.
Požadavky: Magento 2.4+, PHP 8.1 az 8.4. Měří na serveru vč. objednávek, položek a marží (z pole cost).
Stáhnout .zip
Sylius plugin
Pro Sylius 1.12+ - vývojářská instalace přes Composer (Sylius nemá nahrávání pluginů v administraci): 1) composer require shaim/trackless-sylius-plugin, 2) zaregistrujte bundle v config/bundles.php, 3) nastavte api_key v config/packages/trackless_sylius.yaml, 4) spusťte bin/console trackless:set-salt a trackless:send (založí tabulky).
Požadavky: Sylius 1.12+, PHP 8.0+. Měří na serveru vč. objednávek a položek.
Stáhnout .zip

Měřicí JS kód pro pronajaté platformy

Pronajaté platformy a weby, kam nejde nahrát serverový modul/plugin, napojíte měřicím kódem v šabloně nebo přes Google Tag Manager podle možností platformy. Kód měří návštěvnost a funnelové události - stránky, zdroje a kanály, zařízení, země a na podporovaných platformách také objednávky a tržby - bez vlastních analytických cookies; konkrétní posouzení consent lišty ale závisí na celém nastavení webu. Objednávka z veřejného kódu se označí browser_unverified: je v běžných statistikách objednávek, tržeb a konverzí, ale nezapočítá se do fakturace ani cenového pásma. V prohlížeči se neukládá měřicí identifikátor a návštěvník se pozná jen z denně rotovaného serverového otisku.

<script async src="https://c.trackless.cz/t.js" data-token="VAS_MERICI_TOKEN"></script>

Po přidání webu v Moje weby uvidíte podle platformy buď hotový měřicí kód, nebo samotný token pro kód z návodu; později ho spravujete v Můj účet. Kam napojení vložit:

  • Shoptet: v administraci otevřete HTML kód (Vzhled a obsah → Editor) a kód vložte do sekce Záhlaví - máme pro Vás podrobný návod pro Shoptet.
  • Eshop-rychle: administrace → E-shop → Měřící kódy → Přidat vlastní kód, pozice Hlavička - objednávky se načtou automaticky z oficiálního Eshop-rychle dataLayeru; máme pro Vás podrobný návod pro Eshop-rychle.
  • Upgates: administrace → Doplňky / Vlastní konverzní kódy, oddíl „Kódy umístěné na všech stránkách“, pole pro <head> - máme pro Vás podrobný návod pro Upgates.
  • Webareal: administrace → Nastavení → Nastavení webu → Základní nastavení, pole „Kód počítadla přístupů“ - máme pro Vás podrobný návod pro Webareal.
  • Webnode: Nastavení → Nastavení webu → HTML hlavička webu (vyžaduje placený balíček; návštěvnost, a na balíčku Profi/Business i objednávky přes pole pro měření konverzí) - viz návod pro Webnode.
  • Shopify: vložte vlastní pixel v Settings → Customer events → Custom pixels; nepoužívá se běžný <script> v šabloně - viz návod pro Shopify.
  • FastCentrik: v administraci se zadává pouze ID Google Tag Manageru; Trackless kód vložte do GTM jako vlastní HTML značku na všechny stránky, ideálně dynamickou variantou z návodu, aby se zachoval atribut data-token. Konverzi přidejte jako druhou značku navázanou na e-commerce datovou vrstvu - viz návod pro FastCentrik.
  • Mioweb: měřicí kód vložte do Nastavení → Web → Vlastní kódy pro hlavičku a konverzní kód do Nastavení → Prodej → Vlastní kódy - viz návod pro Mioweb.
  • Jakýkoli jiný web: vložte kód kamkoliv do <head> šablony.

Upřímná poznámka: měření JS kódem může část návštěv minout, pokud prohlížeč nebo rozšíření blokuje externí měřicí skripty. Serverové moduly pro PrestaShop, WordPress/WooCommerce, Joomla / VirtueMart, OpenCart, Magento 2, Shopware 6 a Sylius měří přímo na serveru, takže jsou přesnější. Objednávky ze serverového modulu, samostatné serverové integrace nebo HMAC podepsaného /ingest se označí server_verified. Klientský order z veřejného JS se uloží jako browser_unverified: vstupuje do běžných statistik objednávek, tržeb a konverzí, ale ne do fakturace ani cenového pásma. Položky objednávek a marže jsou dostupné jen ze serverových integrací.

Standardní a vlastní události

Vedle standardních událostí můžete poslat libovolnou vlastní událost, například lead_submitted, pdf_downloaded nebo video_started. Stejný univerzální zápis funguje pro poptávku, registraci, stažení, přehrání i jinou akci. Událost order můžete použít pro dokončení pokladny; Trackless ji uloží jako prohlížečově neověřenou objednávku browser_unverified.

window.trackless && trackless('event', {
  type: 'lead_submitted',
  id: 123,
  value: 1500.00,
  currency: 'CZK'
});

window.trackless && trackless('event', {
  type: 'order',
  id: 2026001234,
  value: 1169.00,
  value_tax_excl: 966.12,
  value_tax_incl: 1169.00,
  products_tax_excl: 900.00,
  products_tax_incl: 1089.00,
  shipping_tax_excl: 66.12,
  shipping_tax_incl: 80.00,
  currency: 'CZK'
});

Název má 1-40 znaků, začíná malým písmenem a pokračuje jen malými písmeny, číslicemi nebo podtržítkem: ^[a-z][a-z0-9_]{0,39}$. Neplatný název se uloží jako pageview. Standardní typy pageview, view_item, view_category, search, view_cart, add_to_cart, begin_checkout, order a engagement mají vestavěný význam. Klientský order vstupuje do běžných statistik objednávek, tržeb a konverzí jako browser_unverified, ale nezapočítá se do fakturace ani cenového pásma.

Kontrakt endpointu /collect

POST  https://trackless.cz/collect

Kód t.js posílá na POST /collect malý JSON (jako text/plain, aby obešel CORS preflight). Cíl je v t.js výchozí; atribut data-endpoint je jen volitelný override pro testovací nebo vlastní endpoint. Pole: t = veřejný měřicí token, u = celá URL stránky (včetně utm_*), r = referrer, l = jazyk prohlížeče, e = volitelná událost. Celý payload je nedůvěryhodný klientský vstup. order vytvoří prohlížečově neověřenou objednávku browser_unverified pro běžné statistiky, ne pro fakturaci nebo cenové pásmo. V běžném provozu je odpověď vždy 204; při překročení limitu vrací 429.

{ "v": 1, "t": "tlc_…", "u": "https://www.muj-eshop.cz/akce?utm_source=newsletter",
  "r": "https://www.google.com/", "l": "cs-CZ",
  "e": { "event_type": "search", "search_query": "tričko" } }

Volejte jen z prohlížeče návštěvníka: identita návštěvníka se počítá z IP adresy a User-Agentu požadavku - volání ze serveru by počítalo váš server jako jediného návštěvníka. Pro serverová napojení použijte dávkové API /ingest. Limity: 300 požadavků/min na návštěvníka, 4 KB na požadavek.

Vlastní platforma (API)

Jiná platforma nebo vlastní řešení? Napojte se přímo na API - nejjednodušší je začít hotovým příkladem:

Vlastní události ze serveru

Do pole events[] v podepsané dávce POST /ingest vložte stejný event_type jako v JS. Název může popisovat jakoukoli akci a volitelně můžete přidat id_object, quantity, value a currency.

"events": [{
  "id_event": 9001,
  "visitor_uuid": "0123456789abcdef0123456789abcdef",
  "date_add": "2026-07-30 10:15:00",
  "event_type": "lead_submitted",
  "page_type": "cms",
  "id_object": 123,
  "value": "1500.00",
  "currency": "CZK",
  "session_id": "abcdef0123456789abcdef0123456789"
}]

id_event musí být stabilní a jedinečné v rámci webu, aby bylo opakování dávky idempotentní. Pro spojení se zdrojem návštěvy posílejte také stejné visitor_uuid a session_id jako v touches[]. Objednávky a tržby posílejte přes orders[], ne pouze jako událost.

⬇ Hotový PHP příklad ke stažení
PHP 7.1+ · vyplníte api_key, spustíte a hotovo. Zvládne to i začátečník.
Stáhnout příklad (.php)

OpenAPI 3.0 Strojově čitelný kontrakt: /api/openapi.yaml - naimportujte do Postmanu nebo generátoru klientů. Nebo si ho prohlédněte rovnou tady v interaktivním Swagger UI.

Jak často posílat (doporučený postup)

Není to povinné - API přijme malou i velkou dávku kdykoli. Přesto důrazně doporučujeme neposílat samostatný požadavek na každou návštěvu nebo objednávku. Data v Trackless nejsou (a nemusí být) v reálném čase - reporty se počítají po dávkách, takže častým posíláním nic nezískáte, jen zbytečně přibývá přenosů a zátěže na vašem i našem serveru. Nejlepší a nejúspornější pro obě strany je sbírat data u sebe a posílat je dávkově.

  • Sbírejte data lokálně do fronty (vlastní tabulka nebo log) a odesílejte je dávkově, typicky 1× denně - ideálně v noci mimo špičku, přes cron.
  • Posílejte jen nová nebo změněná data. Spolehlivější než jen čas posledního 200 je značit si odeslané řádky (příznakem „odesláno“ nebo podle updated_at); objednávky, kterým se změnil stav, díky idempotentnímu upsertu klidně pošlete znovu (krátký překryv).
  • Chcete čerstvější čísla? Klidně posílejte častěji (např. každou hodinu). Skutečný real-time ale potřeba není.
  • Držte dávku v rozumné velikosti - místo jedné obří dávky raději pošlete několik menších za sebou.
  • Číselníky (dimensions) stačí přikládat jen občas, když se změní - ne v každé dávce.
  • Opakování je bezpečné (ukládání je idempotentní, duplicity nevzniknou), ale opakujte jen při 429, 5xx nebo výpadku spojení - kódy 400/403/409/413 jsou trvalé chyby na straně klienta, tam opravte požadavek nebo klíč, ne smyčku opakování.

Přesně takto fungují i naše oficiální moduly a pluginy pro PrestaShop, WordPress/WooCommerce, Joomla / VirtueMart, OpenCart, Magento 2, Shopware 6 i Sylius: data sbírají průběžně do lokální fronty a cronem je po dávkách odešlou (typicky jednou denně; velká fronta odejde jako několik dávek za sebou).

Endpoint

POST  https://trackless.cz/ingest

Autentizace

Každý požadavek je podepsán HMAC-SHA256 z přesného (raw) těla požadavku, klíčem je api_key daného webu (získáte ho po přidání webu v sekci Moje weby a později v Můj účet). Podpis se posílá v hlavičce X-Shaim-Signature jako malými písmeny zapsaný hex.

Upřímná poznámka: měření JS kódem může část návštěv minout, pokud prohlížeč nebo rozšíření blokuje externí měřicí skripty. Serverové moduly pro PrestaShop, WordPress/WooCommerce, Joomla / VirtueMart, OpenCart, Magento 2, Shopware 6 a Sylius měří přímo na serveru, takže jsou přesnější. Objednávky ze serverového modulu, samostatné serverové integrace nebo HMAC podepsaného /ingest se označí server_verified. Klientský order z veřejného JS se uloží jako browser_unverified: vstupuje do běžných statistik objednávek, tržeb a konverzí, ale ne do fakturace ani cenového pásma. Položky objednávek a marže jsou dostupné jen ze serverových integrací.

Hlavičky

HlavičkaPovinnáPopis
Content-Typeanoapplication/json
X-Shaim-SignatureanoHMAC-SHA256(raw body, api_key), hex
X-Shaim-AccountanoVeřejný routing identifikátor: prvních 24 hex znaků z sha256(api_key). Autentizaci stále zajišťuje jen HMAC podpis.
X-Shaim-ModuleneIdentifikace integrace, např. woocommerce (jen pro přehled v ingest logu)
X-Shaim-VersionneVerze vaší integrace

Tělo požadavku

Jeden JSON objekt - dávka. Všechny kolekce jsou volitelné; pošlete jen to, co máte. Hodnoty mohou být řetězce (API je normalizuje). Klíčové části:

PoleTypPopis
shopobjekt{ "id": 1, "domain": "muj-eshop.cz" }
touchespoleNávštěvy / zdroje (UTM, referer, kanál, session).
orderspoleObjednávky vč. tržeb a atribuce.
order_itemspolePoložky objednávek vč. wholesale_price (nákupní cena pro marži).
eventspoleUdálosti (zobrazení produktu, vyhledávání, …).
clientpoleKontext návštěvníka (server-side): zařízení, prohlížeč, OS, země, jazyk.
dimensionsobjektČíselníky: stavy objednávek, dopravci, kategorie, měny, jazyky, platební moduly.

Úplný seznam polí každé kolekce je v OpenAPI specifikaci.

Příklad těla

{
  "shop": { "id": 1, "domain": "muj-eshop.cz" },
  "orders": [
    { "id_order": 5001, "id_customer": 42, "total_paid": "1290.00",
      "currency": "CZK", "payment": "Card", "date_order": "2026-06-02 10:40:00",
      "current_state": 2, "lt_source": "google", "lt_medium": "cpc" }
  ],
  "order_items": [
    { "id_order_item": 9001, "id_order": 5001, "id_product": 7, "product_name": "Tričko",
      "quantity": 2, "unit_price_tax_excl": "533.06", "total_price_tax_excl": "1066.12",
      "total_price_tax_incl": "1290.00", "wholesale_price": "300.00" }
  ]
}

Odpovědi

KódVýznam
200 OKDávka byla úspěšně a trvale uložena.
400Chybí tělo/podpis nebo neplatný JSON.
403Neplatný podpis nebo neznámý účet.
409Stejný api_key byl použit pro druhý e-shop (jiná doména u téhož ID shopu). Nic se neuložilo - je to trvalý konflikt nastavení, ne výpadek: neopakujte, opravte klíč (každý web má mít vlastní api_key). Tělo odpovědi říká, co udělat.
413Tělo požadavku je příliš velké (limit 8 MB) - dávku rozdělte na menší části.
429Překročen rate limit - dávku po krátké pauze odešlete znovu.
500Uložení selhalo - dávku odešlete znovu.

Idempotence: ukládání je idempotentní (insert-ignore + upsert podle ID), takže stejnou dávku můžete bez obav poslat znovu. Deduplikace je podle přirozeného klíče (objednávky dle id_order - upsert, takže změněnou objednávku stačí poslat znovu; položky dle id_order_item; návštěvy a události dle svého ID) - vždy posílejte skutečné ID, chybějící spadne na 0 a řádky se přepíšou. Status 200 berte jako úspěch až po potvrzeném uložení.

Tělo úspěšné odpovědi 200 je JSON {"ok":true,"excluded_ips":[…],"geoip":{…}}. excluded_ips je centrální seznam vyloučených IP účtu (přesné IP i CIDR rozsahy, IPv4 i IPv6) - integrace ho má přečíst a před dalším odesláním lokálně zahodit zásahy, jejichž IP některé položce odpovídá (vaše integrace zná reálnou IP, server dostává jen solený hash). geoip je ukazatel na aktuální databázi IP→země (DB-IP Lite, CC BY 4.0) s poli version, sha256url; porovnejte sha256 se svou lokální kopií a stáhněte ji znovu jen při změně (totéž jako GET /api/geoip/country.json nebo /api/geoip/country.dat.gz). Klienti, kteří tělo ignorují a kontrolují jen stavový kód, fungují beze změny.

Endpointy /ingest i /collect mohou při nárazovém provozu vrátit 429 (rate limit) - klient krátce počká a odešle znovu.

Příklady podepsání a odeslání

Nejjednodušší je stáhnout hotový PHP příklad. Tady je stručná ukázka:

PHP

$apiKey = 'VAS_API_KEY';
$body = json_encode(['shop' => ['id' => 1, 'domain' => 'muj-eshop.cz'], 'orders' => []],
                    JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$sig  = hash_hmac('sha256', $body, $apiKey);
$accountId = substr(hash('sha256', $apiKey), 0, 24);

$ch = curl_init('https://trackless.cz/ingest');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'X-Shaim-Signature: ' . $sig,
    'X-Shaim-Account: ' . $accountId,
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE); // 200 = uloženo
// Na 200 nese tělo seznam vyloučených IP účtu - uložte si ho a před
// dalším odesláním zahoďte zásahy s odpovídající IP (přesná shoda i CIDR).
$excludedIps = $status === 200 ? (json_decode($response, true)['excluded_ips'] ?? []) : [];

Node.js

import crypto from 'node:crypto';
const apiKey = 'VAS_API_KEY';
const body = JSON.stringify({ shop: { id: 1, domain: 'muj-eshop.cz' }, orders: [] });
const sig = crypto.createHmac('sha256', apiKey).update(body).digest('hex');
const accountId = crypto.createHash('sha256').update(apiKey).digest('hex').slice(0, 24);
const res = await fetch('https://trackless.cz/ingest', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', 'X-Shaim-Signature': sig, 'X-Shaim-Account': accountId },
  body,
});
console.log(res.status); // 200 = uloženo

Upřímná poznámka: měření JS kódem může část návštěv minout, pokud prohlížeč nebo rozšíření blokuje externí měřicí skripty. Serverové moduly pro PrestaShop, WordPress/WooCommerce, Joomla / VirtueMart, OpenCart, Magento 2, Shopware 6 a Sylius měří přímo na serveru, takže jsou přesnější. Objednávky ze serverového modulu, samostatné serverové integrace nebo HMAC podepsaného /ingest se označí server_verified. Klientský order z veřejného JS se uloží jako browser_unverified: vstupuje do běžných statistik objednávek, tržeb a konverzí, ale ne do fakturace ani cenového pásma. Položky objednávek a marže jsou dostupné jen ze serverových integrací.

Read-only API - stažení vašich dat

Kromě posílání dat do Trackless si je můžete i programově stahovat ven jako JSON - pro vlastní reporty, BI nástroj nebo automatizaci. Slouží k tomu samostatný read-only token (oddělený od ingest api_key; kdykoli ho můžete přegenerovat, čte jen váš účet).

Svůj read-only token najdete a spravujete po přihlášení v sekci Můj účet.

Endpointy

GET  https://trackless.cz/api/v1/export/all
GET  https://trackless.cz/api/v1/export/{report}
GET  https://trackless.cz/api/v1/bi/daily

{report} je jeden z: pages, products, channels, categories, campaigns, search, events, devices, os, browsers, countries. Parametry (volitelné): from, to (RRRR-MM-DD), shop, basis=products|total, attr=lt|ft, vat=0|1.

Autentizace

Token pošlete v hlavičce Authorization: Bearer <token> (doporučeno) nebo X-Api-Key: <token>. Parametr ?token= funguje také, ale použijte ho jen pro rychlé vyzkoušení - končí v historii prohlížeče a v serverových/proxy logách.

curl -H "Authorization: Bearer VAS_READ_TOKEN" \
  "https://trackless.cz/api/v1/export/all?from=2026-05-01&to=2026-05-31"

Odpověď /export/all je JSON s klíči kpis, traffic, behaviour, profit, cancelled a reports (každý report je pole objektů). kpis vedle celkových hodnot obsahuje plochá pole server_verified_orders, server_verified_revenue, browser_unverified_orders a browser_unverified_revenue. Odpověď jednoho /export/{report} obsahuje objekt order_verification ve tvaru {server_verified:{orders,revenue}, browser_unverified:{orders,revenue}}. Stejná data jako dashboard a in-app export.

Looker Studio a denní BI data

Endpoint GET /api/v1/bi/daily vrací plochou denní časovou řadu pro BI nástroje. Rozsah fromto je včetně obou krajních dnů, řádky jsou vzestupně a den bez aktivity dostane nulový řádek. Filtry: shop, attr=lt|ft, basis=products|total a vat=0|1.

curl -H "Authorization: Bearer VAS_READ_TOKEN" \
  "https://trackless.cz/api/v1/bi/daily?from=2026-05-01&to=2026-05-31&attr=lt&basis=products&vat=0"

Jak bude připojení fungovat

  1. Do Looker Studio se přihlásíte vlastním Google účtem.
  2. V konektoru zadáte vlastní Trackless read-only token. Token patří do zabezpečených údajů konektoru, ne do URL ani sdílené šablony.
  3. Konektor načte přes zabezpečenou hlavičku jen účet určený tímto tokenem a z něj vytvoří Váš datový zdroj.
  4. Použijete vlastní report nebo kopii připravené šablony. Správce společného konektoru nezíská přístup k Vašemu Google účtu ani reportu.

Odpověď obsahuje account, range, filters a rows. Každý řádek má stabilní anglické klíče a číselné hodnoty pro návštěvnost, objednávky, tržby, vratky, ziskovost, pokrytí nákupních cen, reklamní náklady a ROAS. Objednávky a tržby rozdělují pole server_verified_orders, server_verified_revenue, browser_unverified_orders a browser_unverified_revenue. Technická pole gross_profit_revenue, cost_lines_with_cost a cost_lines_total umožňují správně přepočítat vážené ukazatele při seskupení dnů do týdnů nebo měsíců.

Význam metrik: conversion_rate, gross_margin_pct a cost_coverage_pct jsou procenta v rozsahu 0-100. Ziskovost vždy vychází z produktových řádků bez DPH. Použije jejich skutečnou nákupní cenu; pokud chybí a e-shop má nastavenou výchozí marži, použije tento odhad. cost_coverage_pct ale počítá pouze řádky se skutečnou nákupní cenou. Výpočet ziskovosti je nezávislý na zvolené hlavní bázi tržeb. Reklamní náklady jsou vedené za celý účet; při filtru na jeden e-shop jsou ad_cost a roas null, protože je Trackless uměle nerozděluje mezi e-shopy.

MVP omezení: jeden Google uživatel má v konektoru současně uložené přihlášení k jednomu Trackless účtu. Více e-shopů uvnitř tohoto účtu je podporováno filtrem shop.

Sdílený Looker Studio konektor je aktivní. Přihlaste se vlastním Google účtem a vložte vlastní Trackless read-only token.

Připojit Trackless k Looker Studio

← Zpět na úvod