Guida all'installazione
Due cose devono essere attive sul tuo sito: l'avviso che vedono i tuoi visitatori e un piccolo file pubblico che dichiara il tuo uso dell'IA (iltuosito.com/.well-known/ai-disclosure.json). Il tag dello snippet si incolla una sola volta, è identico su ogni pagina, e la tua dichiarazione decide quali avvisi compaiono e dove. Scegli la tua piattaforma qui sotto; la maggior parte richiede circa dieci minuti.
Banner ed etichette IA che i tuoi visitatori vedono sulla pagina.
ai-disclosure.json, un file pubblico leggibile dal tuo dominio.
il verificatore mostra Livello 2 · Visualizzato.
Scegli la tua piattaforma
WordPress
Installa il plugin
Nella tua area di amministrazione WordPress: Plugin → Aggiungi nuovo → Carica plugin, scegli il file che hai scaricato qui sotto, poi fai clic su Attiva.
Lascia che svolga entrambi i compiti
Il plugin mostra gli avvisi e pubblica automaticamente il tuo file di dichiarazione. Marca i contenuti IA su qualsiasi articolo o immagine con il relativo interruttore "Contenuto IA". Nessuna modifica al codice.
-
Verifica
Fatto quando il verificatore mostra Livello 2 · Visualizzato.
Avvia il verificatore
Shopify
Aggiungi lo snippet
Online Store → Themes → ⋯ → Edit code → theme.liquid: incolla questo unico tag subito prima di </body>. theme.liquid è il layout attraverso cui viene visualizzata ogni pagina, quindi un solo incollaggio copre l'intero negozio. Shopify non può ospitare file nella radice del tuo dominio, quindi il tag contiene la tua chiave del sito AIDisclose (data-aidisclose) e carica il manifest che ospitiamo per te.
theme.liquid <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>Collega la tua dichiarazione
Incolla questo link all'interno di <head> nello stesso file. La tua dashboard mostra entrambe le righe precompilate con la tua chiave del sito.
<head> <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">Questo è un metodo consentito dalla specifica.
-
Verifica
Fatto quando il verificatore mostra Livello 1 · Dichiarato con una nota. È il risultato previsto su questa piattaforma ed è conforme.
Avvia il verificatore
Webflow
Aggiungi lo snippet
Site settings → Custom code → Footer code: incolla il blocco dello snippet qui sotto, poi Publish. Il codice personalizzato a livello di sito viene caricato su ogni pagina.
Footer code <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>Collega la tua dichiarazione
In Head code, aggiungi la riga del link della dichiarazione (secondo blocco qui sotto). Preferisci servire il file dal tuo dominio? Usa il proxy nella sezione Avanzate se il tuo DNS passa attraverso Cloudflare.
Head code <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">Questo è un metodo consentito dalla specifica.
-
Verifica
Fatto quando il verificatore mostra Livello 1 · Dichiarato con una nota. È il risultato previsto su questa piattaforma ed è conforme.
Avvia il verificatore
Squarespace
Aggiungi lo snippet
Settings → Advanced → Code Injection → Footer: incolla il blocco dello snippet qui sotto. Il code injection si applica a ogni pagina. Richiede il piano Business.
Footer <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>Collega la tua dichiarazione
In Header injection, aggiungi la riga del link della dichiarazione (secondo blocco qui sotto).
Header <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">Questo è un metodo consentito dalla specifica.
-
Verifica
Fatto quando il verificatore mostra Livello 1 · Dichiarato con una nota. È il risultato previsto su questa piattaforma ed è conforme.
Avvia il verificatore
Google Tag Manager
Crea il tag
New tag → Tag configuration → Custom HTML → incolla lo snippet. Attivazione: All Pages (Page View). Non usare un trigger ritardato o basato sullo scorrimento: le regole di divulgazione richiedono l'avviso dalla prima esposizione. Pubblica il workspace.
Custom HTML <script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>Pubblica anche la tua dichiarazione
Tag Manager gestisce solo gli avvisi. Il tuo file di dichiarazione deve comunque essere reso attivo: segui il passaggio per la tua piattaforma nelle altre schede, oppure la scheda Codice personalizzato se gestisci un sito tuo.
-
Verifica
Fatto quando il verificatore mostra Livello 2 · Visualizzato.
Avvia il verificatore
Codice personalizzato
Aggiungi lo snippet
Una volta, nel template o layout del tuo sito, prima di </body>, così viene distribuito con ogni pagina. Il rafforzamento per la produzione (blocco della versione, SRI) si trova nella sezione Avanzate.
HTML <script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>Servi il file di dichiarazione
ai-disclosure.json deve essere leggibile in /.well-known/ sul tuo dominio. Su Vercel o Netlify, aggiungi il file al repository. Se il tuo framework riscrive ogni route su index.html, quel file richiede un'eccezione: vedi App a pagina singola nella sezione Avanzate. Anche le configurazioni di nginx e Apache si trovano nella sezione Avanzate.
Vercel / Netlify # Vercel / Netlify: commit the file public/.well-known/ai-disclosure.json # SPA that rewrites every route to index.html? # Exclude /.well-known/ from the rewrite (see Advanced).-
Verifica
Fatto quando il verificatore mostra Livello 2 · Visualizzato.
Avvia il verificatore
Verifica
Avvia il verificatore. Conferma tre cose: che il tuo file di dichiarazione è valido, che lo snippet è in funzione e che gli avvisi compaiono effettivamente sulla pagina. (Per i tecnici: controlli C1, C3 e da C4 a C6.)
Se il tuo sito blocca il nostro verificatore (AIDiscloseBot)
Le scansioni e le acquisizioni di prove provengono da AIDiscloseBot/1.0. Legge solo pagine pubbliche: non effettua mai l'accesso, non invia mai moduli e rispetta robots.txt. Se il tuo robots.txt o la tua protezione anti-bot blocca i crawler sconosciuti, consentilo esplicitamente:
User-agent: AIDiscloseBot
Allow: /
Consentirlo è un rischio? No. Un permesso in robots.txt non concede alcun accesso. Comunica solo ai bot rispettosi che possono leggere pagine già pubbliche. Chiunque può falsificare una stringa User-Agent, ma un falsificatore non ottiene nulla che le tue pagine pubbliche non diano già.
Se filtri il traffico con un WAF o un bot manager, non inserire mai nella whitelist solo in base allo User-Agent. Abbinalo alla verifica della fonte. Pubblichiamo l'identità del nostro crawler, e gli intervalli di IP in uscita man mano che vengono predisposti, su aidisclose.io/bot.json.
Avanzate
Theming with CSS variables, custom copy, single-page-app setup, and the full option reference are in the snippet reference.
Blocca lo script a una versione esatta (SRI)
Un hash di integrità nel tag script fa sì che il browser rifiuti di eseguire un file modificato. Fissa l'URL con la versione e genera l'hash dal file esatto che distribuisci:
curl -sO https://cdn.aidisclose.io/v1/aidisclose.js
openssl dgst -sha384 -binary aidisclose.js | openssl base64 -A
Servi tu stesso il file (nginx / Apache)
Per i server che controlli, servi direttamente il file ai-disclosure.json scaricato:
location = /.well-known/ai-disclosure.json {
alias /var/www/site/ai-disclosure.json;
default_type application/json;
add_header Cache-Control "max-age=3600";
}
Alias "/.well-known/ai-disclosure.json" "/var/www/site/ai-disclosure.json"
<Files "ai-disclosure.json">
ForceType application/json
</Files>
Servi dal tuo dominio il file ospitato nella dashboard
Il tuo server inoltra a noi le richieste per quell'unico indirizzo: tu modifichi il file nella dashboard e continua a essere servito dal tuo dominio. La dashboard mostra queste righe precompilate con la tua chiave del sito.
location = /.well-known/ai-disclosure.json {
proxy_pass https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY;
proxy_set_header Host cdn.aidisclose.io;
proxy_ssl_server_name on;
}
export default {
async fetch(request) {
const url = new URL(request.url);
if (url.pathname === "/.well-known/ai-disclosure.json") {
return fetch("https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY");
}
return fetch(request);
}
};
App a pagina singola e host statici
I framework che riscrivono ogni route su index.html, così come alcuni host statici, intercettano /.well-known/ai-disclosure.json e restituiscono l'HTML della tua applicazione con uno stato 200. Il file sembra presente nel repository, ma il verificatore legge l'HTML invece del manifest. Due soluzioni: escludi /.well-known/ dalla riscrittura globale in modo che il file statico venga servito con il tipo application/json, oppure aggiungi data-aidisclose="YOUR_SITE_KEY" al tag script per caricare il manifest ospitato da AIDisclose e non servire più il file.
# netlify.toml: serve the real file before the SPA fallback
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
force = false # a real file at the path wins over this fallback
# vercel.json: rewrite everything EXCEPT /.well-known to the app
{ "rewrites": [
{ "source": "/((?!\.well-known/).*)", "destination": "/index.html" }
] }