Guia de instalação
Duas coisas precisam estar no ar no seu site: o aviso que os seus visitantes veem e um pequeno arquivo público que declara o seu uso de IA (seusite.com/.well-known/ai-disclosure.json). A tag do snippet é colada uma única vez, é idêntica em todas as páginas, e a sua declaração decide quais avisos aparecem onde. Escolha a sua plataforma abaixo; a maioria leva cerca de dez minutos.
Banner e rótulos de IA que os seus visitantes veem na página.
ai-disclosure.json, um arquivo público legível a partir do seu próprio domínio.
o verificador mostrar Nível 2 · Renderizado.
Escolha a sua plataforma
WordPress
Instale o plugin
No painel do WordPress: Plugins → Adicionar novo → Enviar plugin, escolha o arquivo que você baixou abaixo e clique em Ativar.
Deixe-o cuidar das duas tarefas
O plugin exibe os avisos e publica o seu arquivo de declaração automaticamente. Marque conteúdo de IA em qualquer post ou imagem com o botão "Conteúdo de IA". Sem edição de código.
-
Verificar
Concluído quando o verificador mostrar Nível 2 · Renderizado.
Executar o verificador
Shopify
Adicione o snippet
Loja virtual → Temas → ⋯ → Editar código → theme.liquid: cole esta única tag logo antes de </body>. O theme.liquid é o layout pelo qual todas as páginas são renderizadas, então uma única colagem cobre a loja inteira. O Shopify não consegue hospedar arquivos na raiz do seu domínio, então a tag carrega a sua chave de site do AIDisclose (data-aidisclose) e carrega o manifesto que hospedamos para você.
theme.liquid <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>Vincule a sua declaração
Cole este link dentro de <head> no mesmo arquivo. O seu painel mostra as duas linhas já preenchidas com a sua chave de site.
<head> <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">Este é um método permitido pela especificação.
-
Verificar
Concluído quando o verificador mostrar Nível 1 · Declarado com uma observação. Esse é o resultado esperado nesta plataforma, e ele está em conformidade.
Executar o verificador
Webflow
Adicione o snippet
Configurações do site → Código personalizado → Código do rodapé: cole o bloco do snippet abaixo e clique em Publicar. O código personalizado no nível do site carrega em todas as páginas.
Footer code <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>Vincule a sua declaração
No código do cabeçalho (Head code), adicione a linha de link da declaração (segundo bloco abaixo). Prefere servir o arquivo a partir do seu próprio domínio? Use o proxy em Avançado se o seu DNS passa pela Cloudflare.
Head code <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">Este é um método permitido pela especificação.
-
Verificar
Concluído quando o verificador mostrar Nível 1 · Declarado com uma observação. Esse é o resultado esperado nesta plataforma, e ele está em conformidade.
Executar o verificador
Squarespace
Adicione o snippet
Configurações → Avançado → Injeção de código → Rodapé: cole o bloco do snippet abaixo. A injeção de código se aplica a todas as páginas. É necessário o plano Business.
Footer <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>Vincule a sua declaração
Na injeção de cabeçalho, adicione a linha de link da declaração (segundo bloco abaixo).
Header <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">Este é um método permitido pela especificação.
-
Verificar
Concluído quando o verificador mostrar Nível 1 · Declarado com uma observação. Esse é o resultado esperado nesta plataforma, e ele está em conformidade.
Executar o verificador
Google Tag Manager
Crie a tag
Nova tag → Configuração da tag → HTML personalizado → cole o snippet. Acionamento: Todas as páginas (visualização de página). Não use um acionador com atraso ou por rolagem: as regras de divulgação exigem o aviso desde a primeira exposição. Publique o espaço de trabalho.
Custom HTML <script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>Publique também a sua declaração
O Tag Manager cuida apenas dos avisos. O seu arquivo de declaração ainda precisa entrar no ar: siga a etapa da sua plataforma nas outras abas, ou a aba Código personalizado se você mantém o próprio site.
-
Verificar
Concluído quando o verificador mostrar Nível 2 · Renderizado.
Executar o verificador
Código personalizado
Adicione o snippet
Uma única vez no template ou layout do seu site, antes de </body>, para que ele acompanhe todas as páginas. O reforço para produção (fixação de versão, SRI) está em Avançado.
HTML <script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>Sirva o arquivo de declaração
O arquivo ai-disclosure.json precisa poder ser lido em /.well-known/ no seu domínio. No Vercel ou Netlify, inclua o arquivo no repositório. Se o seu framework reescrever todas as rotas para index.html, esse arquivo precisa de uma exceção: consulte Aplicações de página única em Avançado. As configurações de nginx e Apache também estão em Avançado.
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).-
Verificar
Concluído quando o verificador mostrar Nível 2 · Renderizado.
Executar o verificador
Verificar
Execute o verificador. Ele confirma três coisas: o seu arquivo de declaração é válido, o snippet está em funcionamento e os avisos realmente aparecem na página. (Para engenheiros: verificações C1, C3 e C4 a C6.)
Se o seu site bloqueia o nosso verificador (AIDiscloseBot)
As verificações e as capturas de evidência vêm do AIDiscloseBot/1.0. Ele lê apenas páginas públicas: nunca faz login, nunca envia formulários e obedece ao robots.txt. Se o seu robots.txt ou a sua proteção contra bots bloqueia rastreadores desconhecidos, libere-o explicitamente:
User-agent: AIDiscloseBot
Allow: /
Liberar é um risco? Não. Uma permissão no robots.txt não concede nenhum acesso. Ela apenas informa a bots educados que eles podem ler páginas que já são públicas. Qualquer um pode falsificar uma string de User-Agent, mas um falsificador não ganha nada além do que as suas páginas públicas já oferecem.
Se você controla o tráfego com um WAF ou gerenciador de bots, nunca libere apenas com base no User-Agent. Combine isso com a verificação da origem. Publicamos a identidade do nosso rastreador, e as faixas de IP de saída à medida que são provisionadas, em aidisclose.io/bot.json.
Avançado
Theming with CSS variables, custom copy, single-page-app setup, and the full option reference are in the snippet reference.
Trave o script em uma versão exata (SRI)
Um hash de integridade na tag de script faz o navegador se recusar a executar um arquivo modificado. Fixe a URL versionada e gere o hash a partir do arquivo exato que você publica:
curl -sO https://cdn.aidisclose.io/v1/aidisclose.js
openssl dgst -sha384 -binary aidisclose.js | openssl base64 -A
Sirva o arquivo você mesmo (nginx / Apache)
Em servidores que você controla, sirva diretamente o ai-disclosure.json baixado:
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>
Sirva o arquivo hospedado no painel a partir do seu próprio domínio
O seu servidor encaminha para nós as requisições daquele endereço específico: você edita o arquivo no painel e ele continua sendo servido a partir do seu domínio. O painel mostra estes valores já preenchidos com a sua chave de site.
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);
}
};
Aplicações de página única e hosts estáticos
Os frameworks que reescrevem todas as rotas para index.html, e alguns hosts estáticos, interceptam /.well-known/ai-disclosure.json e retornam o HTML do seu aplicativo com um status 200. O arquivo parece estar incluído no repositório, mas o verificador lê HTML em vez do manifesto. Duas soluções: exclua /.well-known/ da reescrita geral para que o arquivo estático seja servido com o tipo application/json, ou adicione data-aidisclose="YOUR_SITE_KEY" à tag de script para carregar o manifesto hospedado pelo AIDisclose e não servir o arquivo por completo.
# 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" }
] }