Consent Mode to mechanizm firmy Google, który pozwala na dynamiczne dostosowanie sposobu zbierania danych w zależności od zgody użytkownika. Jest on szczególnie istotny dla właścicieli stron internetowych i programistów, ponieważ umożliwia zgodność z przepisami takimi jak RODO (GDPR) czy CCPA, jednocześnie minimalizując utratę danych analitycznych.
Consent Mode współpracuje z narzędziami Google, takimi jak Google Analytics i Google Ads, pozwalając na dostosowanie zachowania skryptów śledzących w zależności od zgód użytkownika. Działa w dwóch trybach:
Gdy użytkownik nie wyrazi zgody, Google może nadal zbierać dane w sposób zagregowany i anonimizowany, pomagając utrzymać podstawowe funkcje analityczne.
Google Consent Mode obsługuje kilka typów zgód, które można podzielić na wymagane i opcjonalne.
Te zgody są kluczowe dla prawidłowego działania Consent Mode:
granted: Google może zapisywać i odczytywać pliki cookie związane z reklamami.denied: Pliki cookie reklamowe są blokowane.granted: Dane mogą być przechowywane w Google Analytics.denied: Google Analytics nie zapisuje żadnych danych użytkownika.granted: Witryna może przechowywać pliki cookie usprawniające działanie strony (np. preferencje użytkownika).denied: Funkcjonalne pliki cookie są blokowane.Google oferuje dodatkowe opcje zgód dla bardziej zaawansowanego zarządzania danymi:
granted: Dane mogą być wykorzystywane do personalizacji treści i rekomendacji.denied: Brak personalizacji w oparciu o zapisane dane.granted: Pliki cookie mogą być używane do zabezpieczeń (np. ochrona przed botami, wykrywanie oszustw).denied: Ograniczone możliwości wykrywania zagrożeń.Przykładowa konfiguracja domyślnych zgód:
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
'ad_storage': 'denied',
'analytics_storage': 'denied',
'functionality_storage': 'granted',
'personalization_storage': 'denied',
'security_storage': 'granted'
});
Po interakcji użytkownika, np. zaakceptowaniu plików cookie, można zaktualizować zgody dynamicznie:
gtag('consent', 'update', {
'ad_storage': 'granted',
'analytics_storage': 'granted',
'personalization_storage': 'granted'
});
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Consent Management</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXX-X" async></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
</script>
<style>
#consentBanner {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background: rgba(0, 0, 0, 0.8);
color: white;
padding: 15px;
text-align: center;
display: none;
}
</style>
</head>
<body>
<!-- Popup zgody -->
<div id="consentBanner">
<p>Używamy plików cookie do analizy ruchu oraz personalizacji treści. Możesz zaakceptować wszystkie, odrzucić lub dostosować swoje preferencje.</p>
<button class="btn btn-success" id="acceptAllBtn">Akceptuję</button>
<button class="btn btn-danger" id="rejectAllBtn">Odrzucam</button>
<button class="btn btn-primary" id="customizeBtn">Dostosuj</button>
</div>
<!-- Modal zgody -->
<div class="modal fade" id="consentModal" tabindex="-1" aria-labelledby="consentModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="consentModalLabel">Zarządzanie Zgodami</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<p>Wybierz, na co chcesz wyrazić zgodę:</p>
<div class="form-check">
<input class="form-check-input consent-checkbox" type="checkbox" id="adStorage" name="ad_storage">
<label class="form-check-label" for="adStorage">Reklamy</label>
</div>
<div class="form-check">
<input class="form-check-input consent-checkbox" type="checkbox" id="analyticsStorage" name="analytics_storage">
<label class="form-check-label" for="analyticsStorage">Analityka</label>
</div>
<div class="form-check">
<input class="form-check-input consent-checkbox" type="checkbox" id="functionalityStorage" name="functionality_storage" checked disabled>
<label class="form-check-label" for="functionalityStorage">Funkcjonalność (wymagane)</label>
</div>
<div class="form-check">
<input class="form-check-input consent-checkbox" type="checkbox" id="personalizationStorage" name="personalization_storage">
<label class="form-check-label" for="personalizationStorage">Personalizacja</label>
</div>
<div class="form-check">
<input class="form-check-input consent-checkbox" type="checkbox" id="securityStorage" name="security_storage" checked disabled>
<label class="form-check-label" for="securityStorage">Bezpieczeństwo (wymagane)</label>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="saveConsentBtn">Zapisz ustawienia</button>
</div>
</div>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", function () {
const consentModal = new bootstrap.Modal(document.getElementById("consentModal"));
const saveConsentBtn = document.getElementById("saveConsentBtn");
const consentBanner = document.getElementById("consentBanner");
const acceptAllBtn = document.getElementById("acceptAllBtn");
const rejectAllBtn = document.getElementById("rejectAllBtn");
const customizeBtn = document.getElementById("customizeBtn");
let consentSettings = {
ad_storage: "denied",
analytics_storage: "denied",
functionality_storage: "granted",
personalization_storage: "denied",
security_storage: "granted"
};
function updateConsent() {
gtag('consent', 'update', consentSettings);
localStorage.setItem("userConsent", JSON.stringify(consentSettings));
consentBanner.style.display = "none";
consentModal.hide();
}
const storedConsent = localStorage.getItem("userConsent");
if (!storedConsent) {
consentBanner.style.display = "block";
} else {
consentSettings = JSON.parse(storedConsent);
}
acceptAllBtn.addEventListener("click", function () {
consentSettings = {
ad_storage: "granted",
analytics_storage: "granted",
functionality_storage: "granted",
personalization_storage: "granted",
security_storage: "granted"
};
updateConsent();
});
rejectAllBtn.addEventListener("click", function () {
consentSettings = {
ad_storage: "denied",
analytics_storage: "denied",
functionality_storage: "granted",
personalization_storage: "denied",
security_storage: "granted"
};
updateConsent();
});
customizeBtn.addEventListener("click", function () {
consentModal.show();
});
document.querySelectorAll(".consent-checkbox").forEach(checkbox => {
checkbox.addEventListener("change", function () {
consentSettings[this.name] = this.checked ? "granted" : "denied";
});
});
saveConsentBtn.addEventListener("click", updateConsent);
});
</script>
</body>
</html>
Tryb uzyskiwania zgody (Consent Mode) to funkcja wprowadzona przez Google, która pozwala właścicielom stron internetowych dostosować działanie tagów i skryptów na podstawie wyborów użytkowników dotyczących zgody na przetwarzanie danych. Dzięki temu możliwe jest dynamiczne dostosowanie sposobu zbierania danych w zależności od preferencji użytkownika, co pomaga w spełnieniu wymogów prawnych związanych z ochroną prywatności.
Consent Mode v2 wprowadza bardziej precyzyjne zarządzanie zgodami użytkowników, umożliwiając rozdzielenie zgód na różne typy danych, takie jak dane analityczne, remarketingowe czy używane w celach reklamowych. Pozwala to na lepsze dostosowanie sposobu zbierania i przetwarzania danych do indywidualnych preferencji użytkowników.
Wdrożenie Consent Mode v2 jest kluczowe dla zapewnienia zgodności z przepisami o ochronie danych osobowych, takimi jak RODO. Ponadto, transparentne zarządzanie zgodami buduje zaufanie wśród użytkowników, co może pozytywnie wpłynąć na wizerunek marki i skuteczność działań marketingowych.
Aby wdrożyć Consent Mode v2, należy: 1. **Zainstalować narzędzie do zarządzania zgodami (CMP)**: Wybierz odpowiednie narzędzie, które umożliwi zbieranie i zarządzanie zgodami użytkowników. 2. **Skonfigurować Consent Mode w Google Tag Managerze**: Ustaw parametry zgód zgodnie z preferencjami użytkowników i wymaganiami prawnymi. 3. **Przetestować wdrożenie**: Upewnij się, że konfiguracja działa poprawnie i zbiera zgody w sposób zgodny z przepisami.
Brak wdrożenia trybu uzyskiwania zgody może prowadzić do naruszenia przepisów o ochronie danych osobowych, co wiąże się z ryzykiem nałożenia kar finansowych. Ponadto, brak transparentności w zarządzaniu danymi użytkowników może negatywnie wpłynąć na zaufanie do marki i skuteczność działań marketingowych.