Nápověda menu

Základní skript

Nejuniverzálnější způsob nasazení – kód vložíte přímo do HTML šablony webu. Vhodné pro vývojáře s přímým přístupem ke zdrojovému kódu.

Před začátkem

Budete potřebovat:

  • SEM ID – viz Kde najdu SEM ID?
  • Přístup k HTML šablonám vašeho webu (sekce <head>)

Pro jaké weby se přímý skript hodí?
Přímá implementace je vhodná zejména pro jednoduché weby – prezentace, jednostránkové weby, weby služeb bez e-commerce. Pro e-shopy s GTM doporučujeme GTM šablonu, která lépe pokryje e-commerce události.

Krok 1 – Zkopírujte skript z Nastavení účtu

V Sklik → Nastavení účtu klikněte u příslušného SEM ID na tlačítko Zobrazit SEM kód. Otevře se dialog s kompletním skriptem – zkopírujte ho a vložte do sekce <head> na každé stránce vašeho webu.

Skript vypadá takto:

<!-- Vložte do <head> na každé stránce webu -->
<script src="https://l.seznam.cz/sul.js?id=VASE_SEM_ID"></script>
<script>
if (typeof window.SEM === "function") {
  SEM('track', 'PageView');
}
</script>

Skript zajistí:

  • Automatické odeslání PageView při každém načtení stránky
  • Zápis cookies sid a udid pro identifikaci uživatele
  • Automatické načítání souhlasu z IAB TCF API (pokud váš web TCF používá)

Pokud váš web používá standardizované IAB Transparency and Consent Framework (TCF), consent se předává automaticky – tento krok přeskočte.

Pokud TCF nepoužíváte, předejte informaci o souhlasu ručně metodou updateConsent – vždy před voláním PageView:

const consentData = {
  consent_mode: {
    ad_storage: 'granted',          // ukládání cookie
    ad_user_data: 'granted',        // zpracování identifikátorů
    ad_personalization: 'granted',  // personalizace reklamy
    functionality_storage: 'denied',
    analytics_storage: 'denied'
  }
};

SEM('updateConsent', consentData);

Souhlas musí předcházet PageView
Cookie sid se vygeneruje až po přijetí souhlasu s ad_storage: 'granted'. Pokud předáte consent až po PageView, sid nemusí být k dispozici – to se projeví zejména u S2S měření, kde cookies číst explicitně musíte.

Krok 3 – Odešlete uživatelská data (volitelné, doporučené)

Po přihlášení uživatele nebo po dokončení objednávky doporučujeme odeslat uživatelská data – e-mail zákazníka – ideálně před voláním PageView. Skript ho automaticky zahashuje (SHA-256) a slouží k přesnému párování konverzí i bez cookies.

const userData = {
  em: "jan.novak@email.cz",   // klíčový identifikátor – hashuje se automaticky
  ph: "+420606666666",
  fn: "Jan",
  ln: "Novák"
};

SEM('updateUserData', userData);

Hashování probíhá automaticky
Hodnoty můžete předávat v čitelné podobě. SEM skript je normalizuje a zahashuje algoritmem SHA-256 přímo v prohlížeči před odesláním. Výjimka: parametr review_email v události Purchase – ten se nesmí hashovat, aby mohlo dojít k odeslání dotazníku spokojenosti k uskutečněnému nákupu.

Krok 4 – Přidejte události na relevantní stránky

Na stránkách produktů, košíku, pokladny a děkovné stránce přidejte odpovídající události. Kompletní seznam viz Reference událostí.

Příklad komplexního kódu pro stránku produktu:

<!-- V <head> -->
<script src="https://l.seznam.cz/sul.js?id=VASE_SEM_ID"></script>

<!-- Za tělem stránky, po načtení dat produktu -->
<script>
if (typeof window.SEM === "function") {

  // 1. Consent – pokud nepoužíváte IAB TCF, předejte souhlas ručně
  SEM('updateConsent', {
    consent_mode: {
      ad_storage: 'granted',
      ad_user_data: 'granted',
      ad_personalization: 'granted',
      analytics_storage: 'granted',
      functionality_storage: 'granted'
    }
  });

  // 2. Uživatelská data – volitelné, doporučené u přihlášených uživatelů
  SEM('updateUserData', {
    em: 'jan.novak@email.cz'  // hashuje se automaticky
  });

  // 3. PageView
  SEM('track', 'PageView');

  // 4. ViewContent – detail produktu (pro DRTG a retargeting)
  SEM('track', 'ViewContent', {
    content_type: 'product',
    currency: 'CZK',  // podporováno pouze CZK
    value: 27677,          // bez DPH
    contents: [{
      id: 'ABC12345',
      content_name: 'iPhone 15 Pro Max',
      content_category: 'Elektronika | Mobilní telefony | Apple',
      unit_price: 33490      // s DPH
    }]
  });
}
</script>

Content Security Policy (CSP)

Pokud váš web používá CSP hlavičky, přidejte tyto povolené zdroje:

Content-Security-Policy:
  script-src l.seznam.cz;
  connect-src https://*.seznam.cz;

SPA aplikace (React, Vue, Next.js…)

U jednostránkových aplikací se stránka nenačítá znovu při navigaci. PageView proto volejte manuálně při každé změně routy:

import { useEffect } from 'react';
import { useLocation } from 'react-router-dom';

function PageViewTracker() {
  const location = useLocation();
  useEffect(() => {
    if (typeof window.SEM === 'function') {
      SEM('track', 'PageView');
    }
  }, [location.pathname]);
  return null;
}
📋
Reference událostí
Kompletní seznam událostí a parametrů pro každou stránku webu.
🔐
Správa souhlasů
Podrobnosti o předávání souhlasů dle TCF a Google Consent Mode.
🧪
Testování
Jak ověřit správnost implementace v testovacím prostředí.

Více SEM ID na jedné stránce

Pokud provozujete web, kde potřebujete měřit pro více různých účtů Skliku zároveň (např. marketplace s více prodejci, nebo web kombinující vlastní měření a měření pro klienta), nastavte sem_id přímo v každém volání track. SEM ID zadané v track má přednost před globálně nastaveným ID v konfiguraci.

// Měření pro první účet
SEM('track', 'PageView', {
  sem_id: 'VASE_SEM_ID_1'
});

// Měření pro druhý účet (stejná událost, jiné SEM ID)
SEM('track', 'PageView', {
  sem_id: 'VASE_SEM_ID_2'
});

sem_id v track vs. v konfiguraci
Globální sem_id nastavený přes SEM('config', ...) se použije pro všechna volání, kde sem_id není explicitně uvedeno. Jakmile sem_id zadáte přímo v track, přepíše globální hodnotu pouze pro toto jedno volání.

Potřebujete další pomoc?

Pokud si stále nevíte rady, obraťte se na naše specialisty. 95 % vašich dotazů umíme vyřešit do 2 hodin.