Меню документації

Читання на сервері

Формат cookie згоди CookieHug і читання на боці сервера: приклади на PHP, Node.js, Python і C#.

Використання на боці сервера

Окрім localStorage, CookieHug встановлює HTTP-cookie (CookieHugConsent), тож стан згоди можна перевірити на сервері.

PHP

if (isset($_COOKIE['CookieHugConsent'])) {
    $consent = json_decode(
        urldecode($_COOKIE['CookieHugConsent']), true
    );

    if ($consent && $consent['statistics']) {
        // Користувач погодився на статистику
        echo '<script src="https://www.googletagmanager.com/gtag/js?id=G-XXXXX"></script>';
    }

    if ($consent && $consent['marketing']) {
        // Користувач погодився на маркетинг
    }
} else {
    // Згоди ще немає — не завантажуйте скрипти відстеження
}

Node.js (Express)

const cookieParser = require('cookie-parser');
app.use(cookieParser());

app.get('/', (req, res) => {
  const raw = req.cookies.CookieHugConsent;
  if (raw) {
    const consent = JSON.parse(decodeURIComponent(raw));

    if (consent.statistics) {
      // Рендерити скрипт аналітики на сервері
    }
    if (consent.marketing) {
      // Рендерити маркетингові піксели на сервері
    }
  }

  res.render('index');
});

Python (Django)

import json
from urllib.parse import unquote

def index(request):
    raw = request.COOKIES.get('CookieHugConsent')
    if raw:
        consent = json.loads(unquote(raw))

        if consent.get('statistics'):
            # Рендерити аналітику
            pass
        if consent.get('marketing'):
            # Рендерити маркетинг
            pass

    return render(request, 'index.html')

C# (ASP.NET)

var raw = Request.Cookies["CookieHugConsent"];
if (!string.IsNullOrEmpty(raw))
{
    var consent = JsonSerializer.Deserialize<CookieHugConsent>(
        Uri.UnescapeDataString(raw)
    );

    if (consent.Statistics)
    {
        // Рендерити аналітику на сервері
    }
}