Przewodnik instalacji
Na Twojej stronie muszą działać dwie rzeczy: informacja, którą widzą odwiedzający, oraz mały publiczny plik deklarujący Twoje wykorzystanie SI (twojastrona.pl/.well-known/ai-disclosure.json). Znacznik skryptu wkleja się raz, jest identyczny na każdej stronie, a Twoja deklaracja decyduje, które informacje pojawiają się i gdzie. Wybierz swoją platformę poniżej; większość zajmuje około dziesięciu minut.
Baner i etykiety SI, które odwiedzający widzą na stronie.
ai-disclosure.json, publiczny plik odczytywalny z Twojej własnej domeny.
weryfikator pokaże Poziom 2 · Wyświetlany.
Wybierz swoją platformę
WordPress
Zainstaluj wtyczkę
W panelu administracyjnym WordPress: Plugins → Add New → Upload Plugin, wybierz plik pobrany poniżej, a następnie kliknij Activate.
Pozwól jej wykonać oba zadania
Wtyczka wyświetla informacje i automatycznie publikuje Twój plik deklaracji. Oznacz treści SI w dowolnym wpisie lub obrazie przełącznikiem „AI content”. Bez edycji kodu.
-
Zweryfikuj
Gotowe, gdy weryfikator pokaże Poziom 2 · Wyświetlany.
Uruchom weryfikator
Shopify
Dodaj skrypt
Online Store → Themes → ⋯ → Edit code → theme.liquid: wklej ten jeden znacznik tuż przed </body>. theme.liquid to szablon, przez który renderowana jest każda strona, więc jedno wklejenie obejmuje cały sklep. Shopify nie może hostować plików w katalogu głównym Twojej domeny, więc znacznik zawiera Twój klucz witryny AIDisclose (data-aidisclose) i wczytuje manifest, który hostujemy za Ciebie.
theme.liquid <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>Podłącz swoją deklarację
Wklej ten link wewnątrz <head> w tym samym pliku. Twój panel pokazuje obie linie wypełnione Twoim kluczem witryny.
<head> <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">To metoda dozwolona w specyfikacji.
-
Zweryfikuj
Gotowe, gdy weryfikator pokaże Poziom 1 · Zadeklarowany z adnotacją. Taki jest oczekiwany wynik na tej platformie i jest zgodny z wymogami.
Uruchom weryfikator
Webflow
Dodaj skrypt
Site settings → Custom code → Footer code: wklej blok skryptu poniżej, a następnie opublikuj. Kod niestandardowy na poziomie witryny wczytuje się na każdej stronie.
Footer code <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>Podłącz swoją deklarację
W sekcji Head code dodaj linię z linkiem deklaracji (drugi blok poniżej). Wolisz serwować plik z własnej domeny? Skorzystaj z proxy w sekcji Zaawansowane, jeśli Twój DNS działa przez Cloudflare.
Head code <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">To metoda dozwolona w specyfikacji.
-
Zweryfikuj
Gotowe, gdy weryfikator pokaże Poziom 1 · Zadeklarowany z adnotacją. Taki jest oczekiwany wynik na tej platformie i jest zgodny z wymogami.
Uruchom weryfikator
Squarespace
Dodaj skrypt
Settings → Advanced → Code Injection → Footer: wklej blok skryptu poniżej. Wstrzykiwanie kodu obowiązuje na każdej stronie. Wymaga planu Business.
Footer <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>Podłącz swoją deklarację
W sekcji Header injection dodaj linię z linkiem deklaracji (drugi blok poniżej).
Header <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">To metoda dozwolona w specyfikacji.
-
Zweryfikuj
Gotowe, gdy weryfikator pokaże Poziom 1 · Zadeklarowany z adnotacją. Taki jest oczekiwany wynik na tej platformie i jest zgodny z wymogami.
Uruchom weryfikator
Google Tag Manager
Utwórz tag
New tag → Tag configuration → Custom HTML → wklej skrypt. Wyzwalanie: All Pages (Page View). Nie używaj wyzwalacza opóźnionego ani przewijania: przepisy dotyczące ujawniania wymagają informacji od pierwszego kontaktu. Opublikuj obszar roboczy.
Custom HTML <script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>Opublikuj także swoją deklarację
Tag Manager obsługuje tylko informacje. Twój plik deklaracji nadal musi zostać opublikowany: wykonaj krok dla swojej platformy w pozostałych zakładkach lub zakładkę Kod niestandardowy, jeśli prowadzisz własną stronę.
-
Zweryfikuj
Gotowe, gdy weryfikator pokaże Poziom 2 · Wyświetlany.
Uruchom weryfikator
Kod niestandardowy
Dodaj skrypt
Raz w szablonie lub układzie strony, przed </body>, aby był dostarczany z każdą stroną. Wzmocnienie produkcyjne (przypięcie wersji, SRI) znajduje się w sekcji Zaawansowane.
HTML <script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>Serwuj plik deklaracji
ai-disclosure.json musi być odczytywalny w /.well-known/ w Twojej domenie. Na Vercel lub Netlify zatwierdź plik w repozytorium. Jeśli Twój framework przepisuje każdą trasę na index.html, ten plik wymaga wyjątku: zobacz Aplikacje jednostronicowe w sekcji Zaawansowane. Konfiguracje nginx i Apache również znajdują się w sekcji Zaawansowane.
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).-
Zweryfikuj
Gotowe, gdy weryfikator pokaże Poziom 2 · Wyświetlany.
Uruchom weryfikator
Zweryfikuj
Uruchom weryfikator. Potwierdza trzy rzeczy: Twój plik deklaracji jest ważny, skrypt działa, a informacje rzeczywiście pojawiają się na stronie. (Dla inżynierów: kontrole C1, C3 oraz od C4 do C6.)
Jeśli Twoja strona blokuje nasz weryfikator (AIDiscloseBot)
Skany i przechwycenia dowodów pochodzą od AIDiscloseBot/1.0. Odczytuje wyłącznie strony publiczne: nigdy się nie loguje, nigdy nie wysyła formularzy i przestrzega robots.txt. Jeśli Twój robots.txt lub ochrona przed botami blokuje nieznane roboty, zezwól na niego jawnie:
User-agent: AIDiscloseBot
Allow: /
Czy zezwolenie na niego wiąże się z ryzykiem? Nie. Wpis zezwalający w robots.txt nie przyznaje żadnego dostępu. Informuje jedynie grzeczne boty, że mogą odczytywać strony, które i tak są już publiczne. Każdy może podrobić ciąg User-Agent, ale fałszerz nie uzyska niczego, czego Twoje publiczne strony i tak już nie udostępniają.
Jeśli kontrolujesz ruch za pomocą WAF lub menedżera botów, nigdy nie twórz reguły zezwalającej wyłącznie na podstawie User-Agent. Połącz ją z weryfikacją źródła. Publikujemy tożsamość naszego robota oraz zakresy adresów IP wyjściowych w miarę ich udostępniania pod adresem aidisclose.io/bot.json.
Zaawansowane
Theming with CSS variables, custom copy, single-page-app setup, and the full option reference are in the snippet reference.
Zablokuj skrypt do konkretnej wersji (SRI)
Skrót integralności w znaczniku script sprawia, że przeglądarka odmawia uruchomienia zmodyfikowanego pliku. Przypnij wersjonowany adres URL i wygeneruj skrót z dokładnie tego pliku, który wdrażasz:
curl -sO https://cdn.aidisclose.io/v1/aidisclose.js
openssl dgst -sha384 -binary aidisclose.js | openssl base64 -A
Serwuj plik samodzielnie (nginx / Apache)
Na serwerach, które kontrolujesz, serwuj pobrany plik ai-disclosure.json bezpośrednio:
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>
Serwuj plik hostowany w panelu z własnej domeny
Twój serwer przekazuje żądania tego jednego adresu do nas: edytujesz plik w panelu, a on nadal jest serwowany z Twojej domeny. Panel pokazuje je wypełnione Twoim kluczem witryny.
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);
}
};
Aplikacje jednostronicowe i hosty statyczne
Frameworki, które przepisują każdą trasę na index.html, oraz niektóre hosty statyczne przechwytują /.well-known/ai-disclosure.json i zwracają HTML Twojej aplikacji ze statusem 200. Plik wygląda na zatwierdzony, ale weryfikator odczytuje HTML zamiast manifestu. Dwa rozwiązania: wyklucz /.well-known/ z reguły przepisującej wszystkie trasy, aby plik statyczny był serwowany z typem application/json, albo dodaj data-aidisclose="YOUR_SITE_KEY" do tagu skryptu, aby wczytać manifest hostowany przez AIDisclose i całkowicie pominąć serwowanie pliku.
# 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" }
] }