Consentl met Nuxt
Voeg de Consentl-loader toe aan Nuxt 3 en 4 met app.head en tagPriority 0, zodat hij vóór elk ander script wordt gerenderd.
- Loader als eerste in <head>
- Ja
De loader moet het eerste script in <head> zijn en synchroon worden geladen. De head-manager van Nuxt
(Unhead) sorteert <head>-tags op gewicht; lagere gewichten worden eerst gerenderd:
| Tag | Gewicht |
|---|---|
| charset | −20 |
| viewport | −15 |
| title | 10 |
| async-script | 30 |
| synchroon script | 50 |
| stylesheet | 60 |
| entry van Nuxt-module | 80 |
tagPriority: 0 plaatst de loader vóór elk ander script. "critical" (gewicht 42) zou nog steeds
na async-scripts komen.
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,
},
],
},
},
});
Taal per verzoek (@nuxtjs/i18n)
Gebruik dezelfde opties 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 }],
});
Als de taal aan de clientkant wordt gewijzigd, wordt de banner niet opnieuw geladen; de nieuwe taal geldt bij de volgende keer dat de pagina volledig wordt geladen.
Andere tags (app.head of useHead)
Geef elke tag die op toestemming moet wachten type: "text/plain" en zijn Consentl-categorie. Nuxt
schrijft hem zoals hij is, de browser downloadt hem niet en Consentl voert hem na de toestemming één keer uit:
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",
},
],
Een gewone tag { src, async: true } wordt bij het plan Business ook tegengehouden en maar één keer uitgevoerd, ook al
voegt Nuxt er tijdens het starten van de pagina een tweede kopie van toe, maar de browser downloadt hem vóór de toestemming.
In onze test (Nuxt 4.6, een Google-tag): gewone async-tag, één verzoek vóór de toestemming en één uitvoering
daarna; type: "text/plain", geen verzoek vóór de toestemming en één uitvoering daarna.
Controleren of het werkt
Bekijk de paginabron: de loader is het eerste <script> in <head>. Volg daarna de controles in
Elke website. Navigatie aan de clientkant vereist niets extra's, en
de paginagegevens van Nuxt (__NUXT_DATA__, window.__NUXT__) worden nooit tegengehouden. Getest met Nuxt 4.6.
Consent Mode vereist het plan Pro of hoger, automatische blokkering van bekende trackers het plan Business.
Tags die in de HTML van de pagina staan (bijvoorbeeld via app.head), worden vóór de toestemming opgevraagd, tenzij
u ze markeert zoals getoond in Andere tags (zie ook
Elke website).
Beperkingen
- Voeg de loader niet een tweede keer toe vanuit een component of plugin: hij moet één keer per document laden.
- Als u een Content Security Policy verstuurt, sta dan
https://api.consentl.comtoe (zie Elke website).
Gerelateerde handleidingen
Vastgelopen? Schrijf naar support@consentl.com — wij antwoorden op werkdagen in het Engels.