Passar para o conteúdo principal

Compartilhar o consentimento entre domínios diferentes

Evite solicitar consentimento novamente a um visitante que passa de um de seus sites para outro, transmitindo seu token em seus links e carregando a mesma configuração em todos os lugares.

Escrito por Manon Manso

Quando um visitante faz sua escolha no seu banner, o consentimento é registrado com um identificador anônimo: o token. Ao transmitir este token nos links entre seus sites, através do parâmetro axeptio_token, o site de destino recupera a escolha do visitante e não exibe o banner uma segunda vez. Você pode compartilhar o consentimento entre dois sites ou mais.

O que este compartilhamento permite
O consentimento segue o visitante quando ele passa de um de seus sites para outro clicando em um link. Não se trata de um consentimento único para o conjunto de seus sites: um visitante que chega diretamente em um deles (através de um motor de busca, uma publicidade ou digitando o endereço) vê o banner, mesmo que já tenha feito sua escolha em outro de seus sites.

👉 Neste artigo, usaremos como exemplo dois sites: maboutique.com e monblog.com. O funcionamento é o mesmo com três sites ou mais.
Para um domínio principal e seus subdomínios (maboutique.com, aide.maboutique.com…), consulte Compartilhar o consentimento entre domínio principal e subdomínios.

Pré-requisitos: a mesma configuração em todos os seus sites

O consentimento está vinculado a uma configuração. Para que seja compartilhado, todos os seus sites devem carregar o mesmo projeto e a mesma configuração, ou seja, a mesma versão de cookies: o mesmo nome técnico indicado no parâmetro cookiesVersion de sua integração.

Usar o mesmo projeto não é suficiente. Duas configurações diferentes de um mesmo projeto não compartilham o consentimento, mesmo que uma tenha sido criada duplicando ou traduzindo a outra.

Nos seus sites

Resultado quando o visitante chega em outro de seus sites

Mesmo projeto, mesma configuração

O consentimento é recuperado: o banner não é exibido.

Mesmo projeto, configurações diferentes

O token é transmitido, mas o consentimento não é encontrado: o banner é exibido novamente.

Projetos diferentes

O banner é exibido novamente.

Consequência: seus visitantes veem o mesmo banner, com o mesmo design e os mesmos textos, em todos os sites que compartilham o consentimento.

Implementar o compartilhamento do consentimento

  1. Escolha a configuração comum a todos os seus sites.

  2. Nesta configuração, adicione o conjunto dos serviços utilizados em todos os sites concernentes, e não apenas em um deles.

  3. Integre Axeptio em cada um de seus sites, com o mesmo identificador do projeto e a mesma versão de cookies.

  4. Em cada um de seus sites, adicione o código abaixo, indicando em sharedConsentDomains os domínios de todos os seus sites, incluindo aquele no qual você está adicionando o código, sem https:// nem www. A lista é a mesma em cada site.

Código a adicionar:

<script>
// Compartilhamento do consentimento Axeptio entre seus sites.
// Adicione este código em cada um dos sites listados abaixo.
window._axcb = window._axcb || [];
window._axcb.push(function (axeptio) {
// Aguarda que o visitante tenha feito sua escolha no banner
axeptio.on("cookies:complete", function () {
// À MODIFICAR: os domínios de todos os seus sites, incluindo este,
// sem https:// nem www. A lista é a mesma em cada site.
// Seus subdomínios (www, fr, blog…) são incluídos automaticamente.
var sharedConsentDomains = [
"maboutique.com",
"monblog.com"
];

// Retorna o domínio da lista ao qual pertence um endereço, ou null
function findSharedDomain(hostname) {
return sharedConsentDomains.find(function (domain) {
return hostname === domain || hostname.endsWith("." + domain);
}) || null;
}

// Página fora da lista: nenhum link é modificado
var currentDomain = findSharedDomain(window.location.hostname);
if (!currentDomain) {
return;
}

document.querySelectorAll("a[href]").forEach(function (link) {
var url;
try {
url = new URL(link.href);
} catch (e) {
return; // Endereço ilegível: este link é ignorado
}
// Apenas os links para páginas web são tratados (não mailto:, tel:…)
if (url.protocol !== "http:" && url.protocol !== "https:") {
return;
}
// Adiciona o token do visitante aos links para outro site da lista
var targetDomain = findSharedDomain(url.hostname);
if (targetDomain && targetDomain !== currentDomain) {
url.searchParams.set("axeptio_token", axeptio.getToken());
link.href = url.href;
}
});
});
});
</script>

Uma vez que o visitante tenha feito sua escolha, este código adiciona seu token aos links que levam para outro domínio da lista, ou para um de seus subdomínios. Os outros links não são modificados. Um link para monblog.com se torna, por exemplo:

<a href="https://www.monblog.com/?axeptio_token=TOKEN_DO_VISITANTE">

TOKEN_DO_VISITANTE é substituído pelo token do visitante, adicionado automaticamente pelo código.

Se você tem mais de dois sites, adicione o domínio de cada um deles a sharedConsentDomains, depois adicione este código, com a mesma lista, em cada um deles. Por exemplo, com um terceiro site monforum.com:

var sharedConsentDomains = [
"maboutique.com",
"monblog.com",
"monforum.com"
];

O que este código faz, passo a passo

  1. Aguarda que o visitante tenha feito sua escolha no banner: aceitar, recusar ou personalizar. Antes deste momento, ele não modifica nada.

  2. Lê a lista de seus sites, sharedConsentDomains. Cada domínio da lista inclui seus subdomínios: www.monblog.com e fr.monblog.com contam como monblog.com.

  3. Procura na lista o site no qual se encontra. Se não o encontrar, ele para sem modificar nenhum link: é por isso que a lista deve conter todos os seus sites, incluindo aquele no qual o código está instalado.

  4. Passa em revista todos os links da página. Um link que leva para outro site da lista recebe o parâmetro axeptio_token, com o token do visitante. Os outros links permanecem como estão: links para o mesmo site, para um site ausente da lista (Google, Facebook…), links mailto: ou tel:, endereços ilegíveis.

O código modifica apenas os links presentes na página no momento em que o visitante faz sua escolha. Um link que aparece mais tarde, por exemplo em um menu carregado posteriormente, não recebe o token.

Resultado esperado

Quando um visitante faz sua escolha em maboutique.com, depois clica em um link para monblog.com, o SDK Axeptio lê o token na URL e recupera sua escolha: o banner não é exibido em monblog.com. O compartilhamento funciona entre todos os sites da lista, em todos os sentidos, já que o código está presente em cada um deles.

Se seus sites são multilíngues

Crie uma configuração por idioma, e carregue a mesma configuração para um idioma fornecido em todos os seus sites: por exemplo, a configuração francesa nas versões francesas de maboutique.com e de monblog.com. Cada uma destas configurações declara o conjunto dos serviços utilizados em todos os seus sites.

Os links de um site para outro devem levar para o mesmo idioma. Se um link da versão francesa de maboutique.com leva para a versão espanhola de monblog.com, as duas páginas carregam configurações diferentes: o banner é exibido novamente.

Em um mesmo site, mudar de idioma (por exemplo passar de /fr para /es) não faz o banner reaparecer quando as configurações desses idiomas declaram os mesmos serviços: a escolha do visitante é relida desde o cookie de seu navegador.

Para carregar a configuração correta de acordo com o idioma da página, consulte Adaptar seu banner de acordo com as versões de seu site: introdução.

Respondeu à sua pergunta?