Installationsguide

Två saker behöver vara aktiva på din webbplats: meddelandet som dina besökare ser, och en liten offentlig fil som deklarerar din AI-användning (yoursite.com/.well-known/ai-disclosure.json). Skripttaggen klistras in en gång, är identisk på varje sida, och din deklaration avgör vilka meddelanden som visas var. Välj din plattform nedan; de flesta tar ungefär tio minuter.

1 · Visa meddelandena

Banner och AI-etiketter som dina besökare ser på sidan.

2 · Publicera din deklaration

ai-disclosure.json, en offentlig fil som kan läsas från din egen domän.

Du är klar när

kontrollverktyget visar Nivå 2 · Renderad.

Välj din plattform

WordPress

  1. Installera pluginet

    I din WordPress-administration: Plugins → Add New → Upload Plugin, välj filen du laddade ner nedan och klicka sedan på Activate.

    Ladda ner AIDisclose-pluginet (.zip)

  2. Låt det sköta båda uppgifterna

    Pluginet visar meddelandena och publicerar din deklarationsfil automatiskt. Markera AI-innehåll på valfritt inlägg eller bild med dess "AI content"-växel. Inga kodändringar.

  3. Verifiera

    Klart när kontrollverktyget visar Nivå 2 · Renderad.

    Kör kontrollverktyget

Verifiera

Kör kontrollverktyget. Det bekräftar tre saker: din deklarationsfil är giltig, skriptet körs, och meddelandena visas faktiskt på sidan. (För utvecklare: kontrollerna C1, C3 och C4 till C6.)

Kör kontrollverktyget

Om din webbplats blockerar vårt kontrollverktyg (AIDiscloseBot)

Skanningar och bevisregistreringar kommer från AIDiscloseBot/1.0. Den läser endast offentliga sidor: den loggar aldrig in, skickar aldrig formulär och följer robots.txt. Om din robots.txt eller ditt robotskydd blockerar okända sökrobotar, tillåt den uttryckligen:

robots.txt
User-agent: AIDiscloseBot
Allow: /

Är det en risk att tillåta den? Nej. En tillåtelse i robots.txt ger ingen åtkomst. Den talar bara om för artiga robotar att de får läsa sidor som redan är offentliga. Vem som helst kan förfalska en User-Agent-sträng, men en förfalskare får inget som dina offentliga sidor inte redan ger.

Om du styr trafik med en WAF eller robothanterare, tillåt aldrig enbart baserat på User-Agent. Kombinera det med källverifiering. Vi publicerar vår sökrobots identitet, och egress-IP-intervallen allteftersom de tillhandahålls, på aidisclose.io/bot.json.

Kör kontrollverktyget

Avancerat

Theming with CSS variables, custom copy, single-page-app setup, and the full option reference are in the snippet reference.

Lås skriptet till en exakt version (SRI)

En integritetshash i skripttaggen gör att webbläsaren vägrar köra en modifierad fil. Lås den versionshanterade URL:en och generera hashen från exakt den fil du distribuerar:

shell
curl -sO https://cdn.aidisclose.io/v1/aidisclose.js
openssl dgst -sha384 -binary aidisclose.js | openssl base64 -A
Leverera filen själv (nginx / Apache)

För servrar du kontrollerar, leverera den nedladdade ai-disclosure.json direkt:

nginx
location = /.well-known/ai-disclosure.json {
  alias /var/www/site/ai-disclosure.json;
  default_type application/json;
  add_header Cache-Control "max-age=3600";
}
Apache
Alias "/.well-known/ai-disclosure.json" "/var/www/site/ai-disclosure.json"
<Files "ai-disclosure.json">
  ForceType application/json
</Files>
Leverera den kontrollpanelsvärdda filen från din egen domän

Din server vidarebefordrar förfrågningar för den enda adressen till oss: du redigerar filen i kontrollpanelen, och den levereras fortfarande från din domän. Kontrollpanelen visar dessa förifyllda med din webbplatsnyckel.

nginx
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;
}
Cloudflare Worker
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);
  }
};
Single-page-appar och statiska värdar

Ramverk som skriver om varje rutt till index.html, och vissa statiska värdar, fångar upp /.well-known/ai-disclosure.json och returnerar din apps HTML med statuskod 200. Filen ser incheckad ut, men kontrollverktyget läser HTML i stället för manifestet. Två lösningar: undanta /.well-known/ från catch-all-omskrivningen så att den statiska filen levereras med typen application/json, eller lägg till data-aidisclose="YOUR_SITE_KEY" i skripttaggen för att läsa in det AIDisclose-hostade manifestet och slippa leverera filen helt.

netlify.toml / vercel.json
# 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" }
] }