Serverski kod
Cilj: pročitajte stanje saglasnosti posetioca na svom serveru, kako biste mogli da na strani servera odlučite da li uopšte renderovati tag za praćenje.
OptSens upisuje saglasnost u pregledaču. On preslikava stanje kategorija u
kolačić pod nazivom os_consent koji vaš bekend može da pročita pri
sledećem zahtevu.
Kolačić os_consent
os_consent sadrži URL-enkodovan JSON objekat sa jednim kratkim ključem
po kategoriji, plus izabranim jezikom:
{ "n": true, "f": true, "an": true, "ad": false, "pf": true, "l": "en" }
| Ključ | Kategorija |
|---|---|
n | necessary |
f | functional |
an | analytics |
ad | advertising |
pf | performance |
l | jezik banera |
Kolačić se postavlja na registrovanom domenu sa SameSite=Lax, i Secure
na HTTPS-u. Ne sadrži vremensku oznaku ni lične podatke. Nije HttpOnly,
jer ga čita i skripta u pregledaču.
Čitanje u PHP-u
<?php
$consent = ['n' => true]; // necessary defaults on
if (!empty($_COOKIE['os_consent'])) {
$decoded = json_decode($_COOKIE['os_consent'], true);
if (is_array($decoded)) {
$consent = $decoded;
}
}
$analyticsAllowed = !empty($consent['an']);
?>
<?php if ($analyticsAllowed): ?>
<!-- render your analytics config tag -->
<?php endif; ?>
Čitanje u Node-u
function readOptSensConsent(req) {
const header = req.headers.cookie || '';
const match = header.match(/(?:^|;\s*)os_consent=([^;]+)/);
if (!match) return { n: true };
try {
return JSON.parse(decodeURIComponent(match[1]));
} catch {
return { n: true };
}
}
// const consent = readOptSensConsent(req);
// if (consent.an) { /* render analytics tag */ }
Napomene
- Prva poseta nema kolačić. Tretirajte nedostajući
os_consentkao da saglasnost još nije data: ne renderujte ništa vezano za praćenje i pustite da se baner pojavi. Podrazumevano postavite svaku kategoriju koja nije nužna na odbijeno. - Ne uslovljavajte ključne odgovore time. Kolačić može da nedostaje u Safari Private Browsing-u, gde se saglasnost čuva u memoriji za karticu.
- Kolačić sadrži samo stanje kategorija. Detaljni IAB izbori
provajdera i svrha žive u kolačiću TC stringa
euconsent-v2, a ne ovde. - Pregledač je izvor istine. Koristite serversko čitanje da biste
izbegli renderovanje taga uopšte. Za odluke u toku izvršavanja na
stranici, koristite
OptSens.hasConsent('analytics').
Provera
- Prihvatite analitiku u baneru, zatim ponovo učitajte stranicu.
- Pročitajte
os_consentna strani servera i potvrdite da jeanjednakotrue. - Odbijte analitiku, ponovo učitajte i potvrdite da je
anjednakofalsei da vaš tag nije renderovan.
Povezane stranice
- window.OptSens za provere saglasnosti na stranici.
- Zapisi saglasnosti za ono što se čuva za revizije.
- IAB TCF za TC string
euconsent-v2.