Jak dodać informację o cookies (ciasteczkach) w HTML?

Aby dostosować stronę internetową do wymagań związanych z informowaniem użytkownika o plikach cookies, należy wdrożyć widoczny i funkcjonalny baner cookies. Poniżej znajduje się szczegółowy opis procesu implementacji, kod HTML/CSS/JavaScript oraz przykłady rozwiązań.

Czym są cookies i dlaczego informacja jest wymagana?

Cookies to niewielkie pliki tekstowe zapisywane przez przeglądarkę w urządzeniu użytkownika. Służą np. do obsługi sesji, personalizacji treści, analityki czy wyświetlania reklam. Zgodnie z przepisami, każda strona korzystająca z cookies powinna poinformować o tym użytkowników oraz umożliwić wyrażenie zgody na ich wykorzystanie lub zmianę ustawień.

Elementy banera cookies

Najczęściej stosowany komunikat o cookies zawiera:

  • Wyraźną informację o wykorzystywaniu plików cookies oraz celu,
  • Przyciski do zaakceptowania oraz ewentualnie odrzucenia lub konfiguracji cookies,
  • Odnośnik do polityki prywatności lub polityki cookies,
  • Mechanizm zapamiętywania decyzji użytkownika (np. w localStorage lub cookie).

Krok po kroku – implementacja prostego banera cookies

Kod HTML komunikatu

Umieść poniższy kod zaraz po tagu <body> swojej strony:

<div id="cookies-message" style="display:none; position:fixed; bottom:0; left:0; width:100%; background:#222; color:#fff; padding:18px 10px; z-index:10000;">
    <span>
        Ta strona wykorzystuje pliki cookies w celu zapewnienia najlepszej jakości usług oraz analizowania ruchu. Szczegóły znajdziesz w
        <a href="/polityka-prywatnosci" style="color: #4ae;">polityce prywatności</a>.
    </span>
    <button onclick="acceptCookies()" style="margin-left:20px;">Akceptuję</button>
</div>

Stylizacja (CSS)

Możesz użyć wbudowanych stylów (jak powyżej) lub lepszym rozwiązaniem dodać je do stylów strony:

#cookies-message {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #222;
    color: #fff;
    padding: 18px 10px;
    z-index: 10000;
    text-align: center;
    font-size: 16px;
}
#cookies-message a {
    color: #4ae;
    text-decoration: underline;
}
#cookies-message button {
    margin-left: 20px;
    padding: 6px 14px;
    background: #4ae;
    color: #222;
    border: none;
    cursor: pointer;
    border-radius: 3px;
    font-size: 15px;
}

Logika (JavaScript)

Skrypt sprawdza, czy użytkownik zaakceptował cookies – jeśli nie, wyświetla komunikat. Po akceptacji ukrywa informację:

function checkCookies() {
    if(!localStorage.getItem('cookies_accepted')) {
        document.getElementById('cookies-message').style.display = "block";
    }
}
function acceptCookies() {
    localStorage.setItem('cookies_accepted', 'true');
    document.getElementById('cookies-message').style.display = "none";
}
window.onload = checkCookies;

Przykład bardziej rozbudowanego banera (z odrzuceniem)

Możesz rozwinąć baner o dodatkowy przycisk do odmowy lub konfiguracji cookies:

<div id="cookies-message" style="display:none; position:fixed; bottom:0; left:0; width:100%; background:#222; color:#fff; padding:18px 10px; z-index:10000;">
    <span>
        Ta strona korzysta z plików cookies. Kontynuując korzystanie z serwisu, akceptujesz ich użycie.
        <a href="/polityka-prywatnosci" style="color: #4ae;">Dowiedz się więcej</a>
    </span>
    <button onclick="acceptCookies()" style="margin-left:20px;">Akceptuję</button>
    <button onclick="rejectCookies()" style="margin-left:10px;">Odrzucam</button>
</div>
<script>
function checkCookies() {
    if(!localStorage.getItem('cookies_decision')) {
        document.getElementById('cookies-message').style.display = "block";
    }
}
function acceptCookies() {
    localStorage.setItem('cookies_decision', 'accepted');
    document.getElementById('cookies-message').style.display = "none";
    // Tu można dodać kod aktywujący analitykę itp.
}
function rejectCookies() {
    localStorage.setItem('cookies_decision', 'rejected');
    document.getElementById('cookies-message').style.display = "none";
    // Tu można wyłączyć analitykę lub inne funkcje.
}
window.onload = checkCookies;
</script>

Obsługa cookies za pomocą JavaScript

Zmienne akceptacyjne można również przechowywać bezpośrednio w plikach cookies zamiast w localStorage. Przykład prostych funkcji do ustawiania i pobierania cookies:

function setCookie(name, value, days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        expires = "; expires=" + date.toUTCString();
    }
    document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

Najczęstsze błędy i dobre praktyki

  • Komunikat powinien być czytelny i pojawiać się od razu po wejściu na stronę, jeśli użytkownik nie podjął jeszcze decyzji.
  • Warto zapamiętywać decyzję użytkownika (localStorage lub cookie na kilka miesięcy).
  • Umożliwiaj łatwy dostęp do szczegółowej polityki cookies.
  • Dobrą praktyką jest wdrażanie pełnej zgody – akceptacja/odrzucenie/pliki niezbędne do działania (zgoda warstwowa).

Dzięki powyższym przykładom łatwo zaimplementujesz funkcjonalność informowania użytkownika o cookies w czystym HTML i JavaScript, bez konieczności korzystania z zewnętrznych bibliotek. Taki komunikat to zarówno wymóg prawny, jak i ważny standard budowania zaufania oraz transparentności wobec użytkowników.

Programista i twórca serwisu Creative Coding, absolwent Politechniki Warszawskiej (WEiTI). Od 10+ lat łączy front‑end, grafikę generatywną i narzędzia dla twórców; opublikował 120+ projektów i artykułów, prowadził warsztaty dla 2 000+ uczestników. Pracuje z JavaScriptem, Three.js, P5.js i GLSL, bada wydajność i dokumentuje procesy, tworząc praktyczne przewodniki dla osób łączących kod z obrazem, dźwiękiem i interakcją.
Zostaw komentarz

Komentarze

Brak komentarzy. Dlaczego nie rozpoczniesz dyskusji?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *