Consent a správa souhlasů
SEM respektuje souhlas uživatele se sledováním. Jak přesně se souhlas předává, závisí na tom, jaký consent management váš web používá.
Jak SEM pracuje se souhlasem
SEM podporuje dva standardizované způsoby předání souhlasu. Systém vždy upřednostní IAB TCF, pokud je dostupný – Google Consent Mode slouží jako alternativa.
| Způsob | Kdy se použije | Co je potřeba udělat |
|---|---|---|
| IAB TCF (automaticky) | Web používá CMP kompatibilní s IAB TCF v2 | Nic – SEM čte TCF consent string automaticky z API |
| Google Consent Mode (manuálně) | Web nepoužívá TCF, ale má vlastní cookie lištu | Zavolat updateConsent při změně souhlasu |
Používáte IAB TCF?
Pokud váš Consent Management Platform (CMP) implementuje IAB Transparency and Consent Framework v2, souhlas se předává Skliku automaticky. Níže popsaný updateConsent není potřeba implementovat.
Manuální předání – Google Consent Mode
Pokud váš web TCF nepodporuje, informujte SEM o stavu souhlasu metodou SEM('updateConsent', consentData). Volejte ji:
- při inicializaci stránky – s výchozím stavem souhlasu (obvykle
denied) - po interakci uživatele s cookie lištou – s aktualizovaným stavem
const consentData = {
consent_mode: {
ad_storage: 'granted', // ukládání reklamních cookies
ad_user_data: 'granted', // zpracování identifikátorů uživatele
ad_personalization: 'granted', // personalizace reklamy
functionality_storage: 'denied',
analytics_storage: 'denied'
}
};
SEM('updateConsent', consentData);
Parametry consent_mode
SEM pracuje s pěti klíči dle specifikace Google Consent Mode v2. Povolené hodnoty jsou 'granted' a 'denied'.
| Klíč | Co ovlivňuje | Dopad na SEM |
|---|---|---|
ad_storage | Ukládání a čtení reklamních cookies | Nutný pro fungování cookies sid a udid |
ad_user_data | Odesílání uživatelských dat do reklamních systémů | Nutný pro zpracování hashovaných uživatelských identifikátorů |
ad_personalization | Personalizace reklamního obsahu | Nutný pro retargeting a personalizované kampaně |
functionality_storage | Ukládání funkčních cookies | Volitelný pro SEM |
analytics_storage | Analytické cookies | Volitelný pro SEM |
Typické vzory implementace
Výchozí denied
Nastavte výchozí stav ještě před načtením cookie lišty (stav před interakcí uživatele):
// Výchozí stav – uživatel zatím nesouhlasil
SEM('updateConsent', {
consent_mode: {
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
functionality_storage: 'denied',
analytics_storage: 'denied'
}
});
Aktualizace po souhlasu
Po potvrzení souhlasu uživatelem (callback z vaší cookie lišty):
// Zavolejte po kliknutí na "Přijmout vše" v cookie liště
function onConsentGranted() {
SEM('updateConsent', {
consent_mode: {
ad_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted',
functionality_storage: 'granted',
analytics_storage: 'granted'
}
});
}
Kompletní inicializace
Kompletní inicializace stránky – consent, user data a PageView v správném pořadí:
<script src="https://l.seznam.cz/sul.js?id=VASE_SEM_ID"></script>
<script>
if (typeof window.SEM === "function") {
// 1. Předejte consent (pokud nepoužíváte IAB TCF)
SEM('updateConsent', {
consent_mode: {
ad_storage: userConsentStatus, // 'granted' nebo 'denied'
ad_user_data: userConsentStatus,
ad_personalization: userConsentStatus,
functionality_storage: 'denied',
analytics_storage: 'denied'
}
});
// 2. Předejte uživatelská data (pokud jsou k dispozici)
if (currentUserEmail) {
SEM('updateUserData', { em: currentUserEmail });
}
// 3. Odešlete PageView
SEM('track', 'PageView');
}
</script>
S2S měření – předání souhlasu v payloadu
Při Server-to-Server měření předáváte souhlas přímo v JSON payloadu. Pokud je k dispozici TCF consent string, použijte klíč consent_string a bude upřednostněn. Jako alternativu použijte consent_mode.
{
// Varianta A: IAB TCF consent string (upřednostněno)
"consent_string": "CPCXzW8CPCXzW8AAAENAPCAAQAAAAAAAAA...",
// Varianta B: Google Consent Mode (alternativa)
"consent_mode": {
"ad_storage": "granted",
"ad_user_data": "granted",
"ad_personalization": "granted",
"functionality_storage": "denied",
"analytics_storage": "denied"
}
}