Průvodce instalací
Na vašem webu musí být aktivní dvě věci: oznámení, které vidí vaši návštěvníci, a malý veřejný soubor, který deklaruje vaše používání UI (vas-web.cz/.well-known/ai-disclosure.json). Tag snippetu se vloží jednou, je na každé stránce stejný a vaše deklarace rozhoduje, která oznámení se kde zobrazí. Vyberte svou platformu níže; většina zabere asi deset minut.
Banner a štítky UI, které vaši návštěvníci vidí na stránce.
ai-disclosure.json, veřejný soubor čitelný z vaší vlastní domény.
kontrola ukáže Úroveň 2 · Zobrazeno.
Vyberte svou platformu
WordPress
Nainstalujte plugin
Ve správě WordPress: Pluginy → Přidat nový → Nahrát plugin, vyberte soubor, který jste stáhli níže, a klikněte na Aktivovat.
Nechte jej dělat obě práce
Plugin zobrazuje oznámení a automaticky zveřejňuje váš soubor s deklarací. Označte obsah UI u libovolného příspěvku nebo obrázku jeho přepínačem „AI content“. Žádné úpravy kódu.
-
Ověření
Hotovo, když kontrola ukáže Úroveň 2 · Zobrazeno.
Spustit kontrolu
Shopify
Přidejte snippet
Online Store → Themes → ⋯ → Edit code → theme.liquid: vložte tento jeden tag těsně před </body>. theme.liquid je layout, přes který se vykresluje každá stránka, takže jedno vložení pokryje celý obchod. Shopify nemůže hostovat soubory v kořeni vaší domény, takže tag nese váš klíč webu AIDisclose (data-aidisclose) a načítá manifest, který za vás hostujeme.
theme.liquid <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>Propojte vaši deklaraci
Vložte tento odkaz do <head> ve stejném souboru. Váš dashboard zobrazuje oba řádky předvyplněné vaším klíčem webu.
<head> <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">Toto je povolená metoda podle specifikace.
-
Ověření
Hotovo, když kontrola ukáže Úroveň 1 · Deklarováno s poznámkou. To je očekávaný výsledek na této platformě a je v souladu.
Spustit kontrolu
Webflow
Přidejte snippet
Site settings → Custom code → Footer code: vložte blok snippetu níže a poté Publish. Vlastní kód na úrovni webu se načítá na každé stránce.
Footer code <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>Propojte vaši deklaraci
Do Head code přidejte řádek s odkazem na deklaraci (druhý blok níže). Chcete soubor raději doručovat z vaší vlastní domény? Použijte proxy v části Pokročilé, pokud vaše DNS běží přes Cloudflare.
Head code <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">Toto je povolená metoda podle specifikace.
-
Ověření
Hotovo, když kontrola ukáže Úroveň 1 · Deklarováno s poznámkou. To je očekávaný výsledek na této platformě a je v souladu.
Spustit kontrolu
Squarespace
Přidejte snippet
Settings → Advanced → Code Injection → Footer: vložte blok snippetu níže. Vložení kódu platí pro každou stránku. Vyžaduje plán Business.
Footer <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>Propojte vaši deklaraci
Do Header injection přidejte řádek s odkazem na deklaraci (druhý blok níže).
Header <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">Toto je povolená metoda podle specifikace.
-
Ověření
Hotovo, když kontrola ukáže Úroveň 1 · Deklarováno s poznámkou. To je očekávaný výsledek na této platformě a je v souladu.
Spustit kontrolu
Google Tag Manager
Vytvořte tag
New tag → Tag configuration → Custom HTML → vložte snippet. Spouštění: All Pages (Page View). Nepoužívejte zpožděné spouštění ani spouštění při posunu: pravidla zpřístupnění vyžadují oznámení od první expozice. Publikujte workspace.
Custom HTML <script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>Zveřejněte i vaši deklaraci
Tag Manager zajišťuje pouze oznámení. Váš soubor s deklarací je stále potřeba zprovoznit: postupujte podle kroku pro vaši platformu na ostatních záložkách, nebo podle záložky Vlastní kód, pokud provozujete vlastní web.
-
Ověření
Hotovo, když kontrola ukáže Úroveň 2 · Zobrazeno.
Spustit kontrolu
Vlastní kód
Přidejte snippet
Jednou do šablony nebo layoutu vašeho webu, před </body>, aby se dodával s každou stránkou. Produkční zabezpečení (připnutí verze, SRI) je v části Pokročilé.
HTML <script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>Doručujte soubor s deklarací
ai-disclosure.json musí být čitelný na /.well-known/ na vaší doméně. Na Vercelu nebo Netlify soubor commitněte. Pokud váš framework přepisuje každou routu na index.html, tento soubor potřebuje výjimku: viz Jednostránkové aplikace v části Pokročilé. Konfigurace nginx a Apache jsou také v části Pokročilé.
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).-
Ověření
Hotovo, když kontrola ukáže Úroveň 2 · Zobrazeno.
Spustit kontrolu
Ověření
Spusťte kontrolu. Potvrdí tři věci: váš soubor s deklarací je platný, snippet běží a oznámení se na stránce skutečně objevují. (Pro techniky: kontroly C1, C3 a C4 až C6.)
Pokud váš web blokuje naši kontrolu (AIDiscloseBot)
Kontroly a zachycení důkazů pocházejí z AIDiscloseBot/1.0. Čte pouze veřejné stránky: nikdy se nepřihlašuje, nikdy neodesílá formuláře a řídí se robots.txt. Pokud váš robots.txt nebo ochrana proti botům blokuje neznámé prohledávače, povolte jej výslovně:
User-agent: AIDiscloseBot
Allow: /
Je jeho povolení riziko? Ne. Povolení v robots.txt neuděluje žádný přístup. Pouze říká zdvořilým botům, že mohou číst stránky, které jsou již veřejné. User-Agent může kdokoli zfalšovat, ale falšovatel nezíská nic, co by mu vaše veřejné stránky již nedaly.
Pokud regulujete provoz pomocí WAF nebo správce botů, nikdy nepovolujte na základě samotného User-Agent. Doplňte to ověřením zdroje. Identitu našeho prohledávače a rozsahy výstupních IP adres, jak jsou přidělovány, zveřejňujeme na aidisclose.io/bot.json.
Pokročilé
Theming with CSS variables, custom copy, single-page-app setup, and the full option reference are in the snippet reference.
Uzamkněte skript na přesnou verzi (SRI)
Integritní hash ve script tagu přiměje prohlížeč odmítnout spuštění upraveného souboru. Připněte verzovanou URL a vygenerujte hash z přesného souboru, který nasazujete:
curl -sO https://cdn.aidisclose.io/v1/aidisclose.js
openssl dgst -sha384 -binary aidisclose.js | openssl base64 -A
Doručujte soubor sami (nginx / Apache)
Na serverech, které ovládáte, doručujte stažený ai-disclosure.json přímo:
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>
Doručujte soubor hostovaný v dashboardu z vaší vlastní domény
Váš server přeposílá požadavky na tuto jedinou adresu k nám: soubor upravujete v dashboardu a přesto se doručuje z vaší domény. Dashboard je zobrazuje předvyplněné vaším klíčem webu.
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);
}
};
Jednostránkové aplikace a statické hosty
Frameworky, které přepisují každou routu na index.html, a některé statické hosty zachytávají /.well-known/ai-disclosure.json a vracejí HTML vaší aplikace se stavem 200. Soubor vypadá jako commitnutý, ale kontrolní nástroj čte HTML místo manifestu. Dvě řešení: vyjměte /.well-known/ z pravidla přepisujícího všechny routy, aby se statický soubor doručoval s typem application/json, nebo přidejte data-aidisclose="YOUR_SITE_KEY" k tagu skriptu, aby se načetl manifest hostovaný na AIDisclose a soubor se nemusel doručovat vůbec.
# 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" }
] }