Pular para conteúdo

Controle por Finalidade

Visão Geral

O Controle por Finalidade (Purpose-Based Control) é o sistema que permite aos usuários escolherem especificamente para quais finalidades seus dados podem ser coletados e processados. Em vez de um simples "aceitar tudo ou nada", o Complyr oferece controle granular sobre 5 categorias distintas de processamento de dados.

Este sistema atende ao princípio da finalidade determinada da LGPD (Art. 6º, I):

Art. 6º - As atividades de tratamento de dados pessoais deverão observar a boa-fé e os seguintes princípios:

I - finalidade: realização do tratamento para propósitos legítimos, específicos, explícitos e informados ao titular, sem possibilidade de tratamento posterior de forma incompatível com essas finalidades;

As 5 Finalidades do Complyr

graph TD
    A[Consentimento do Usuário] --> B[5 Finalidades]

    B --> C[Essential<br/>Essencial]
    B --> D[Analytics<br/>Análise]
    B --> E[Marketing<br/>Marketing]
    B --> F[Personalization<br/>Personalização]
    B --> G[Third Party<br/>Terceiros]

    C --> C1[Sempre Ativo]
    D --> D1[Opcional]
    E --> E1[Opcional]
    F --> F1[Opcional]
    G --> G1[Opcional]

    C1 --> H[Legítimo Interesse<br/>Art. 7º, IX]
    D1 --> I[Consentimento<br/>Art. 7º, I]
    E1 --> I
    F1 --> I
    G1 --> I

1. Essential (Essencial)

Sempre Ativo - Não pode ser desativado

Definição: Cookies e processos estritamente necessários para o funcionamento básico do website.

Base Legal (LGPD): Art. 7º, IX - Legítimo interesse do controlador ou de terceiro

Características: - ✅ Não requer consentimento (legítimo interesse) - ✅ Always-on: Usuário não pode desativar - ✅ First-party ou third-party (desde que necessário) - ✅ Não usado para tracking ou marketing - ✅ Estritamente funcional

Exemplos de Uso:

Categoria Exemplos Finalidade
Autenticação Session tokens, JWT, Remember-me cookies Manter usuário logado
Segurança CSRF tokens, Rate limiting Proteção contra ataques
E-commerce Carrinho de compras, Checkout session Processar pedidos
Infraestrutura Load balancer cookies, CDN tokens Distribuição de carga
Preferências Básicas Idioma, Tema (claro/escuro) UX fundamental
Compliance Consent storage (próprio Complyr) LGPD compliance

Código de Exemplo:

// Cookies essenciais definidos ANTES do consentimento
// (não bloqueados pelo Complyr)

// 1. Autenticação
document.cookie = 'session_token=abc123xyz; Secure; HttpOnly; SameSite=Strict; Path=/';

// 2. CSRF Protection
document.cookie = 'csrf_token=def456uvw; Secure; SameSite=Strict; Path=/';

// 3. Carrinho de compras (e-commerce)
document.cookie = 'cart_id=cart_789; Secure; SameSite=Lax; Path=/; Max-Age=604800'; // 7 dias

// 4. Preferência de idioma
document.cookie = 'language=pt-BR; Secure; SameSite=Lax; Path=/; Max-Age=31536000'; // 1 ano

// 5. Consent próprio (armazenado pelo Complyr)
localStorage.setItem('complyr_consent_' + workspaceId, JSON.stringify(consent));

Transparência: Mesmo sendo essenciais e não requerendo consentimento, você DEVE informar sua existência na Política de Privacidade:

## Cookies Essenciais

Usamos os seguintes cookies estritamente necessários para o funcionamento do site:

- **session_token**: Mantém você logado durante a sessão (24 horas)
- **csrf_token**: Protege contra ataques CSRF (sessão)
- **cart_id**: Armazena itens no carrinho de compras (7 dias)
- **language**: Memoriza sua preferência de idioma (1 ano)

Estes cookies são baseados em legítimo interesse (LGPD Art. 7º, IX) e não podem ser desativados.

2. Analytics (Análise)

Opcional - Requer consentimento explícito

Definição: Ferramentas de análise de comportamento, métricas de uso, otimização de performance e experiência do usuário.

Base Legal (LGPD): Art. 7º, I - Consentimento explícito e informado

Características: - ❌ Requer consentimento do usuário - 📊 Coleta dados de navegação (páginas vistas, tempo no site, origem) - 🔍 Não identifica usuário individualmente (dados agregados) - 📈 Finalidade: Melhorar website e entender comportamento - 🚫 Bloqueado sem consentimento

Ferramentas Comuns:

Ferramenta Descrição Tipo de Dados
Google Analytics (GA4) Análise de tráfego e comportamento Pageviews, sessões, eventos, demografia
Hotjar Heatmaps, gravações de sessão Cliques, scrolls, movimentos do mouse
Mixpanel Product analytics Eventos customizados, funis de conversão
Amplitude Analytics de produto Comportamento de usuários, retenção
Matomo Analytics open-source (self-hosted) Tráfego, conversões, downloads
Plausible Analytics leve e privacy-friendly Pageviews simples, sem cookies

Exemplo de Código (Google Analytics GA4):

// ANTES do consentimento: Script bloqueado
// (Complyr impede carregamento)

// DEPOIS do consentimento (Analytics aceito)
if (consent.purposes.analytics.granted) {
  // 1. Carregar Google Analytics
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXXXX');

  // 2. Script tag inserido dinamicamente
  const script = document.createElement('script');
  script.async = true;
  script.src = 'https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX';
  document.head.appendChild(script);

  console.log('✅ Google Analytics ativado');
}

Exemplo de Código (Hotjar):

if (consent.purposes.analytics.granted) {
  // Hotjar Tracking Code
  (function(h,o,t,j,a,r){
    h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
    h._hjSettings={hjid:YOUR_HOTJAR_ID,hjsv:6};
    a=o.getElementsByTagName('head')[0];
    r=o.createElement('script');r.async=1;
    r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
    a.appendChild(r);
  })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');

  console.log('✅ Hotjar ativado');
}

Boas Práticas:

✅ DO: - Usar dados agregados (sem identificação individual) - Anonimizar IPs (anonymizeIp: true no GA) - Definir período de retenção limitado (14 meses max) - Informar claramente quais métricas são coletadas

❌ DON'T: - Coletar dados sensíveis (CPF, senha, cartão de crédito) - Compartilhar dados com terceiros sem consentimento adicional - Usar analytics para remarketing (isso é marketing) - Manter dados indefinidamente


3. Marketing (Marketing e Publicidade)

Opcional - Requer consentimento explícito

Definição: Ferramentas de publicidade, remarketing, rastreamento de conversões e segmentação de anúncios.

Base Legal (LGPD): Art. 7º, I - Consentimento explícito e informado

Características: - ❌ Requer consentimento do usuário - 🎯 Rastreamento cross-site (third-party cookies) - 💰 Finalidade comercial (vendas, conversões) - 📢 Remarketing: Exibir anúncios para visitantes anteriores - 🚫 Bloqueado sem consentimento

Ferramentas Comuns:

Ferramenta Descrição Uso Principal
Facebook Pixel Rastreamento de conversões e remarketing Anúncios no Facebook/Instagram
Google Ads (gtag.js) Rastreamento de campanhas Google Google Search Ads, Display, YouTube
LinkedIn Insight Tag Analytics B2B e remarketing LinkedIn Ads
Twitter Pixel Conversões e remarketing Twitter Ads
TikTok Pixel Rastreamento de conversões TikTok Ads
Pinterest Tag Analytics e conversões Pinterest Ads
Taboola / Outbrain Native advertising Content recommendation ads

Exemplo de Código (Facebook Pixel):

// ANTES do consentimento: Script bloqueado

// DEPOIS do consentimento (Marketing aceito)
if (consent.purposes.marketing.granted) {
  // 1. Carregar Facebook Pixel
  !function(f,b,e,v,n,t,s)
  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  n.callMethod.apply(n,arguments):n.queue.push(arguments)};
  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
  n.queue=[];t=b.createElement(e);t.async=!0;
  t.src=v;s=b.getElementsByTagName(e)[0];
  s.parentNode.insertBefore(t,s)}(window, document,'script',
  'https://connect.facebook.net/en_US/fbevents.js');

  // 2. Inicializar com Pixel ID
  fbq('init', 'YOUR_PIXEL_ID');

  // 3. Conceder consentimento
  fbq('consent', 'grant');

  // 4. Track PageView
  fbq('track', 'PageView');

  console.log('✅ Facebook Pixel ativado');
}

// QUANDO consentimento é revogado
if (!consent.purposes.marketing.granted && window.fbq) {
  fbq('consent', 'revoke');
  console.log('❌ Facebook Pixel bloqueado');
}

Exemplo de Código (Google Ads):

if (consent.purposes.marketing.granted) {
  // Google Ads Conversion Tracking
  gtag('config', 'AW-CONVERSION_ID');

  // Track conversão de compra
  gtag('event', 'conversion', {
    'send_to': 'AW-CONVERSION_ID/CONVERSION_LABEL',
    'value': 99.90,
    'currency': 'BRL',
    'transaction_id': 'ORDER_123'
  });

  console.log('✅ Google Ads ativado');
}

Transparência Necessária:

Na Política de Privacidade, você DEVE informar: - Quais plataformas de anúncios você usa - Que dados são compartilhados (eventos, conversões) - Como usuários podem optar por não participar (opt-out) - Links para políticas de privacidade das plataformas

Exemplo:

## Marketing e Publicidade

Com seu consentimento, usamos as seguintes ferramentas de marketing:

- **Facebook Pixel**: Rastreamos conversões e exibimos anúncios relevantes no Facebook e Instagram.
  Dados compartilhados: páginas visitadas, produtos visualizados, compras.
  [Política do Facebook](https://www.facebook.com/privacy/explanation)

- **Google Ads**: Rastreamos cliques em anúncios do Google e conversões no site.
  Dados compartilhados: cliques em anúncios, conversões, valor de compras.
  [Política do Google](https://policies.google.com/privacy)

Você pode revogar este consentimento a qualquer momento clicando em "Gerenciar Cookies" no rodapé.

Compliance Importante:

Se usuário revoga consentimento de marketing: 1. Parar imediatamente o rastreamento 2. Remover cookies de marketing (third-party) 3. Notificar plataformas via fbq('consent', 'revoke') 4. Não exibir anúncios de remarketing para este usuário


4. Personalization (Personalização)

Opcional - Requer consentimento explícito

Definição: Recursos que personalizam a experiência do usuário com base em comportamento, preferências ou histórico.

Base Legal (LGPD): Art. 7º, I - Consentimento explícito e informado

Características: - ❌ Requer consentimento do usuário - 🎨 Customização de conteúdo (recomendações, layout) - 👤 Perfil do usuário (preferências, histórico) - 🔄 Melhora UX mas não é estritamente necessário - 🚫 Bloqueado sem consentimento

Casos de Uso:

Recurso Descrição Exemplo
Recomendações de Produtos "Você também pode gostar de..." E-commerce (Amazon, Netflix)
Customização de Layout Ordenação, visualização preferida Grid vs Lista, temas
Histórico de Navegação "Vistos recentemente", "Continue assistindo" Plataformas de vídeo, e-commerce
Sugestões de Conteúdo Artigos relacionados, playlists Blogs, Spotify, YouTube
Filtros Salvos Preferências de busca, localização Sites de viagens, imóveis
Notificações Personalizadas Alertas sobre produtos/tópicos de interesse Apps de notícias, e-commerce

Exemplo de Código (Recomendações):

// Sistema de recomendações de produtos
if (consent.purposes.personalization.granted) {
  // 1. Salvar histórico de navegação
  const viewedProducts = JSON.parse(localStorage.getItem('viewed_products') || '[]');
  viewedProducts.push({
    productId: currentProduct.id,
    category: currentProduct.category,
    timestamp: new Date().toISOString()
  });
  localStorage.setItem('viewed_products', JSON.stringify(viewedProducts));

  // 2. Buscar recomendações baseadas no histórico
  fetch('/api/recommendations', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ viewedProducts })
  })
  .then(res => res.json())
  .then(recommendations => {
    displayRecommendations(recommendations);
    console.log('✅ Recomendações personalizadas ativadas');
  });
} else {
  // Sem personalização: Mostrar produtos populares (genérico)
  displayPopularProducts();
  console.log('ℹ️ Mostrando produtos populares (sem personalização)');
}

Exemplo de Código (Layout Preferido):

if (consent.purposes.personalization.granted) {
  // Salvar preferência de visualização (grid vs lista)
  const viewPreference = document.querySelector('input[name="view"]:checked').value;
  localStorage.setItem('catalog_view_preference', viewPreference);

  // Aplicar preferência na próxima visita
  const savedView = localStorage.getItem('catalog_view_preference');
  if (savedView) {
    applyCatalogView(savedView); // 'grid' ou 'list'
  }
} else {
  // Usar visualização padrão (grid)
  applyCatalogView('grid');
}

Diferença entre Essential e Personalization:

Aspecto Essential Personalization
Idioma do site ✅ Essential (UX básica) -
Tema claro/escuro ✅ Essential (acessibilidade) -
Ordenação padrão ✅ Essential -
Recomendações baseadas em histórico - ✅ Personalization
Layout preferido (grid/lista) ⚠️ Pode ser ambos ✅ Personalization (se baseado em histórico)
Filtros salvos - ✅ Personalization

Boas Práticas:

✅ DO: - Oferecer experiência funcional mesmo sem personalização (fallback genérico) - Limpar dados de personalização ao revogar consentimento - Permitir exportação de preferências (LGPD Art. 18, V - portabilidade)

❌ DON'T: - Bloquear funcionalidades essenciais por falta de personalização - Usar dados de personalização para marketing sem consentimento adicional - Compartilhar preferências com terceiros sem transparência


5. Third Party (Terceiros)

Opcional - Requer consentimento explícito

Definição: Scripts, widgets e serviços de terceiros que não se encaixam nas categorias anteriores.

Base Legal (LGPD): Art. 7º, I - Consentimento explícito + Art. 5º, VII (operadores)

Características: - ❌ Requer consentimento do usuário - 🔌 Serviços externos (domains diferentes) - 🌐 Carregamento cross-origin - 📡 Comunicação com servidores terceiros - 🚫 Bloqueado sem consentimento

Categorias de Terceiros:

Categoria Exemplos Finalidade
Chat ao Vivo Intercom, Zendesk, Drift Suporte ao cliente
Redes Sociais Facebook Like Button, Twitter Embed Compartilhamento social
Mapas Google Maps, Mapbox Localização e navegação
Vídeos YouTube Embed, Vimeo Conteúdo multimídia
Avaliações Trustpilot, Google Reviews Social proof
Pagamentos Stripe.js, PayPal SDK Processamento de pagamentos
CDNs Cloudflare, jsDelivr Entrega de assets

Exemplo de Código (Intercom - Chat ao Vivo):

// ANTES do consentimento: Script bloqueado

// DEPOIS do consentimento (Third Party aceito)
if (consent.purposes.third_party.granted) {
  // Carregar Intercom
  (function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){
    ic('reattach_activator');ic('update',w.intercomSettings);
  }else{var d=document;var i=function(){i.c(arguments);};
    i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;
    var l=function(){var s=d.createElement('script');s.type='text/javascript';
    s.async=true;s.src='https://widget.intercom.io/widget/YOUR_APP_ID';
    var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);};
    if(document.readyState==='complete'){l();}
    else if(w.attachEvent){w.attachEvent('onload',l);}
    else{w.addEventListener('load',l,false);}}})();

  // Inicializar Intercom
  window.Intercom('boot', {
    app_id: 'YOUR_APP_ID',
    name: user.name,
    email: user.email
  });

  console.log('✅ Intercom (chat) ativado');
} else {
  console.log('ℹ️ Intercom bloqueado - exibir formulário de contato alternativo');
  showContactForm();
}

Exemplo de Código (Google Maps):

if (consent.purposes.third_party.granted) {
  // Carregar Google Maps API
  const script = document.createElement('script');
  script.src = 'https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap';
  script.async = true;
  script.defer = true;
  document.head.appendChild(script);

  window.initMap = function() {
    const map = new google.maps.Map(document.getElementById('map'), {
      center: { lat: -23.550520, lng: -46.633308 }, // São Paulo
      zoom: 12
    });
    console.log('✅ Google Maps carregado');
  };
} else {
  // Fallback: Exibir imagem estática ou link para Google Maps
  document.getElementById('map').innerHTML = `
    <a href="https://www.google.com/maps/place/..." target="_blank">
      <img src="/static/map-placeholder.png" alt="Ver no Google Maps">
    </a>
  `;
  console.log('ℹ️ Google Maps bloqueado - usando fallback estático');
}

Exemplo de Código (YouTube Embed):

