← Informace pro zákazníky

Souhlas s cookies — znění v2

Souhlas s cookies — archivované znění v2Účinné od 28. 9. 2026 · kontrolní součet 50296fd05161e36cTohle je uložená kopie pro doložení, s jakým zněním byla uzavřena smlouva. Aktuální znění
;
  // Po půl roce se zeptáme znovu — tak dlouho se souhlas ještě dá brát jako aktuální.
  var PLATNOST = 182 * 24 * 60 * 60 * 1000;

  /* ---------- souhlas ---------- */

  /* Cookie: 
 se čtou dál, ať nikdo nemusí volit znovu. */
  /* Verze souhlasu. 19. 9. 2026 přibyl do marketingu remarketing (naše reklama na jiných webech).
     Kdo dřív souhlasil s marketingem, souhlasil s užším účelem — na marketing se lišta zeptá znovu.
     Souhlas s měřením se tím nemění, takže platí dál (příznak doptat = zeptat se jen na marketing).
     Odmítnutí marketingu platí dál, to se neptáme. */
  var VERZE = 
;

  function volba() {
    var m = document.cookie.match(/(?:^|;\s*)tl_souhlas=([^;]*)/);
    var v = m ? decodeURIComponent(m[1]) : 
 = souhlas s měřením i marketingem. Měření platí, marketing se doptáme.
    if (v === 
) > -1 };
    if (s.marketing && v.indexOf(VERZE) < 0) { s.marketing = false; s.doptat = true; }
    return s;
  }

  function uloz(s) {
    var d = new Date(Date.now() + PLATNOST);
    document.cookie = COOKIE + 
);
  }

  function nic() { return { mereni: false, marketing: false }; }

  /* ---------- zdroj návštěvy pro objednávku ----------
     Katalog běží v Astru, košík a pokladna ve WordPressu, takže WooCommerce vidí jako vstupní stránku
     až /kosik/ a každou objednávku hlásí jako „direct“. Zdroj si proto uložíme sami do cookie tl_zdroj
     a WordPress si ji při objednávce přečte (mu-plugin tl-atribuce.php).
     Zapisujeme jen se souhlasem s měřením. Poslední nepřímý zdroj vyhrává, přímá návštěva nic nepřepíše. */
  var ZDROJ_COOKIE = 
 };
      }
    }
    return null;
  }

  function ulozZdroj() {
    var z = zdrojZAdresy();
    if (!z) return;                       // přímá návštěva dřívější zdroj nepřepisuje
    z.l = location.pathname;
    z.t = new Date().toISOString();
    var d = new Date(Date.now() + ZDROJ_PLATNOST);
    document.cookie = ZDROJ_COOKIE + 
);
  }

  function smazZdroj() {
    document.cookie = ZDROJ_COOKIE + 

    };
  }

  // Výchozí stav je odmítnuto — pro všechny, ne jen pro EHP. Chybná detekce
  // země by měřila lidi, kteří k tomu nedali souhlas; jednotný bezpečný stav
  // takovou chybu udělat nemůže.
  var v = volba();
  if (v && v.mereni) { ulozZdroj(); }

  /* Adresa stránky, kterou hlásíme Googlu.
     Na potvrzení objednávky je v URL klíč key — kdo ho má, zobrazí si
     celou objednávku i s adresou zákazníka. Do měření nepatří. Ladicí
     parametr taky ne, jinak by se stránka v přehledech tříštila.
     Zbytek adresy zůstává nedotčený, aby dál fungovaly utm značky i gclid. */
  function adresaProMereni() {
    try {
      var u = new URL(location.href);
      // Do měření nesmí jít nic, čím se dá přihlásit nebo co identifikuje člověka.
      [
].forEach(function (p) {
        u.searchParams.delete(p);
      });
      return u.toString();
    } catch (e) {
      return location.href;
    }
  }

  /* ---------- Basic Consent Mode ----------
     Rozhodnutí z 28. 9. 2026: bez souhlasu neodchází třetí straně nic, ani
     stav souhlasu. Dřív to byl Advanced režim — gtag.js se načítal vždycky
     a i po odmítnutí posílal Googlu cookieless ping s identifikátorem,
     rozlišením, údaji o zařízení, adresou a titulkem stránky.

     Proto se gtag.js nenačte, dokud nemáme souhlas alespoň s jednou
     kategorií, a příkazy pro gtag se do dataLayeru nedostanou dřív —
     jinak by Google zpracoval událost bez consent default před ním.
     Do té doby čekají v gaFronta. Naše vlastní vrstva v dataLayeru
     (objekty {event, ecommerce} z tl-mereni.php) se nemění, stejně jako
     názvy událostí.

     Gating je po účelech, ne „souhlas s čímkoli = spustit všechno“:
       měření   → GA4 s analytics_storage granted, ad_* zůstává denied
       marketing → ad_* granted, navíc GTM, Seznam SEM a Heureka

     Pozor na ladění: ?tl_debug=1 i =2 teď taky potřebují souhlas, protože
     i suchý běh by načetl gtag.js z googletagmanager.com. Kdo chce ladit,
     dá si ve vlastním prohlížeči souhlas. */
  var gaFronta = [];
  var gaSpusteno = false;

  function ga() {
    if (gaSpusteno) gtag.apply(null, arguments);
    else gaFronta.push(arguments);
  }

  function spustGa(s) {
    if (gaSpusteno || REZIM === 
) return;
    if (!s || (!s.mereni && !s.marketing)) return;   // bez souhlasu se nenačítá nic
    gaSpusteno = true;

    var vychozi = stav(s);
    vychozi.functionality_storage = 
);
      document.head.appendChild(sc);
    }

    while (gaFronta.length) gtag.apply(null, gaFronta.shift());
  }

  spustGa(v);

  /* ---------- Seznam: Sklik a Zboží.cz (SEM) ----------
     Jeden skript Seznamu na PageView i nákupy. Souhlas stejný jako u Googlu:
     bez „Přijmout“ jde Seznamu consent denied (žádné reklamní cookies), po
     souhlasu granted. Volání před načtením skriptu čekají ve frontě.
     Sklik tag NEVKLÁDAT do GTM — nákupy by se počítaly dvakrát.
     Suchý běh ladění (?tl_debug=2) Seznam vůbec nenačítá. */
  var semFronta = [];
  var semNacteno = false;
  function semSouhlas(s) {
    var h = s.marketing ? 
;
    // Seznam chce všech pět polí. Když jedno chybí, celé updateConsent zahodí
    // a události odcházejí bez souhlasu (nespárují se s kliknutím na reklamu).
    // functionality_storage je nezbytné stejně jako u Googlu výše.
    return { consent_mode: { ad_storage: h, ad_user_data: h, ad_personalization: h,
      analytics_storage: m, functionality_storage: 
 &&
            o.body.indexOf(semKlic) > -1) {
          var o2 = {};
          for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) o2[k] = o[k];
          o2.body = semBezKlice(o.body);
          return semPuvodniFetch.call(window, u, o2);
        }
      } catch (e) { }
      return semPuvodniFetch.apply(window, arguments);
    };
  }
  /* Skript Seznamu je reklamní měření (Sklik, Zboží.cz, retargeting), takže
     se načítá jen se souhlasem s marketingem. Dřív se načítal vždycky se
     signály denied a i tak odcházel požadavek na sem.seznam.cz/rtgconv.
     Souhlas jen s měřením Seznam nespustí — analytickou vrstvu tu nemáme. */
  function nactiSem(s) {
    if (REZIM === 
) return;
      semNacteno = true;
      // Pořadí podle Seznamu: nejdřív souhlas, pak PageView, pak čekající události.
      window.SEM(
, semSouhlas(volba() || nic()));
      window.SEM(
, nazev, p);
  }

  /* ---------- Heureka: měření konverzí ----------
     Skript Heureky si z adresy prokliku (parametr hgtid) uloží cookie hg_ocm_id
     a na děkovací stránce podle ní spáruje objednávku s proklikem z Heureky.
     Je to reklamní cookie, proto se skript načte až se souhlasem s marketingem,
     stejně jako GTM. Když souhlas přijde později na téže stránce, načte se
     v rozhodni(). Volání do té doby čekají ve frontě window.heureka.q a bez
     souhlasu nikam neodejdou. Jen koruny (máme jen Heureka.cz). ID produktu
     = ITEM_ID ve feedu Heureky (tl-123), ceny s DPH, celkem včetně dopravy —
     „cena celé objednávky“ podle Heureky. Suchý běh (?tl_debug=2) Heureku nenačítá. */
  var heurekaStranka = 
