Consentimento de cookies
Bloqueie scripts de análise até o consentimento de cookies com integrations.cookies e carregue um banner do Osano ou Termly no seu site de documentação.
Jamdesk pode reter todos os scripts de análise e rastreamento (Google Analytics, Google Tag Manager, Plausible, chat do Crisp, JavaScript personalizado e a própria análise integrada do Jamdesk) até que o visitante consinta com os cookies. O Jamdesk lê o consentimento do localStorage do navegador. Qualquer plataforma de gerenciamento de consentimento (CMP) que registre o consentimento ali funciona, incluindo Osano e Termly.
Nenhum rastreamento é executado antes de o visitante concordar. Isso ajuda você a cumprir regulamentações de privacidade como a LGPD, o GDPR, o CCPA e a Diretiva ePrivacy.
工作原理
Defina uma chave de localStorage e o valor que significa "consentimento concedido" em docs.json:
{
"integrations": {
"cookies": {
"key": "jamdesk_consent",
"value": "granted"
}
}
}Com integrations.cookies definido, nenhum script de análise é carregado até que localStorage["jamdesk_consent"] seja igual a "granted". Os scripts são carregados assim que o seu banner de consentimento registra a aceitação, sem recarregar a página. Um consentimento revogado passa a valer no próximo carregamento completo da página do visitante. Scripts já em execução na página atual continuam executando até que o visitante navegue para outra página ou recarregue.
key e value são obrigatórios. Uma key ou value ausente ou vazia desativa o controle de consentimento. Os scripts são então carregados normalmente.
O controle também se aplica à análise integrada do Jamdesk. Visitantes que nunca consentem não são contabilizados. Espere números de visualizações de página mais baixos no painel do seu projeto depois de ativar isso.
连接同意横幅
A maioria das CMPs (incluindo Osano e Termly) não expõe uma flag estável de localStorage que o Jamdesk possa ler. Elas armazenam o consentimento em cookies ou em valores que mudam por visitante. Em vez disso, adicione um pequeno snippet de ponte na área de código personalizado da própria CMP. Ele grava jamdesk_consent quando um visitante aceita. O snippet é executado como parte da CMP, então sempre é executado. O JavaScript personalizado do Jamdesk não pode fazer esse trabalho, pois ele mesmo é controlado pelo consentimento.
O snippet grava granted no consentimento. Ele remove a chave quando o consentimento é retirado. O controle então se reaplica no próximo carregamento da página.
Osano
Adicione o seu script do Osano em docs.json:
{
"integrations": {
"osano": {
"scriptSource": "https://cmp.osano.com/YOUR_CUSTOMER_ID/YOUR_CONFIG_ID/osano.js"
}
}
}A URL do script vem do seu painel do Osano. Ela sempre começa com https://cmp.osano.com/ e termina com /osano.js.
Em seguida, adicione esta ponte no Osano (Consent Manager → sua configuração → JavaScript personalizado):
function jdOsanoBridge(consent) {
if (consent && consent.ANALYTICS === 'ACCEPT') {
localStorage.setItem('jamdesk_consent', 'granted');
} else {
localStorage.removeItem('jamdesk_consent');
}
}
if (window.Osano && window.Osano.cm) {
jdOsanoBridge(window.Osano.cm.getConsent());
window.Osano.cm.addEventListener('osano-cm-consent-saved', jdOsanoBridge);
} else {
window.addEventListener('osano-cm-initialized', function () {
jdOsanoBridge(window.Osano.cm.getConsent());
window.Osano.cm.addEventListener('osano-cm-consent-saved', jdOsanoBridge);
});
}
Termly
Adicione o seu script do Termly em docs.json:
{
"integrations": {
"termly": {
"scriptSource": "https://app.termly.io/resource-blocker/YOUR-WEBSITE-UUID?autoBlock=on"
}
}
}A URL vem das instruções de incorporação do Termly para o seu site (o script Resource Blocker). A query ?autoBlock=on é opcional. Ela ativa o bloqueio automático de scripts do Termly.
Em seguida, adicione esta ponte no Termly (seu site → HTML/JavaScript personalizado):
function jdTermlyBridge() {
var s = Termly.getConsentState();
if (s && s.analytics) {
localStorage.setItem('jamdesk_consent', 'granted');
} else {
localStorage.removeItem('jamdesk_consent');
}
}
(function register() {
if (window.Termly && typeof Termly.on === 'function') {
Termly.on('consent', jdTermlyBridge);
try { jdTermlyBridge(); } catch (e) {}
} else {
setTimeout(register, 200);
}
})();
Osano e Termly são carregados primeiro no <head> da página, antes de qualquer outro script. O bloqueio automático deles depende disso.
Se a sua CMP operar no modo estrito ou de bloqueio automático, inclua na lista de permissões *.jamdesk.app e o seu domínio de documentação personalizado nas regras gerenciadas dela (Osano: classificação/lista de permissões; Termly: Domain Rules ou Custom Blocking Map). Caso contrário, a CMP pode bloquear os recursos do seu próprio site de documentação e quebrar a página.
测试设置
O controle só é executado no seu site publicado ao vivo. A pré-visualização local jamdesk dev ignora a configuração de consentimento. Para testar:
- Abra o seu site de documentação ao vivo com o
localStoragevazio. A análise não deve carregar (verifique a aba Network do navegador: nenhuma requisição para Google, Plausible ou/api/ev). - No console do navegador, execute
localStorage.setItem("jamdesk_consent", "granted"). Os scripts devem carregar em cerca de um segundo, sem recarregar a página.
完全停用 Jamdesk 分析
Desligue a análise integrada (sem cookies) do Jamdesk para todos os visitantes, independentemente do consentimento:
{
"analytics": { "enabled": false }
}