if (consent.purposes.third_party.granted) {
  // Carregar iframe do YouTube normalmente
  const iframe = document.createElement('iframe');
  iframe.src = 'https://www.youtube.com/embed/VIDEO_ID';
  iframe.width = '560';
  iframe.height = '315';
  iframe.frameBorder = '0';
  iframe.allow = 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture';
  iframe.allowFullscreen = true;
  document.getElementById('video-container').appendChild(iframe);
} else {
  // Fallback: Thumbnail com botão de consentimento
  document.getElementById('video-container').innerHTML = `
    <div class="video-placeholder">
      <img src="https://img.youtube.com/vi/VIDEO_ID/hqdefault.jpg" alt="Thumbnail">
      <button onclick="window.complyr.openPreferences()">
        Clique para assistir (requer aceitar cookies de terceiros)
      </button>
    </div>
  `;
}

Responsabilidade de Operadores (LGPD):

Quando você usa serviços de terceiros, eles podem atuar como operadores (Art. 5º, VII):

Operador: pessoa natural ou jurídica, de direito público ou privado, que realiza o tratamento de dados pessoais em nome do controlador.

Obrigações: 1. Contratos de DPA (Data Processing Agreement): Acordo formal com terceiros 2. Transparência: Informar quais terceiros têm acesso aos dados 3. Limitação: Terceiros só podem processar dados conforme instruído 4. Segurança: Garantir que terceiros protegem dados adequadamente

Exemplo de Transparência:

## Serviços de Terceiros

Com seu consentimento, usamos os seguintes serviços de terceiros:

