Consentl con Nuxt
Aggiunga il loader di Consentl a Nuxt 3 e 4 con app.head e tagPriority 0, così viene generato prima di ogni altro script.
- Loader per primo nel <head>
- Sì
Il loader deve essere il primo script nel <head> e sincrono. Il gestore del head di Nuxt
(Unhead) ordina i tag del <head> in base al peso; i pesi più bassi vengono generati per primi:
| Tag | Peso |
|---|---|
| charset | −20 |
| viewport | −15 |
| title | 10 |
| script asincrono | 30 |
| script sincrono | 50 |
| foglio di stile | 60 |
| entry dei moduli Nuxt | 80 |
tagPriority: 0 colloca il loader prima di ogni altro script. "critical" (peso 42) verrebbe comunque
dopo gli script asincroni.
nuxt.config.ts
export default defineNuxtConfig({
app: {
head: {
script: [
{
src: `https://api.consentl.com/v1/loader.js?k=${process.env.NUXT_PUBLIC_CONSENTL_SITE_KEY}&l=en`,
tagPosition: "head",
tagPriority: 0,
},
],
},
},
});
Lingua per richiesta (@nuxtjs/i18n)
Usi le stesse opzioni in app.vue:
const { locale } = useI18n();
useHead({
script: [{ src: computed(() => `https://api.consentl.com/v1/loader.js?k=${key}&l=${locale.value}`), tagPosition: "head", tagPriority: 0 }],
});
Il cambio di lingua sul client non ricarica il banner; la nuova lingua si applica al successivo caricamento completo della pagina.
Altri tag (app.head o useHead)
Assegni a ogni tag che deve attendere il consenso type: "text/plain" e la sua categoria Consentl.
Nuxt lo scrive così com'è, il browser non lo scarica e Consentl lo esegue una volta dopo il consenso:
script: [
{ src: loader, tagPosition: "head", tagPriority: 0 }, // the Consentl loader, as above
{ src: "https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX", type: "text/plain", "data-consentl": "analytics" },
{
innerHTML: "window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag('js',new Date());gtag('config','G-XXXXXXX');",
type: "text/plain",
"data-consentl": "analytics",
},
],
Anche un tag semplice { src, async: true } viene trattenuto con il piano Business, ed eseguito una
sola volta anche se Nuxt ne aggiunge una seconda copia durante l'avvio della pagina, ma il browser lo
scarica prima del consenso. Nel nostro test (Nuxt 4.6, un tag Google): tag async semplice, una
richiesta prima del consenso e un'esecuzione dopo; type: "text/plain", nessuna richiesta prima del
consenso e un'esecuzione dopo.
Verificare che funzioni
Visualizzi il sorgente della pagina: il loader è il primo <script> nel <head>. Poi segua i
controlli in Qualsiasi sito web. La navigazione lato client non
richiede nulla di più, e i dati di pagina di Nuxt (__NUXT_DATA__, window.__NUXT__) non vengono mai
trattenuti. Testato con Nuxt 4.6.
Consent Mode richiede il piano Pro o superiore, il blocco automatico dei tracker noti il piano
Business. I tag scritti nell'HTML della pagina (ad esempio tramite app.head) vengono richiesti prima
del consenso, a meno che lei non li contrassegni come mostrato in
Altri tag (veda anche
Qualsiasi sito web).
Limitazioni
- Non aggiunga il loader una seconda volta da un componente o da un plugin: deve essere caricato una sola volta per documento.
- Se invia una Content Security Policy, consenta
https://api.consentl.com(veda Qualsiasi sito web).
Guide correlate
Serve aiuto? Scriva a support@consentl.com: rispondiamo in inglese nei giorni lavorativi.