Consentl z React, Vue, Angular i innymi aplikacjami jednostronicowymi
W aplikacjach jednostronicowych budowanych z Vite, Create React App lub Angular CLI skrypt ładujący Consentl należy umieścić w index.html, a nie w komponencie.
- Skrypt ładujący jako pierwszy w <head>
- Tak
W aplikacji jednostronicowej komponenty są montowane zbyt późno na potrzeby zgody: domyślne wartości
Google Consent Mode i wstępne blokowanie muszą działać, zanim uruchomi się jakikolwiek inny skrypt.
Skrypt ładujący należy umieścić w pliku wejściowym HTML jako pierwszy element w <head>,
synchronicznie:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<script src="https://api.consentl.com/v1/loader.js?k=SITE_KEY&l=en"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>My app</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
| Narzędzie | Plik |
|---|---|
| Vite (React, Vue, Svelte, Solid) | index.html w katalogu głównym projektu |
| Create React App | public/index.html |
| Angular CLI | src/index.html |
W kodzie aplikacji
- Zmiany trasy: nic nie trzeba robić. Środowisko uruchomieniowe pozostaje załadowane, wybór jest
przechowywany we własnym pliku cookie
consentl, a wstrzymane tagi są zwalniane bez przeładowania. - Ponowne otwarcie preferencji: wystarczy wyrenderować w dowolnym miejscu
<a href="#consentl">Cookie settings</a>albo wywołaćwindow.Consentl?.open("prefs")z przycisku. Kliknięcia są obsługiwane nadocument, więc działają też elementy wyrenderowane później. - Własna analityka lub funkcje wymagające zgody: zdarzenie
consentl:changejest wywoływane przy każdym wyświetleniu strony z bieżącymi wyborami i ponownie przy każdej zmianie, dlatego należy uruchamiać je tylko raz:
let started = false;
const maybeStart = (c) => {
if (c.analytics && !started) {
started = true;
startAnalytics();
}
};
document.addEventListener("consentl:change", (e) => maybeStart(e.detail));
if (window.Consentl) maybeStart(window.Consentl.get());
- Skrypty wstawiane później przez aplikację są wstrzymywane, gdy pasują do znanego narzędzia śledzącego (plan Business) lub do reguły blokowania z panelu. W planach Free i Pro należy sprawdzać zgodę w kodzie, jak powyżej.
- Tagi zapisane bezpośrednio w
index.htmlsą pobierane przez przeglądarkę przed wyrażeniem zgody; należy oznaczyć je jakotype="text/plain" data-consentl="…"(zob. Każda strona internetowa).
Sprawdzenie działania
Należy wyświetlić źródło strony zbudowanej aplikacji: skrypt ładujący jest pierwszym <script>
w <head>. Następnie należy wykonać kontrole opisane w poradniku
Każda strona internetowa.
Ograniczenia
- Nie należy ładować skryptu ładującego z komponentu ani wstrzykiwać go ponownie przy nawigacji.
- Po zmianie języka bez pełnego przeładowania baner pozostaje w pierwszym języku do następnego załadowania strony.
- Jeżeli wysyłają Państwo nagłówek Content Security Policy, należy zezwolić na
https://api.consentl.com(zob. Każda strona internetowa).
Powiązane poradniki
Potrzebują Państwo pomocy? Prosimy pisać na adres support@consentl.com — odpowiadamy po angielsku w dni robocze.