Consentl cu Nuxt
Adăugați scriptul de încărcare Consentl în Nuxt 3 și 4 cu app.head și tagPriority 0, astfel încât să fie afișat înaintea oricărui alt script.
- Scriptul de încărcare primul în <head>
- Da
Scriptul de încărcare trebuie să fie primul script din <head> și sincron. Managerul de
head al Nuxt (Unhead) sortează etichetele din <head> după pondere; ponderile mai mici sunt afișate
primele:
| Etichetă | Pondere |
|---|---|
| charset | −20 |
| viewport | −15 |
| title | 10 |
| script asincron | 30 |
| script sincron | 50 |
| foaie de stil | 60 |
| intrarea modulului Nuxt | 80 |
tagPriority: 0 plasează scriptul de încărcare înaintea oricărui alt script. "critical" (pondere
42) ar veni totuși după scripturile asincrone.
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,
},
],
},
},
});
Limba pentru fiecare solicitare (@nuxtjs/i18n)
Folosiți aceleași opțiuni în 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 }],
});
Schimbarea limbii pe client nu reîncarcă bannerul; noua limbă se aplică la următoarea încărcare completă a paginii.
Alte etichete (app.head sau useHead)
Dați fiecărei etichete care trebuie să aștepte consimțământul type: "text/plain" și categoria sa
Consentl. Nuxt o scrie așa cum este, browserul nu o descarcă, iar Consentl o rulează o singură dată
după consimțământ:
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",
},
],
O etichetă simplă { src, async: true } este reținută și ea în planul Business și rulează o singură
dată, chiar dacă Nuxt adaugă o a doua copie a ei la pornirea paginii, dar browserul o descarcă
înainte de consimțământ. În testul nostru (Nuxt 4.6, o etichetă Google): eticheta simplă async – o
solicitare înainte de consimțământ și o rulare după acesta; type: "text/plain" – nicio solicitare
înainte de consimțământ și o rulare după acesta.
Verificați că funcționează
Vizualizați sursa paginii: scriptul de încărcare este primul <script> din <head>. Apoi urmați
verificările din Orice site. Navigarea pe client nu necesită
nimic suplimentar, iar datele paginii Nuxt (__NUXT_DATA__, window.__NUXT__) nu sunt reținute
niciodată. Testat cu Nuxt 4.6.
Consent Mode necesită planul Pro sau unul superior, iar blocarea automată a trackerelor cunoscute
planul Business. Etichetele scrise în HTML-ul paginii (de exemplu prin app.head) sunt solicitate
înainte de consimțământ, cu excepția cazului în care le marcați așa cum se arată în
Alte etichete (consultați și
Orice site).
Limitări
- Nu adăugați scriptul de încărcare a doua oară dintr-o componentă sau dintr-un plugin: trebuie să se încarce o singură dată per document.
- Dacă trimiteți o Content Security Policy, permiteți
https://api.consentl.com(consultați Orice site).
Ghiduri conexe
V-ați blocat? Scrieți-ne la support@consentl.com — răspundem în limba engleză, în zilele lucrătoare.