Google Tag Manager
Nejrychlejší cesta k nasazení SEM. GTM šablona za vás řeší načítání skriptu, hashování uživatelských dat i Consent Mode – vy jen nakonfigurujete tagy a napojíte je na dataLayer.
Tato dokumentace vychází z GTM šablony Pavla Šabatky
Šablona je dostupná v GTM Community Gallery i na GitHubu. Plná dokumentace autora: sabatka.net.
Krok 1 – Najděte SEM ID
GTM šablona vyžaduje SEM ID – viz Kde najdu SEM ID?.
Správný postup:
- Přejděte do Sklik → Nastavení účtu
- U příslušného záznamu klikněte na ikonu kopírovat vedle SEM ID
- Pokud máte provozovny Zboží.cz, použijte kombinované SEM ID příslušné provozovny
Krok 2 – Nainstalujte šablonu do GTM
1. Otevřete GTM kontejner
Přihlaste se do Google Tag Manager a otevřete kontejner webu.
2. Přidejte šablonu z Galerie
V levém menu klikněte na Šablony → Galerie šablon. Vyhledejte „Seznam SEM“ nebo „Sabatka“ a šablonu přidejte do kontejneru, nebo použijte přímý odkaz do GTM Gallery.
Krok 3 – Vytvořte tag pro PageView
PageView tag se spouští na každé stránce. Je to základ celé implementace – inicializuje SEM skript a odesílá základní data o návštěvě.
1. Vytvořte nový tag
Tagy → Nový → vyberte typ Seznam SEM (šablona, kterou jste přidali).
2. Vyplňte povinná pole
| Pole | Hodnota |
|---|---|
| Seznam ID | Vaše SEM ID zkopírované v Kroku 1 |
| Název události | PageView |
3. Nastavte spouštěč
Přiřaďte spouštěč All Pages (nebo ekvivalentní trigger pro všechna zobrazení stránky ve vaší SPA).
4. Nastavte Consent Mode
Pokud váš web používá Consent Mode v2, nechte zaškrtnutou volbu „Používám Consent Mode v2″ – šablona přečte stav souhlasů automaticky.
Pokud Consent Mode v2 nepoužíváte, odškrtněte volbu a vyplňte stav souhlasů ručně. Více v sekci Správa souhlasů.
Krok 4 – E-commerce tagy
Pro každou sledovanou akci (zobrazení produktu, košík, nákup…) vytvořte samostatný tag. Každý tag čte data z dataLayer – proto je potřeba, aby váš web při příslušných akcích tato data do dataLayer odesílal.
Formát dataLayer
Šablona akceptuje produktová data ve formátu Google Enhanced Ecommerce (GA4) nebo Shoptet. Pokud na webu již máte GA4 ecommerce implementaci, můžete data z dataLayer znovu použít beze změn.
ViewContent
Push do dataLayer na stránce detailu produktu:
dataLayer.push({
event: 'seznam_view_content', // název triggeru v GTM
ecommerce: {
currency: 'CZK',
value: 33490,
items: [{
item_id: 'ABC12345',
item_name: 'iPhone 15 Pro Max',
item_category: 'Elektronika | Mobilní telefony | Apple',
price: 33490,
quantity: 1
}]
}
});
Konfigurace tagu v GTM:
| Pole | Hodnota |
|---|---|
| Název události | ViewContent |
| Content Type | (detail produktu) nebo product_group (kategorie) |
| Products | Proměnná GTM: |
| Currency | Proměnná GTM: {{ecommerce.currency}} |
| Value | Proměnná GTM: |
AddToCart
Push do dataLayer při přidání do košíku:
dataLayer.push({
event: 'seznam_add_to_cart',
ecommerce: {
currency: 'CZK',
value: 33490,
items: [{
item_id: 'ABC12345',
item_name: 'iPhone 15 Pro Max',
item_category: 'Elektronika | Mobilní telefony | Apple',
price: 33490,
quantity: 1
}]
}
});
Konfigurace tagu: Název události = AddToCart, Products = {{ecommerce.items}}.
Purchase
Push do dataLayer na stránce potvrzení objednávky:
dataLayer.push({
event: 'seznam_purchase',
ecommerce: {
transaction_id: 'OBJ-987654',
currency: 'CZK',
value: 33990, // cena produktů bez DPH
tax: 7138,
shipping: 120,
items: [
{
item_id: 'ABC12345',
item_name: 'iPhone 15 Pro Max',
item_category: 'Elektronika | Mobilní telefony | Apple',
price: 33490,
quantity: 1
},
{
item_id: 'KRYT999',
item_name: 'Ochranný kryt',
item_category: 'Elektronika | Příslušenství | Kryty na telefon',
price: 500,
quantity: 1
}
]
},
// review_email předejte mimo objekt ecommerce – nebude hashován
review_email: 'zakaznik@email.cz'
});
Konfigurace tagu v GTM:
| Pole | Hodnota |
|---|---|
| Název události | Purchase |
| Order | Proměnná GTM mapující ecommerce objekt |
| Products | Proměnná GTM: {{ecommerce.items}} |
| Content Type | product |
review_email nesmí být hashován
Šablona automaticky hashuje uživatelská data SHA-256. Parametr review_email pro dotazník spokojenosti Zboží.cz předejte mimo user objekt – jinak bude hashován a dotazník nebude fungovat.
Implementace bez šablony (Vlastní HTML)
SEM lze v GTM nasadit dvěma způsoby – přes GTM šablonu (popsanou výše) nebo ručně přes tagy typu Vlastní HTML. Obě cesty jsou plnohodnotné, volba záleží na vašich preferencích a stávající struktuře GTM kontejneru. Vlastní HTML tagy dávají větší kontrolu nad spouštěním a nevyžadují instalaci šablony.
Doporučená struktura tagů
Vytvořte tři typy tagů:
| Tag | Obsah | Spouštěč |
|---|---|---|
| Seznam SEM – base | Načtení sul.js | All Pages |
| Seznam SEM – pageview event | Odeslání události PageView | All Pages |
| Seznam SEM – [název] event | Odeslání konkrétní události | Příslušný trigger |
Kódy tagů
base – načte skript, neodesílá žádnou událost:
<script src="https://l.seznam.cz/sul.js?id=VASE_SEM_ID"></script>
pageview event – odešle PageView (spouštět na All Pages):
<script>
if (typeof window.SEM === "function") {
SEM('track', 'PageView');
}
</script>
Ostatní události (Contact, Lead apod.) – stejný vzor:
<script>
if (typeof window.SEM === "function") {
SEM('track', 'Contact');
}
</script>
Sekvence spouštění tagů
Protože se sul.js načítá asynchronně, ostatní event tagy musí mít nastavenou sekvenci spouštění – v nastavení tagu zaškrtněte „Spustit značku před spuštěním této značky“ a vyberte tag base. Bez tohoto nastavení může být window.SEM při spuštění eventu ještě nedostupné a událost se neodešle. Priorita spuštění tagů v GTM pro asynchronní skripty nestačí.
Doporučená sada tagů
Vytvořte jeden tag na každý typ stránky/akce:
| Stránka / akce | Tag (událost) | Spouštěč |
|---|---|---|
| Všechny stránky | PageView | All Pages |
| Detail produktu | ViewContent (content_type: product) | Custom event: seznam_view_content |
| Stránka kategorie | ViewContent (content_type: product_group) | Custom event: seznam_view_category |
| Přidání do košíku | AddToCart | Custom event: seznam_add_to_cart |
| Zahájení objednávky | InitiateCheckout | Custom event: seznam_initiate_checkout |
| Potvrzení objednávky | Purchase | Custom event: seznam_purchase |
| Vyhledávání | Search | Custom event: seznam_search |
| Odeslání formuláře | Lead | Custom event nebo Form Submit trigger |
Názvy custom eventů jsou libovolné
Události jako seznam_purchase jsou jen doporučené konvence. Pokud již máte v dataLayer jiné názvy (např. z GA4 implementace), použijte ty – stačí nastavit odpovídající trigger v GTM.
Uživatelská data v GTM
Pro předání e-mailu nebo jiných uživatelských dat použijte v konfiguraci tagu sekci User Object. Šablona data automaticky hashuje SHA-256 před odesláním – předávejte je v čitelné podobě.
Typicky stačí přidat User Object do PageView tagu (nebo do samostatného UserDataUpdate tagu) a nakonfigurovat proměnnou z dataLayer, cookie nebo JS proměnné, kde e-mail uživatele máte k dispozici.
dataLayer.push({
event: 'seznam_user_data',
user: {
email: 'jan.novak@email.cz', // hashuje šablona automaticky
phone: '+420606666666',
first_name: 'Jan',
last_name: 'Novák'
}
});
Content Security Policy
Pokud váš web používá CSP hlavičky, přidejte tato povolení:
Content-Security-Policy:
script-src l.seznam.cz; /* lze vynechat pokud GTM používá nonce */
connect-src https://*.seznam.cz; /* l.seznam.cz + sem.seznam.cz */
Pokud měření nefunguje, zkontrolujte v konzoli prohlížeče chybu „Refused because of Content Security Policy“.
|
📋
Reference událostí
Kompletní parametry pro každou událost.
|
🧪
Testování
Ověřte implementaci v Sandboxu před přepnutím.
|
🔐
Consent Mode
Nastavení souhlasů bez Consent Mode v2.
|