Pređi na glavni sadržaj

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.

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
nnecessary
ffunctional
ananalytics
adadvertising
pfperformance
ljezik 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_consent kao 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

  1. Prihvatite analitiku u baneru, zatim ponovo učitajte stranicu.
  2. Pročitajte os_consent na strani servera i potvrdite da je an jednako true.
  3. Odbijte analitiku, ponovo učitajte i potvrdite da je an jednako false i da vaš tag nije renderovan.

Povezane stranice