Consentl com React, Vue, Angular e outras aplicações de página única
Coloque o loader do Consentl no index.html, e não num componente, nas aplicações de página única criadas com Vite, Create React App ou Angular CLI.
- Loader em primeiro lugar no <head>
- Sim
Numa aplicação de página única, os componentes são montados demasiado tarde para o consentimento: as
predefinições do Google Consent Mode e o bloqueio prévio têm de estar ativos antes de qualquer outro
script ser executado. Coloque o loader no ficheiro HTML de entrada como primeiro elemento no
<head>, síncrono:
<!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>
| Ferramenta | Ficheiro |
|---|---|
| Vite (React, Vue, Svelte, Solid) | index.html na raiz do projeto |
| Create React App | public/index.html |
| Angular CLI | src/index.html |
No código da sua aplicação
- Mudanças de rota: não é preciso fazer nada. O runtime mantém-se carregado, a escolha é guardada
no cookie próprio
consentle as tags retidas são libertadas sem recarregar a página. - Voltar a abrir as preferências: apresente
<a href="#consentl">Cookie settings</a>em qualquer lugar, ou chamewindow.Consentl?.open("prefs")a partir de um botão. Os cliques são tratados emdocument, pelo que os elementos apresentados mais tarde também funcionam. - As suas próprias estatísticas ou funcionalidades que exigem consentimento:
consentl:changeé disparado em cada visualização de página com as escolhas atuais e novamente em cada alteração, pelo que deve iniciar tudo apenas uma vez:
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());
- Os scripts que a sua aplicação insere mais tarde são retidos quando correspondem a um rastreador conhecido (plano Business) ou a uma regra de bloqueio do painel. Nos planos Free e Pro, verifique o consentimento no seu código, como acima.
- As tags escritas no próprio
index.htmlsão pedidas pelo navegador antes do consentimento; marque-as comtype="text/plain" data-consentl="…"(consulte Qualquer site).
Verificar que funciona
Veja o código-fonte da página da aplicação compilada: o loader é o primeiro <script> no <head>.
Depois, siga as verificações em Qualquer site.
Limitações
- Não carregue o loader a partir de um componente nem o injete novamente durante a navegação.
- Uma mudança de idioma sem recarregamento completo mantém o banner no primeiro idioma até ao próximo carregamento de página.
- Se enviar uma Content Security Policy, permita
https://api.consentl.com(consulte Qualquer site).
Guias relacionados
Com dificuldades? Escreva para support@consentl.com — respondemos em inglês nos dias úteis.