;
  } catch (e) { }
  heurekaNacti();

  var kurzor = 0, bezi = false;
  function projdi() {
    if (bezi) return;   // posli() sám zapisuje do dataLayeru — nesmí se zacyklit
    bezi = true;
    try { while (kurzor < window.dataLayer.length) posli(window.dataLayer[kurzor++]); }
    finally { bezi = false; }
  }

  projdi();
  var puvodniPush = window.dataLayer.push;
  window.dataLayer.push = function () {
    var r = puvodniPush.apply(window.dataLayer, arguments);
    projdi();
    return r;
  };
  // gtag.js si dataLayer.push přebaluje sám a může nám ho nahradit. Kurzor
  // do pole si držíme vlastní, takže i pak žádnou událost neztratíme.
  setInterval(projdi, 2000);

  /* ---------- Google Tag Manager ----------
     Kontejner s marketingovými tagy. GA4 v něm schválně NENÍ (měří přímo tenhle
     soubor) a Sklik taky ne (měří se přes SEM výš, jinak by se nákupy počítaly dvakrát).

     Načte se až po souhlasu s marketingem. Samotné načtení kontejneru spustí tagy,
     které o Consent Mode nemusí vědět, takže u odmítnutého souhlasu se nespouští vůbec. */
  function nactiGtm() {
    if (window.__tlGtm) return;
    window.__tlGtm = true;
    window.dataLayer.push({ 
;
    f.parentNode.insertBefore(j, f);
  }

  /* ---------- lišta se souhlasem ---------- */

  /* box-sizing musí sedět i tady: vnitřní odsazení se jinak přičte k šířce
     a lišta na 320px displeji přetáhne stránku o 4 px do strany. */
  var CSS = 
.tl-souhlas{position:fixed;left:0;right:0;bottom:0;z-index:9990;background:#fff;max-width:100%;
.tl-souhlas[hidden]{display:none}
.tl-souhlas-in{max-width:1180px;margin:0 auto;padding:18px 20px;display:flex;gap:24px;
.tl-souhlas-text{flex:1 1 400px;min-width:0}
.tl-souhlas-text strong{display:block;font-size:15px;color:var(--ink,#1a1a2e);margin-bottom:5px}
.tl-souhlas-text p{margin:0;font-size:13.5px;line-height:1.6;color:var(--g-700,#4b5563)}
.tl-souhlas-text a{color:var(--blue,#2563eb)}
.tl-souhlas-tl{display:flex;gap:10px;flex-shrink:0}
.tl-souhlas-tl button{min-width:154px;min-height:44px;padding:11px 22px;border-radius:var(--r,6px);
.tl-souhlas-tl button[data-tl="ano"]{background:var(--ink,#1a1a2e);color:#fff}
.tl-souhlas-tl button:hover{opacity:.88}
.tl-souhlas-volby{flex:1 1 100%;margin:2px 0 0;padding:14px 0 0;
.tl-souhlas-volby[hidden]{display:none}
.tl-souhlas-radek{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;
.tl-souhlas-radek b{display:block;color:var(--ink,#1a1a2e);font-size:14px}
.tl-souhlas-radek input{width:20px;height:20px;margin:2px 0 0;flex-shrink:0;
.tl-souhlas-radek input:disabled{opacity:.55;cursor:default}
@media(max-width:640px){.tl-souhlas-in{padding:16px;gap:14px}
.tl-souhlas-tl{width:100%}.tl-souhlas-tl button{flex:1 1 40%;min-width:0;padding:11px 8px;font-size:13.5px}}
Cookies. Bohužiaľ nie tie k pivu.
a či sa nám reklama oplatí, a občas sa ti pripomenieme reklamou aj na iných weboch. 
Google Ads, Sklik, Zboží.cz a Heureka: či sa reklama oplatí a pripomenutie našej ponuky aj na iných weboch (remarketing). Načítajú sa až s tvojím súhlasom.
Cookies. Bohužel ne ty k pivu.
Ty nutné drží pohromadě košík, jazyk i platbu kartou. Se souhlasem k tomu měříme, jak web používáš 
a jestli se nám reklama vyplatí, a občas se ti připomeneme reklamou i na jiných webech. 
Bez souhlasu neukládáme nic navíc a obchod šlape stejně. 
Souhlas se soubory cookie
Google Ads, Sklik, Zboží.cz a Heureka: jestli se reklama vyplatí a připomenutí naší nabídky i na jiných webech (remarketing). Načtou se až s tvým souhlasem.
<label class="tl-souhlas-radek">
<div class="tl-souhlas-in">
<div class="tl-souhlas-text">
<div class="tl-souhlas-tl">
<div class="tl-souhlas-volby" hidden>
<div class="tl-souhlas-tl"><button type="button" data-tl="ulozit">
).hidden = false;
  }

  // Po odmítnutí nemá smysl nechávat v prohlížeči cookies z dřívějšího souhlasu.
  function smazMericiCookies(s) {
    var host = location.hostname.replace(/^www\./, 
);
    var vse = document.cookie.split(
;
      if ((mereni && !s.mereni) || (marketing && !s.marketing)) {
        document.cookie = n + 
;
        document.cookie = n + 
, semSouhlas(s)); } else { nactiSem(s); }
    smazMericiCookies(s);
    if (s.mereni) { ulozZdroj(); } else { smazZdroj(); }
    if (s.marketing) nactiGtm();
    if (s.marketing) heurekaNacti();
    if (lista) lista.hidden = true;
  }

  if (!v || v.doptat) {
    // Bez rozhodnutí, nebo se ptáme na marketing — měření mezitím běží podle uloženého souhlasu.
    if (document.readyState === 
, otevri);
    else otevri();
  }
  if (v && v.marketing) {
    nactiGtm();
  }

  // Změna volby — jakýkoli odkaz s atributem data-tl-souhlas lištu znovu otevře.
  window.tlSouhlas = { otevri: otevri, volba: volba };
  document.addEventListener(