Implementar o consentimento com uma plataforma de gerenciamento de consentimento (CMP) usando a extensão SDK da Web da plataforma

Muitas regulamentações legais de privacidade introduziram requisitos de consentimento ativo e específico quando se trata de coleta de dados, personalização e outros casos de uso de marketing. Para atender a esses requisitos, a Adobe Experience Platform permite capturar informações de consentimento em perfis de clientes individuais e usar essas preferências como um fator determinante na forma como os dados de cada cliente são usados em workflows da plataforma de downstream.

OBSERVAÇÃO

O Adobe Experience Platform Launch está sendo integrado à Adobe Experience Platform como um conjunto de tecnologias de coleção de dados. Várias alterações de terminologia foram implementadas na interface de que você deve estar ciente ao usar este conteúdo:

  • Agora o Platform launch (lado do cliente) é tags
  • O lado do servidor do Platform launch agora é event forwarding
  • As configurações de borda agora são datastreams

Este tutorial demonstra como implementar e ativar dados de consentimento obtidos de uma Plataforma de gerenciamento de consentimento (CMP) usando a extensão SDK da Web da plataforma na Coleta de dados. Faremos isso usando os padrões do Adobe e o padrão de consentimento do IAB TCF 2.0, com o OneTrust ou Sourcepoint como CMPs de exemplo.

Este tutorial usa a extensão SDK da Web da plataforma para enviar dados de consentimento para a Plataforma. Para obter uma visão geral do SDK da Web, consulte esta página.

Pré-requisitos

Os pré-requisitos para usar o SDK da Web estão listados aqui.