- **Intercom** (chat ao vivo): Processa nome, email e mensagens de suporte. [Política](https://www.intercom.com/legal/privacy)
- **Google Maps**: Exibe mapas interativos. Pode coletar localização e IPs. [Política](https://policies.google.com/privacy)
- **YouTube**: Embeds de vídeos. YouTube pode rastrear visualizações. [Política](https://policies.google.com/privacy)

Todos os terceiros são obrigados contratualmente a proteger seus dados e usá-los apenas conforme instruído por nós.

Controle Granular na Prática

Cenário 1: Usuário Aceita Analytics e Rejeita Marketing

const consent = {
  status: 'PARTIAL',
  purposes: {
    essential: { granted: true },
    analytics: { granted: true },      // ✅ Aceito
    marketing: { granted: false },     // ❌ Rejeitado
    personalization: { granted: false },
    third_party: { granted: false }
  }
};

// Resultado:
// ✅ Google Analytics carrega
// ❌ Facebook Pixel bloqueado
// ❌ Google Ads bloqueado
// ✅ Site funciona normalmente
// ℹ️ Produtos populares (sem personalização)

Cenário 2: Usuário Aceita Tudo Exceto Marketing

const consent = {
  status: 'PARTIAL',
  purposes: {
    essential: { granted: true },
    analytics: { granted: true },      // ✅ Aceito
    marketing: { granted: false },     // ❌ Rejeitado
    personalization: { granted: true }, // ✅ Aceito
    third_party: { granted: true }     // ✅ Aceito
  }
};

// Resultado:
// ✅ Google Analytics carrega
// ❌ Facebook Pixel bloqueado
// ✅ Recomendações personalizadas
// ✅ Intercom (chat) carrega
// ✅ YouTube embeds funcionam

Cenário 3: Usuário Rejeita Tudo

const consent = {
  status: 'DENIED',
  purposes: {
    essential: { granted: true },      // ✅ Sempre ativo
    analytics: { granted: false },     // ❌ Rejeitado
    marketing: { granted: false },     // ❌ Rejeitado
    personalization: { granted: false }, // ❌ Rejeitado
    third_party: { granted: false }    // ❌ Rejeitado
  }
};

// Resultado:
// ❌ Google Analytics bloqueado
// ❌ Facebook Pixel bloqueado
// ❌ Hotjar bloqueado
// ❌ Intercom bloqueado
// ✅ Site funciona (apenas funcionalidades essenciais)

Implementação de Controle Granular

Interface de Usuário:

<div id="cookie-preferences-modal">
  <h2>Gerenciar Preferências de Cookies</h2>

  <!-- Essential (Sempre Ativo) -->
  <div class="purpose-item">
    <div class="purpose-header">
      <h3>Essenciais</h3>
      <span class="always-active">Sempre Ativo</span>
    </div>
    <p>Cookies necessários para o funcionamento básico do site (login, carrinho, segurança).</p>
    <input type="checkbox" checked disabled> <!-- Desabilitado, sempre ativo -->
  </div>

  <!-- Analytics (Opcional) -->
  <div class="purpose-item">
    <div class="purpose-header">
      <h3>Análise</h3>
      <label class="switch">
        <input type="checkbox" id="analytics-toggle" data-purpose="analytics">
        <span class="slider"></span>
      </label>
    </div>
    <p>
      Usamos Google Analytics e Hotjar para entender como você usa nosso site e melhorar sua experiência.
      <a href="/politica-privacidade#analytics">Saiba mais</a>
    </p>
  </div>

  <!-- Marketing (Opcional) -->
  <div class="purpose-item">
    <div class="purpose-header">
      <h3>Marketing</h3>
      <label class="switch">
        <input type="checkbox" id="marketing-toggle" data-purpose="marketing">
        <span class="slider"></span>
      </label>
    </div>
    <p>
      Usamos Facebook Pixel e Google Ads para exibir anúncios relevantes e medir campanhas.
      <a href="/politica-privacidade#marketing">Saiba mais</a>
    </p>
  </div>

  <!-- Personalization (Opcional) -->
  <div class="purpose-item">
    <div class="purpose-header">
      <h3>Personalização</h3>
      <label class="switch">
        <input type="checkbox" id="personalization-toggle" data-purpose="personalization">
        <span class="slider"></span>
      </label>
    </div>
    <p>
      Personalizamos recomendações de produtos e conteúdo com base no seu histórico de navegação.
      <a href="/politica-privacidade#personalization">Saiba mais</a>
    </p>
  </div>

  <!-- Third Party (Opcional) -->
  <div class="purpose-item">
    <div class="purpose-header">
      <h3>Terceiros</h3>
      <label class="switch">
        <input type="checkbox" id="third-party-toggle" data-purpose="third_party">
        <span class="slider"></span>
      </label>
    </div>
    <p>
      Carregamos serviços de terceiros como chat ao vivo (Intercom), mapas (Google Maps) e vídeos (YouTube).
      <a href="/politica-privacidade#third-party">Saiba mais</a>
    </p>
  </div>

  <!-- Botões de Ação -->
  <div class="modal-actions">
    <button id="save-preferences">Salvar Preferências</button>
    <button id="accept-all">Aceitar Todos</button>
    <button id="reject-all">Rejeitar Todos</button>
  </div>
</div>

JavaScript de Controle

// Salvar preferências customizadas
document.getElementById('save-preferences').addEventListener('click', function() {
  const purposes = {
    essential: true, // Sempre ativo
    analytics: document.getElementById('analytics-toggle').checked,
    marketing: document.getElementById('marketing-toggle').checked,
    personalization: document.getElementById('personalization-toggle').checked,
    third_party: document.getElementById('third-party-toggle').checked
  };

  // Salvar via Complyr
  saveConsent(purposes);

  // Fechar modal
  closeModal();

  // Recarregar página para aplicar mudanças
  location.reload();
});

// Aceitar todos
document.getElementById('accept-all').addEventListener('click', function() {
  saveConsent({
    essential: true,
    analytics: true,
    marketing: true,
    personalization: true,
    third_party: true
  });
  closeModal();
  location.reload();
});

// Rejeitar todos (exceto essenciais)
document.getElementById('reject-all').addEventListener('click', function() {
  saveConsent({
    essential: true,
    analytics: false,
    marketing: false,
    personalization: false,
    third_party: false
  });
  closeModal();
  location.reload();
});

// Função de salvar consentimento
function saveConsent(purposes) {
  const consent = {
    workspaceId: window.COMPLYR_WORKSPACE_ID,
    purposes: purposes,
    timestamp: new Date().toISOString()
  };

  // Salvar localmente
  localStorage.setItem('complyr_consent_' + consent.workspaceId, JSON.stringify(consent));

  // Enviar para backend
  fetch('https://app.complyr.com.br/api/consents', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(consent)
  });

  // Disparar evento
  document.dispatchEvent(new CustomEvent('consent-updated', { detail: purposes }));
}

Benefícios do Controle Granular

1. Compliance LGPD

Art. 6º, I (Finalidade): Cada finalidade é específica e explícita

Art. 6º, III (Necessidade): Usuário escolhe apenas finalidades desejadas

Art. 8º, § 4º: Consentimento separado para finalidades distintas

2. Transparência e Confiança

✅ Usuário sabe exatamente para que seus dados serão usados

✅ Controle real (não apenas "aceitar tudo")

✅ Aumenta confiança na marca

3. Melhores Taxas de Consentimento

Dados da Indústria: - Banner "aceitar tudo ou nada": ~40% de aceitação - Banner com controle granular: ~65% de aceitação (pelo menos algumas finalidades)

Por quê? - Usuários sentem que têm controle - Podem aceitar analytics mas rejeitar marketing - Não são forçados a "tudo ou nada"

4. Dados de Melhor Qualidade

✅ Consentimento genuíno (não coagido)

✅ Menor taxa de revogação

✅ Dados de usuários realmente interessados

Perguntas Frequentes

1. Posso adicionar finalidades customizadas além das 5 padrão?

Resposta: O Complyr oferece 5 finalidades pré-configuradas que cobrem 99% dos casos de uso. Se você precisa de finalidades adicionais (por exemplo, "Geolocalização" ou "Biometria"), entre em contato com o suporte.

Alternativa: Use third_party para casos específicos e documente claramente na Política de Privacidade.

2. Essential pode ser desativado pelo usuário?

Resposta: NÃO. Essential é baseado em legítimo interesse (LGPD Art. 7º, IX) e não pode ser desativado. Porém, você deve: - Usar apenas para cookies estritamente necessários - Informar quais cookies são essenciais - Não abusar desta categoria (ex: Google Analytics NÃO é essencial)

3. Posso usar Analytics sem consentimento?

Resposta: NÃO (na maioria dos casos). Analytics coleta dados de comportamento e requer consentimento (LGPD Art. 7º, I).

Exceção: Analytics totalmente anônimo (sem IPs, sem identificação, sem cookies) pode ser baseado em legítimo interesse. Ferramentas como Plausible ou Simple Analytics podem se qualificar, mas documente claramente.

4. O que acontece se usuário aceita Analytics mas depois revoga?

Resposta: O Complyr automaticamente: 1. Remove cookies de analytics 2. Para carregamento de scripts (GA, Hotjar) 3. Registra revogação no backend 4. Dispara evento consent-updated com analytics: false

Você DEVE: - Parar imediatamente a coleta de dados - Opcionalmente, deletar dados históricos se solicitado (LGPD Art. 18, VI)

5. Preciso pedir consentimento separado para cada ferramenta?

Resposta: NÃO. O consentimento é por finalidade, não por ferramenta.

Exemplo: - Usuário aceita "Analytics" (finalidade) - Isso cobre: Google Analytics + Hotjar + Mixpanel (ferramentas da mesma finalidade)

Porém, você DEVE informar quais ferramentas usa em cada finalidade na Política de Privacidade.

6. Posso usar Facebook Pixel para analytics em vez de marketing?

Resposta: Tecnicamente sim, mas não recomendado. Facebook Pixel é primariamente uma ferramenta de marketing (remarketing, conversões de anúncios). Se você usa apenas para analytics sem anúncios, pode categorizá-lo como Analytics, mas: - Seja transparente sobre isso - Documente na Política de Privacidade - Considere usar ferramentas específicas de analytics (GA, Hotjar)

Melhor prática: Use Pixel no Marketing e GA no Analytics (separadamente).

7. Personalização inclui recomendações de IA?

Resposta: SIM. Qualquer sistema de recomendação baseado em comportamento do usuário (IA ou não) requer consentimento de Personalização: - Recomendações de produtos (ML) - Sugestões de conteúdo (algoritmos) - Customização de feed (redes sociais)

Essential vs Personalization: - Essential: Funcionalidade básica (ordenar por preço, filtrar por categoria) - Personalization: Baseado em histórico/perfil do usuário

8. Quanto tempo devo manter o registro de consentimento?

Resposta: A LGPD não especifica prazo mínimo, mas a boa prática é: - Durante o tratamento de dados: Enquanto processar dados do usuário - Após término: 5 anos adicionais para prova legal (prazo prescricional brasileiro)

Exemplo: - Usuário concede consentimento em 01/01/2025 - Usuário revoga consentimento em 01/01/2027 - Você para processamento imediatamente - Mantém registro de consentimento/revogação até 01/01/2032 (5 anos após revogação)

Recursos Relacionados

Documentação Técnica

Integrações

Exemplos Práticos

Próximos Passos

Agora que você entende o controle por finalidade, explore:

  1. Conformidade LGPD → - Veja como o Complyr atende cada artigo da LGPD
  2. Gerenciamento de Consentimento → - Sistema completo de consentimento
  3. Guia Rápido → - Implemente o Complyr em 3 passos