Gerenciamento de consentimento com o SDK da Singular: um framework de decisão
Este artigo descreve os controles de privacidade que a Singular oferece e os padrões de implementação que observamos em nossa base de clientes, e apresenta um framework para combiná-los em uma arquitetura de consentimento. Cada controle é documentado em seu próprio artigo; esta página explica como eles funcionam em conjunto.
Antes de começar: Suas equipes jurídica e de privacidade controlam seu fluxo de consentimento e são responsáveis por decidir qual postura se aplica ao seu app em cada jurisdição. Este artigo descreve apenas o comportamento do produto e não constitui aconselhamento jurídico.
As duas decisões às quais todo fluxo de consentimento se reduz
Os controles de privacidade da Singular se organizam em torno de duas decisões independentes. Mantê-las separadas permite que um único aviso de consentimento conduza uma implementação em conformidade.
Decisão 1: Rastreamento. A Singular vê este usuário? Isso é controlado por se e quando você inicializa o SDK. A inicialização envia a primeira sessão, cria o registro de instalação e aciona o processamento de atribuição. Se o SDK nunca for inicializado, a Singular não recebe nada do dispositivo. Este é o controle mais restritivo disponível.
Decisão 2: Compartilhamento. Dado que a Singular vê o usuário, os dados dele podem ser compartilhados com os parceiros de publicidade? Isso é controlado pelo flag Limit Data Sharing (LDS). O LDS permite manter a análise primária (sessões, retenção, eventos, seus relatórios) enquanto restringe o que flui para os parceiros nos postbacks. Consulte o Limit Data Sharing FAQ para a semântica e o comportamento dos parceiros.
Se o seu framework de consentimento distingue o consentimento de medição do consentimento de publicidade ou retargeting (comum na EEA), o mapeamento é direto: o consentimento de medição condiciona a inicialização e o consentimento de publicidade define o LDS. Um único aviso, resolvido uma vez, aciona as duas alavancas.
Inventário de controles, do menos ao mais restritivo
| Controle | O que faz | O que não faz |
|---|---|---|
limitDataSharing (config ou em tempo de execução) |
Marca a preferência de compartilhamento do usuário; o comportamento dos postbacks dos parceiros segue a sua configuração por parceiro. | Não impede que a Singular rastreie; não altera os postbacks a menos que restrições em nível de parceiro sejam configuradas. |
| Modo de identificadores limitados | O SDK não coleta IDFA nem GAID; usa IDFV ou ASID em vez disso. | Não interrompe o rastreamento nem o compartilhamento de identificadores não publicitários. |
stopAllTracking() |
Interrompe toda a transmissão de forma imediata e persistente até que resumeAllTracking() seja chamado. |
Não desfaz a instalação nem os eventos já enviados; a inicialização já acionou a atribuição. |
| Nunca inicializar | A Singular não recebe nem processa nada do dispositivo. | Os deferred deep links e a atribuição não estão disponíveis para esses usuários. |
trackingOptIn() |
Legado: registra apenas um evento de notificação de consentimento. | Não tem efeito funcional sobre o rastreamento ou o tratamento de dados; não construa a lógica de consentimento sobre ele. |
Três modelos de fluxo de consentimento
-
Desativação por padrão (inicializar primeiro): O SDK é inicializado ao abrir o app; o consentimento é apresentado durante o onboarding; uma recusa aciona
stopAllTracking()ou define o LDS como true. Isso oferece fidelidade total de atribuição e postbacks rápidos para as SANs. O momento da instalação é capturado antes de o usuário responder, portanto este modelo exige uma postura legal que permita a coleta antes de uma escolha afirmativa. Comum para audiências dos EUA. - Ativação por padrão (consentimento primeiro): O SDK não é inicializado até que o usuário consinta afirmativamente. Nada é transmitido para usuários que não consentem. Padrão para audiências do GDPR. Persista a decisão e inicialize imediatamente nas execuções seguintes em todos os pontos de entrada do app.
-
Híbrido (inicializar imediatamente, resolver o LDS na inicialização): Resolva a tela de consentimento ao abrir o app e, em seguida, inicialize com
limitDataSharingjá definido no objeto de configuração. Cada registro, da instalação em diante, carrega o estado declarado pelo usuário, sem nenhuma janela em que a intenção exista mas não tenha sido aplicada. Este é o padrão que recomendamos aos clientes sensíveis à privacidade que podem exibir o consentimento na abertura.
A maioria dos apps multirregião executa mais de um modelo, selecionado em tempo de execução por jurisdição ou pelo CMP.
Consequências de tempo a planejar
- A inicialização adiada não custa a instalação se ocorrer dentro da mesma sessão do app: o install referrer do Android persiste no dispositivo e a solicitação de atribuição é concluída normalmente.
- As taxas de correspondência das SANs degradam quando a inicialização é atrasada por muito tempo (fluxos de consentimento de várias etapas, intervalos de vários dias). Mantenha as telas do primeiro início em uma única tela rápida.
- Os postbacks do SKAdNetwork são gerados pelo sistema operacional no momento da instalação e não são afetados pelo momento da inicialização do SDK.
- Os deferred deep links exigem que a inicialização e a atribuição sejam resolvidas. Em um modelo estrito de ativação, o deferred deep linking só está disponível para usuários que consentiram.
- Não há callback de conclusão da inicialização. Se você criar um sequenciamento de eventos personalizado, capture o estado de consentimento no momento da inicialização.
- O registro de instalação fixa o valor de LDS vigente na inicialização. As atualizações posteriores se aplicam apenas aos eventos seguintes, e os postbacks já enviados não são revogados. Não defina o LDS como true por padrão para usuários indecisos, a menos que a sua postura legal exija; resolva o consentimento primeiro ou deixe o LDS sem definição (unset) até o usuário responder.
Armadilhas comuns
- Um LDS sem definição é tratado como não limitado. Uma integração que pretende restringir um usuário mas ainda não definiu o flag é, da perspectiva da Singular, um usuário sem restrições.
- O LDS true não muda nada por si só. O comportamento dos postbacks para usuários com LDS é definido por parceiro e por app na sua configuração de parceiros (não enviar / enviar sem PII / enviar normalmente). Defina o flag e configure a aplicação.
- O ATT não é um framework de consentimento. O ATT rege apenas a divulgação do IDFA. Se uma recusa de ATT também deve implicar LDS true é uma decisão de política da sua equipe de privacidade.
-
O apagamento do GDPR não é uma exclusão. A API do OpenDSR exclui os dados coletados; não impede que o SDK envie eventos futuros. Combine o apagamento com
stopAllTracking()no mesmo fluxo de usuário.
Artigos relacionados
- Práticas de ativação e desativação do SDK (código de implementação)
- Limit Data Sharing FAQ (semântica e parceiros)
- Referência da API do GDPR (direitos dos titulares dos dados)
- Kids Apps SDKs FAQ (apps para crianças)