Nessa página, há um requisito para um "Conjunto de dados do evento" e, como parece, esse é um conjunto de dados para manter os dados do evento da experiência. Para enviar informações de consentimento com eventos, o [grupo de campos Detalhes de privacidade](https://github.com/adobe/xdm/blob/master/docs/reference/field groups/experience-event/experienceevent-privacy.schema.md) precisa ser adicionado ao esquema Evento de experiência:

Para o padrão de consentimento da plataforma v2.0, também precisaremos acessar o Adobe Experience Profile para criar um esquema e conjunto de dados de Perfil individual XDM. Para obter um tutorial sobre a criação do esquema, consulte Criar um esquema usando o Editor de esquema e para o grupo de campos de perfil Detalhes da preferência necessário, consulte Documentação XDM.

Este tutorial supõe que você tenha acesso à Coleta de dados e criou uma propriedade de tag do lado do cliente com a extensão do SDK da Web instalada e uma biblioteca de trabalho criada e criada para desenvolvimento. Estes tópicos são detalhados e demonstrados nestes documentos:

Também usaremos a extensão Platform Debugger do Chrome para inspecionar e validar nossa implementação.

Para implementar o exemplo da TCF do IAB com uma CMP em seu próprio site, você precisará acessar uma CMP como OneTrust ou Sourcepoint para gerar os dados que eles fornecem, ou você pode simplesmente acompanhar aqui e ver os resultados abaixo.

OBSERVAÇÃO

O padrão 1.0 está sendo distribuído em favor da v2.0. O padrão 2.0 permite adicionar dados de consentimento adicionais que podem ser usados para impor manualmente as preferências de consentimento. As capturas de tela abaixo da extensão SDK da Web da plataforma são da versão 2.4.0 da extensão que é compatível com v1.0 ou v2.0 do Adobe Consent Standard.

Para obter mais informações sobre esses padrões, consulte Suporte às preferências de consentimento do cliente.

Etapa 1: Configurar o consentimento na extensão do SDK da Web

Depois de instalar a extensão SDK da Web da plataforma em uma propriedade de tag, podemos configurar as opções para endereçar dados de consentimento na tela de configuração de extensão:

A seção "Privacidade" define o nível de consentimento para o SDK se o usuário não tiver fornecido preferências de consentimento anteriormente. Isso define o estado padrão para a coleta de dados de consentimento e evento no SDK. A configuração escolhida responde à pergunta "o que o SDK deve fazer se o usuário ainda não tiver fornecido preferências de consentimento explícitas?"

  • Em - Colete eventos que ocorrem antes que o usuário forneça preferências de consentimento.
  • Out - Solte os eventos que ocorrem antes que o usuário forneça as preferências de consentimento.
  • Pendente - eventos da fila que ocorrem antes que o usuário forneça as preferências de consentimento.
  • Fornecido pelo elemento de dados

Se a configuração de consentimento padrão for "In", isso informará ao SDK que ele não deve aguardar por consentimento explícito e deverá coletar os eventos que ocorrem antes que o usuário forneça as preferências de consentimento. Normalmente, essas preferências são manipuladas e armazenadas em um CMP.

Se a configuração de consentimento padrão for "Out", isso informará ao SDK que ele não deve coletar eventos que ocorram antes que as preferências de aceitação do usuário sejam definidas. A atividade do visitante que ocorre antes de definir a preferência de consentimento não será incluída em nenhum dado enviado pelo SDK depois que o consentimento for definido. Por exemplo, se você rolar e exibir uma página da Web antes de selecionar o banner de consentimento, e essa configuração "Fora" for usada, essa atividade de rolagem e o tempo de exibição não serão enviados se o usuário posteriormente fornecer consentimento explícito para a coleta de dados.

Se a configuração de consentimento padrão for "Pendente", o SDK colocará em fila todos os eventos que ocorrerem antes de o usuário fornecer preferências de consentimento, de modo que os eventos possam ser enviados depois que as preferências de consentimento forem definidas e depois que o SDK for configurado inicialmente durante uma visita.

Com essa configuração "Pendente", tentar executar qualquer comando que exija preferências de aceitação do usuário (por exemplo, o comando de evento) resultará na fila do comando no SDK. Esses comandos não são processados até que você comunique as preferências de aceitação do usuário ao SDK.

Depois que uma CMP coleta as preferências do usuário, podemos comunicar essas preferências ao SDK. Em uma seção posterior abaixo, veremos como obter esses dados de opt-in e usá-los com a extensão do SDK da Web.

"Fornecido pelo elemento de dados" nos permite acessar um elemento de dados que contém qualquer dado de preferência de consentimento capturado pelo código personalizado ou por uma CMP em seu site ou na camada de dados. Um elemento de dados usado para essa finalidade deve resolver "in", "out" ou "pending".

Observe: essa configuração do SDK não é persistente para os perfis dos usuários, é específica para definir o comportamento do SDK antes que as preferências de consentimento explícito sejam fornecidas pelo visitante.

Para saber mais sobre como configurar a extensão do SDK da Web, consulte a Visão geral da extensão do SDK da Web da plataforma e Suporte às preferências de consentimento do cliente.

Neste exemplo, vamos escolher a opção para "Pendente" e selecionar Salvar para salvar nossas configurações.

Etapa 2: Comunicar preferências de consentimento

Agora que definimos o comportamento padrão do SDK, podemos usar tags para enviar preferências de consentimento explícitas de um visitante para a Platform. O envio de dados de consentimento usando o padrão Adobe 1.0 ou 2.0 é facilmente implementado usando a ação setConsent do SDK da Web nas regras de tags.

Vamos criar uma regra para demonstrar isso. Na propriedade de tag da Plataforma, selecione Regras, em seguida, no botão azul Adicionar regras . Vamos nomear a Regra como "setAdobeConsent" e selecionar para adicionar um Evento. Para o Tipo de evento, escolha "Janela carregada" que acionará essa regra sempre que uma página for carregada em seu site. Em seguida, em "Ações", selecione "Adicionar" para abrir a tela de configuração da ação. É aqui que definiremos os dados de consentimento. Selecione a lista suspensa "Extensão" e selecione "SDK da Web da plataforma", selecione o "Tipo de ação" e selecione "Definir consentimento".

Em "Informações de consentimento", escolha "Preencha um formulário". Nesta ação de regra, usaremos o SDK da Web para definir o consentimento para o padrão de consentimento do Adobe 1.0 preenchendo o formulário exibido:

Podemos optar por transmitir "Entrada", "Saída" ou "Fornecida por elemento de dados" com esta ação Definir consentimento. Um elemento de dados aqui deve resolver como "dentro" ou "fora".

Neste exemplo, vamos selecionar "In" para indicar que o visitante consentiu em permitir que o SDK da Web envie dados para a Platform. Selecione o botão azul "Manter alterações" para salvar esta ação e, em seguida, "Salvar" para salvar esta regra.

Observação: Depois que um visitante do site rejeitar, o SDK não permitirá que você defina o consentimento dos usuários para o no.

As regras de tags podem ser acionadas por uma variedade de events incorporados ou personalizados, que podem ser usados para transmitir esses dados de consentimento no momento apropriado durante uma sessão de visitante. No exemplo acima, usamos o evento de carregamento de janela para acionar a regra. Em uma seção posterior, usaremos um evento de preferência de consentimento de uma CMP para acionar uma ação Definir consentimento. Você pode usar uma ação Definir consentimento em uma regra acionada por qualquer evento que você preferir que indique uma configuração de preferência de aceitação.

Configuração do consentimento com o Padrão de consentimento da plataforma 2.0

A versão 2.0 do padrão de consentimento da plataforma funciona com dados XDM. Também requer adicionar um grupo de campos Detalhes de privacidade ao esquema do perfil no Platform. Consulte Processamento de consentimento em Platform para obter mais informações sobre o Adobe standard versão 2.0 e este grupo de campos.

Criaremos um elemento de dados de código personalizado para transmitir dados para as propriedades de coleta e metadados do objeto de consentimentos mostrado no esquema abaixo:

Este grupo de campos Detalhes de preferência contém campos para o tipo de dados Consentes e preferências XDM que conterá os dados de preferência de consentimento que enviamos para a Platform com a extensão SDK da Web da plataforma em nossa ação de regra. Atualmente, as únicas propriedades necessárias para implementar o Platform Consent Standard 2.0 são o valor de coleta (val) e o valor de tempo dos metadados, realçado acima em vermelho.

Vamos criar um elemento de dados para esses dados. Selecione Elementos de dados e o botão azul Adicionar elemento de dados . Vamos chamar isso de "xdm-consent 2.0" e, usando a extensão principal, selecionaremos um tipo de código personalizado. Você pode inserir ou copiar e colar os seguintes dados na janela do editor de código personalizado:

var dateString = new Date().toISOString();

return {
  collect: {
    val: "y"
  },
  metadata: {
    time: dateString
  }
}

O campo de hora deve especificar quando o usuário atualizou pela última vez suas preferências de consentimento. Estamos criando um carimbo de data e hora aqui como exemplo usando um método padrão no objeto JavaScript Date . Selecione salvar para salvar o código personalizado e selecione salvar novamente para salvar o elemento de dados.

Em seguida, vamos selecionar Regras, depois o botão azul Adicionar Regra e inserir o nome "setConsent onLoad - Consent 2.0". Vamos escolher o evento Janela carregada como nosso acionador de regra e, em seguida, selecionar Adicionar em Ações. Escolha a Extensão do SDK da Web da plataforma e, para Tipo de ação, escolha Definir consentimento. O Padrão deve ser Adobe e a Versão deve ser 2.0. Para Valor, usaremos o elemento de dados que acabamos de criar que contém os valores de coleta e de tempo que precisamos enviar para a Plataforma:

Para revisar esta ação de exemplo, estamos chamando Definir consentimento da extensão SDK da Web da plataforma e transmitindo o Padrão e a Versão do formulário, enquanto passamos os valores para coleta e hora do elemento de dados criado anteriormente.

Selecione o botão azul Salvar e depois para salvar a regra.

Agora temos duas regras, uma para cada padrão de Consentimento de Plataforma. Na prática, você provavelmente escolherá um padrão em todos os sites. Em seguida, criaremos um exemplo usando o padrão de consentimento do IAB TCF 2.0.

Uso do SDK da Web com o Padrão de consentimento da TCF do IAB 2.0

Saiba mais sobre a versão 2.0 da Estrutura de transparência e consentimento do IAB no site do IAB Europe.

Para definir os dados de preferência de consentimento usando esse padrão, precisamos adicionar o grupo de campos Detalhes de privacidade ao nosso esquema Evento de experiência na Plataforma:

Este grupo de campos contém os campos de preferência de consentimento exigidos pelo padrão TCF 2.0 do IAB. Para obter mais informações sobre schemas e grupos de campos, consulte a Visão geral do sistema XDM.

Etapa 1: Criar um elemento de dados de consentimento

Para enviar dados do evento de consentimento das tags usando o padrão de consentimento do IAB TCF 2.0, primeiro configuramos um elemento de dados xdm com os campos de consentimento necessários:

Em suas tags, na propriedade do lado do cliente, selecione Elementos de dados e o botão azul "Adicionar elemento de dados". Vamos nomear esse elemento de dados como "xdm-consentStrings" para este exemplo. Esses campos xdm conterão os dados de consentimento do usuário necessários para o padrão TCF 2.0 do IAB.

No menu suspenso Extensão , escolha "SDK da Web da plataforma" e, para Tipo de elemento de dados, escolha "Objeto XDM". O mapeador xdm deve aparecer, permitindo que você selecione e expanda o item "consentStrings", como mostrado na captura de tela acima.

Definiremos cada uma das sequências de consentimento da seguinte maneira:

  • consentStandard: IAB TCF
  • consentStandardVersion: 2.0
  • consentStringValue: %IAB TCF Consent String%
  • containsPersonalData: False (escolhido pelo botão Selecionar valor)
  • gdprApplies: %IAB TCF Consent GDPR%

O consentStandard e o consentStandardVersion são apenas sequências de texto para o padrão que estamos usando, que é a versão 2.0 da TCF do IAB. O consentStringValue faz referência a um elemento de dados chamado "Cadeia de consentimento da TCF do IAB". Os sinais de porcentagem ao redor do texto indicam o nome de um elemento de dados, e veremos isso em um momento. A propriedade containsPersonalData indica se a cadeia de consentimento TCF 2.0 do IAB contém quaisquer dados pessoais com "Verdadeiro" ou "Falso". O campo gdprApplies indica "true" para o GDPR se aplica, "false" para o GDPR não se aplica ou "undefined" para desconhecido se o GDPR se aplica. Atualmente, o SDK da Web tratará "undefined" como "true", portanto, os dados de consentimento enviados com "gdprApplies: "indefinido" será tratado como se o visitante estivesse localizado em uma área em que o GDPR não se aplica.

Consulte a documentação de consentimento para obter mais informações sobre essas propriedades e sobre o IAB TCF 2.0 nas tags.

Etapa 2: Criar uma regra para definir o consentimento com o padrão TCF do IAB 2.0

Em seguida, criamos uma regra para definir o consentimento com o SDK da Web quando os dados de consentimento desse padrão forem definidos ou alterados por um visitante do site. Nesta regra, também veremos como capturar esses sinais de alteração de consentimento de uma CMP como OneTrust ou Sourcepoint.

Adicionar um evento de regra

Selecione a seção Regras na propriedade de tag da Plataforma e, em seguida, no botão azul Adicionar regra . Vamos nomear a regra setConsent - IAB e selecionar Adicionar em Eventos. Vamos nomear esse evento tcfapi addEventListener e selecionar Abrir editor para abrir o editor de código personalizado.

Copie e cole o seguinte código na janela do editor:

// Wait for window.__tcfapi to be defined, then trigger when the customer has completed their consent and preferences.
function addEventListener() {
  if (window.__tcfapi) {
    window.__tcfapi("addEventListener", 2, function (tcData, success) {
      if (success && (tcData.eventStatus === "useractioncomplete" || tcData.eventStatus === "tcloaded")) {
        // save the tcData.tcString properties in data elements
        _satellite.setVar("IAB TCF Consent String", tcData.tcString);
        _satellite.setVar("IAB TCF Consent GDPR", tcData.gdprApplies);
        trigger();
      }
    });
  } else {
    // window.__tcfapi wasn't defined. Check again in 100 milliseconds
    setTimeout(addEventListener, 100);
  }
}
addEventListener();

Esse código simplesmente cria e executa uma função chamada addEventListener. A função verifica se a janela é exibida.O objeto __tcfapi existe e, se existir, ele adiciona um ouvinte de evento de acordo com as especificações da API. Você pode ler mais sobre essas especificações no repositório IAB no GitHub. Se esse ouvinte de evento for adicionado com sucesso e o visitante do site tiver concluído suas opções de consentimento e preferências, o código definirá tags como variáveis personalizadas para a tcData tcString e o indicador para as regiões do GDPR. Novamente, para saber mais sobre a TCF do IAB, consulte os sites e GitHub repo do IAB para obter detalhes técnicos. Após definir esses valores, o código executa a função de acionador que aciona essa regra para ser executada.

Se a janela.__tcfapi não existia na primeira vez que essa função foi executada, a função verificará se ela existe novamente a cada 100 milissegundos, para que o ouvinte do evento possa ser adicionado. A última linha do código simplesmente executa a função addEventListener definida nas linhas de código acima dela.

Para resumir, criamos uma função para verificar o status de consentimento que um visitante do site define usando um banner de consentimento CMP (ou personalizado). Quando essa preferência de consentimento é definida, esse código cria duas variáveis personalizadas (elementos de dados de código personalizado) que podem ser usadas na ação de regra. Depois de colar o código acima na janela do editor de código personalizado de nosso evento, selecione o botão azul Salvar para salvar o evento da regra.

Agora vamos configurar a ação Definir regra de consentimento para usar esses valores e enviá-los para a Plataforma.

Adicionar uma ação de regra

Selecione Adicionar na seção Ações . Em Extensão, escolha Plataforma Web SDK na lista suspensa. Em Tipo de ação, escolha Definir consentimento. Vamos nomear essa ação como setConsent.

Na configuração da ação, em Informações de consentimento, escolha Preencher um formulário. Para o Standard, escolha IAB TCF e para Version enter 2.0. Para o Valor, usaremos a variável personalizada de nosso evento e inseriremos %IAB TCF Consent String% que vem do tcData que capturamos em nossa função personalizada de evento de regra acima.

Em GDPR Aplica-se, usaremos a outra variável personalizada de nosso evento e inseriremos %IAB TCF Consent GDPR% que também vem do tcData capturado em nossa função personalizada de evento de regra acima. Se você sabe que o GDPR definitivamente se aplicará a visitantes deste site, você pode selecionar Sim ou Não, conforme aplicável, em vez de usar a opção de variável personalizada (elemento de dados). Você também pode usar a lógica condicional em um elemento de dados para verificar se o GDPR se aplica e retornar o valor apropriado.

Em GDPR Contém dados pessoais, selecione a opção para indicar se os dados desse usuário contêm dados pessoais ou não. Um elemento de dados aqui deve resolver como true ou false.

Selecione o botão azul Salvar para salvar a ação e o botão azul Salvar (ou Salvar na biblioteca) para salvar a regra. Neste ponto, você implementou com êxito o elemento de dados e a regra nas tags para definir o consentimento usando a extensão SDK da Web com o padrão de consentimento IAB TCF 2.0.

Etapa 3: Salvar na biblioteca e criar

Se estiver usando o pré-requisito biblioteca de trabalho, você já salvou essas alterações e criou a biblioteca de desenvolvimento:

Etapa 4: Inspect e validar a coleta de dados

Em nosso site, atualizamos a página e confirmamos a build da biblioteca na extensão do Chrome Debugger, na seção de menu de tags:

Também podemos inspecionar a chamada setConsent para os padrões do Adobe 1.0 ou 2.0 na seção Debugger Platform Web SDK , selecionando na linha POST Body na solicitação de rede onde você vê {"consent":[{"value":{"general":"in"},"version…:

Para validar a chamada setConsent e nossa regra para o padrão TCF do IAB 2.0, usaremos o banner de consentimento do OneTrust em nosso site de teste para definir nossas preferências de consentimento e criar o tcData descrito anteriormente:

Após selecionar “Aceito”, podemos inspecionar a chamada setConsent para o padrão TCF 2.0 do IAB na seção do SDK da Web da plataforma do depurador, selecionando na linha Corpo do POST na solicitação de rede onde você vê {"consent":[{"value":"someAlphaNumericCharacters….

Aqui vemos os dados configurados anteriormente em nossos elementos de dados e na regra de tags. A propriedade value contém os dados codificados tcString que vimos anteriormente.

O OneTrust, o Sourcepoint e outras CMPs que implementam o padrão TCF 2.0 do IAB produzirão dados semelhantes em nossas páginas. Podemos capturar esses dados e usá-los com a extensão do SDK da Web em tags usando o evento de código personalizado na regra criada acima. O código personalizado será o mesmo independentemente da CMP usada para gerar os dados da TCF do IAB 2.0. O código personalizado também pode ser usado com qualquer um dos padrões de Consentimento de plataforma (1.0 ou 2.0).

Envio de dados de consentimento com eventos de experiência

Você pode ter notado que não referenciamos o elemento de dados "xdm-consentStrings" criado anteriormente em um campo de elemento de dados em qualquer uma de nossas regras. Esse elemento de dados deve ser usado quando for necessário enviar dados de consentimento com um Evento de experiência.

Como esse elemento de dados contém todos os campos necessários para o padrão TCF do IAB 2.0, você pode simplesmente fazer referência ao elemento de dados ao enviar esses dados xdm com seus Eventos de experiência:

Conclusão

Agora que inspecionamos e validamos os dados, você deve ver como implementar e ativar os dados de consentimento obtidos de uma CMP usando a extensão SDK da Web da plataforma para a plataforma.

Nesta página