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í.
| 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
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
api_key.Požadavky: WordPress 6.2+, PHP 7.4+ (WooCommerce volitelně - 6.0+, 8.5+ pro atribuci zdrojů objednávek).
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.
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).
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.
api_key a potvrďte zpracovatelskou smlouvu.Požadavky: Shopware 6.4+, PHP 7.4+. Měří na serveru vč. objednávek a položek.
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).
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.
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.
api_key, spustíte a hotovo. Zvládne to i začátečník.
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
200je značit si odeslané řádky (příznakem „odesláno“ nebo podleupdated_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,5xxnebo výpadku spojení - kódy400/403/409/413jsou 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čka | Povinná | Popis |
|---|---|---|
Content-Type | ano | application/json |
X-Shaim-Signature | ano | HMAC-SHA256(raw body, api_key), hex |
X-Shaim-Account | ano | Veřejný routing identifikátor: prvních 24 hex znaků z sha256(api_key). Autentizaci stále zajišťuje jen HMAC podpis. |
X-Shaim-Module | ne | Identifikace integrace, např. woocommerce (jen pro přehled v ingest logu) |
X-Shaim-Version | ne | Verze 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:
| Pole | Typ | Popis |
|---|---|---|
shop | objekt | { "id": 1, "domain": "muj-eshop.cz" } |
touches | pole | Návštěvy / zdroje (UTM, referer, kanál, session). |
orders | pole | Objednávky vč. tržeb a atribuce. |
order_items | pole | Položky objednávek vč. wholesale_price (nákupní cena pro marži). |
events | pole | Události (zobrazení produktu, vyhledávání, …). |
client | pole | Kontext návštěvníka (server-side): zařízení, prohlížeč, OS, země, jazyk. |
dimensions | objekt | Čí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ód | Význam |
|---|---|
200 OK | Dávka byla úspěšně a trvale uložena. |
400 | Chybí tělo/podpis nebo neplatný JSON. |
403 | Neplatný podpis nebo neznámý účet. |
409 | Stejný 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. |
413 | Tělo požadavku je příliš velké (limit 8 MB) - dávku rozdělte na menší části. |
429 | Překročen rate limit - dávku po krátké pauze odešlete znovu. |
500 | Ulož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, sha256 a url; 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 from až to 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
- Do Looker Studio se přihlásíte vlastním Google účtem.
- V konektoru zadáte vlastní Trackless read-only token. Token patří do zabezpečených údajů konektoru, ne do URL ani sdílené šablony.
- Konektor načte přes zabezpečenou hlavičku jen účet určený tímto tokenem a z něj vytvoří Váš datový zdroj.
- 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.