Práticas de ativação e desativação do SDK

Conformidade de privacidade com Singular SDK

Guia abrangente para implementar soluções de rastreamento em conformidade com a privacidade usando os métodos opt-in e opt-out do Singular SDK para GDPR, CCPA, COPPA e outros regulamentos de privacidade. Para um framework sobre como esses controles se combinam com o Limit Data Sharing, consulte Consent Management with the Singular SDK: A Decision Framework.

Isenção de responsabilidade legal: as diretrizes nesta página não constituem aconselhamento jurídico. Consulte a sua equipe jurídica sobre a conformidade com as leis de privacidade aplicáveis à sua jurisdição e operações comerciais.

A Singular fornece ferramentas abrangentes de conformidade com a privacidade, permitindo que as organizações utilizem os recursos da plataforma, mantendo a conformidade com os regulamentos de privacidade em evolução.

Público-alvo Desenvolvedores, equipes jurídicas/conformidade, gerentes de produto
Regulamentos aplicáveis GDPR, CCPA, COPPA e leis de privacidade específicas da jurisdição

Visão geral da regulamentação de privacidade

Estruturas de conformidade suportadas

A Singular Platform suporta a conformidade com os principais regulamentos de privacidade através de mecanismos configuráveis de gestão de consentimento e controle de rastreamento.

Regulamentação Escopo Requisito-chave Método recomendado
GDPR Proteção de dados e privacidade da União Europeia Consentimento do usuário antes da coleta de dados Opção de inclusão ou exclusão
CCPA Direitos de privacidade do consumidor na Califórnia Direito de não participar na venda de dados Opt-Out
COPPA Proteção da privacidade em linha das crianças (com menos de 13 anos) Autorização dos pais antes da coleta de dados de crianças ou implementação de uma porta etária Opt-In + Age Gate
Leis regionais Regulamentos de privacidade específicos de cada jurisdição Varia consoante a jurisdição Consultar aconselhamento jurídico

Regulamentos em evolução: As leis de privacidade evoluem continuamente com novas promulgações e interpretações. A plataforma Singular fornece ferramentas flexíveis que se adaptam às mudanças nos requisitos de conformidade, mantendo a funcionalidade de rastreamento completa quando permitido.


Métodos de conformidade

Singular suporta dois métodos primários de conformidade: Opt-In (consentimento em primeiro lugar) e Opt-Out (rastreamento em primeiro lugar com controle do usuário), cada um abordando diferentes requisitos regulamentares e modelos de consentimento do usuário.

Seleção do método

Escolhendo o método de conformidade apropriado

Selecionar o método de conformidade com base em regulamentos aplicáveis, dados demográficos do usuário e orientação de aconselhamento jurídico.

Método Quando é necessário Resumo da implementação
Opção de inclusão
  • Conformidade com o GDPR na UE
  • Conformidade com a COPPA para aplicativos para crianças
  • Jurisdições que exigem consentimento explícito
Atrasar a inicialização do SDK até que o usuário conceda o consentimento. Nenhum dado é transmitido sem permissão explícita.
Opt-Out
  • Conformidade com a CCPA na Califórnia
  • Jurisdições que permitem o rastreamento com opção de auto-exclusão
  • Aplicativos dirigidos a públicos adultos com opções de consentimento
Inicializar o SDK normalmente, mas fornecer um mecanismo para os usuários interromperem o rastreamento em qualquer altura.
Híbrido
  • Aplicativos que operam em várias jurisdições
  • Demografia mista do público
  • Requisitos regulamentares variados
Implementar o Opt-In para usuários que requerem consentimento explícito e, em seguida, fornecer um mecanismo de Opt-Out para controle contínuo.

Melhores práticas: Muitas organizações implementam uma abordagem híbrida utilizando a opção Opt-In para o consentimento inicial, seguida da opção Opt-Out nas configurações do aplicativo, proporcionando a máxima flexibilidade e cobertura de conformidade.

O que a inicialização realmente faz

Inicializar o SDK envia a primeira sessão, cria o registro de instalação e aciona o processamento de atribuição. stopAllTracking() interrompe toda a transmissão a partir desse momento, mas não desfaz a instalação nem os eventos já enviados. Se o seu requisito é que a Singular nunca receba nem processe nada para um dispositivo, o único controle que atende a isso é não inicializar o SDK para esse usuário.

Para um framework de decisão sobre como a inicialização (se a Singular rastreia um usuário) e o Limit Data Sharing (se os dados desse usuário são compartilhados com os parceiros) se combinam, incluindo o modelo "inicializar imediatamente e resolver o Limit Data Sharing na inicialização" e como mapear o consentimento de medição e o de publicidade separadamente para esses controles, consulte Consent Management with the Singular SDK: A Decision Framework.


Método Opt-In

Abordagem de consentimento inicial que atrasa a inicialização do SDK até que o usuário conceda explicitamente permissão para a coleta e o rastreamento de dados.

Implementação da opção Opt-In

Estratégia de implementação

O método Opt-In requer a apresentação da interface de consentimento antes de qualquer inicialização do SDK ou transmissão de dados para a plataforma Singular.

Requisito Crítico: Não inicializar o SDK Singular ou coletar quaisquer dados até que o usuário conceda explicitamente seu consentimento. A inicialização do SDK deve ser condicional com base no status do consentimento.


Fluxo de trabalho de implementação

Diagrama de Fluxo de Opt-In

Opt-In Workflow Diagram


Implementação passo a passo

1

Verificar o estado do consentimento

No lançamento do aplicativo, verifique a preferência de consentimento armazenada antes de qualquer operação do SDK.

Considerações sobre a implementação:

  • Armazenar a preferência de consentimento no armazenamento persistente (SharedPreferences, UserDefaults, etc.)
  • Verificar o estado de consentimento antes da inicialização de AppDelegate ou MainActivity
  • Predefinição para sem consentimento (não assumir permissão)
SWIFTKOTLINREACT NATIVE
// Check consent status from storage
func hasUserConsent() -> Bool {
    return UserDefaults.standard.bool(forKey: "singular_tracking_consent")
}

func application(_ application: UIApplication, 
                 didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    
    // Only initialize if consent granted
    if hasUserConsent() {
        initializeSingular()
    } else {
        // Show consent dialog
        presentConsentDialog()
    }
    
    return true
}
2

Apresentar interface de consentimento

Se não for armazenada nenhuma preferência de consentimento ou se o consentimento não for concedido, apresentar uma interface de consentimento clara que explique as práticas de coleta de dados.

Requisitos da interface de consentimento:

  • Linguagem clara: Linguagem simples que explique quais os dados coletados e porquê
  • Ação explícita: O usuário tem de tomar uma ação afirmativa (não deve marcar previamente as caixas)
  • Opções granulares: Consentimento separado para diferentes tipos de dados, se exigido por regulamento
  • Recusa fácil: Recusar o consentimento deve ser tão fácil como concedê-lo
  • Link para a política de privacidade: Link para a política de privacidade completa para obter informações pormenorizadas

Requisitos do GDPR: Nos termos do RGPD, o consentimento deve ser dado livremente, específico, informado e inequívoco. As caixas pré-marcadas ou o consentimento implícito não cumprem os requisitos.

3

Tratar a concessão de consentimento

Quando o usuário concede o consentimento, armazena a preferência e inicializa o Singular SDK com a configuração normal.

SWIFTKOTLINREACT NATIVE
func userGrantedConsent() {
    // Store consent preference
    UserDefaults.standard.set(true, forKey: "singular_tracking_consent")
    UserDefaults.standard.synchronize()
    
    // Initialize Singular SDK
    initializeSingular()
}

func initializeSingular() {
    let config = SingularConfig(apiKey: "SDK_KEY", andSecret: "SDK_SECRET")
    
    // Configure as needed
    config.launchOptions = launchOptions
    
    // Initialize SDK
    Singular.start(config)
}
4

Tratar recusa de consentimento

Quando o usuário recusa o consentimento, armazena a preferência e não inicializa o SDK. O aplicativo continua a funcionar sem rastreamento.

SWIFTKOTLINREACT NATIVE
func userDeclinedConsent() {
    // Store declined preference
    UserDefaults.standard.set(false, forKey: "singular_tracking_consent")
    UserDefaults.standard.synchronize()
    
    // Do NOT initialize Singular SDK
    // App continues without tracking
    
    // Optional: Log declined consent for internal analytics
    print("User declined tracking consent")
}
5

Fornecer revogação do consentimento

Mesmo depois de conceder o consentimento através do método Opt-In, os usuários devem ter a opção de revogar o consentimento mais tarde. Implemente o mecanismo Opt-Out nas configurações do aplicativo.

Requisito regulamentar: A maioria dos regulamentos de privacidade exige a possibilidade de retirar o consentimento tão facilmente como a sua concessão. Implementar o método Opt-Out nas configurações para a gestão contínua do consentimento.

Consulte a seção Método de exclusão para obter detalhes sobre a implementação da revogação.

Considerações de tempo:

  • A atribuição é preservada quando a inicialização ocorre 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 de consentimento do primeiro início em uma única tela rápida.
  • Os deferred deep links exigem que a inicialização e a atribuição sejam resolvidas, portanto não estão disponíveis para usuários que nunca inicializam.
  • 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.

Conformidade com a COPPA

Proteção da privacidade das crianças

Os aplicativos direcionados para crianças ou públicos mistos requerem uma consideração especial ao abrigo da COPPA e de regulamentos de privacidade para crianças semelhantes.

Implementação do Age Gate
#

Requisito de verificação da idade

Os aplicativos com audiências mistas (crianças e adultos) devem implementar a porta de idadeantes de qualquer coleta de dados de crianças.


Fluxo do Age Gate

  1. Pedido de idade: Solicitar a idade do usuário ou a data de nascimento no lançamento do aplicativo antes de qualquer rastreamento
  2. Determinar o público: Identificar se o usuário é uma criança (com menos de 13 anos nos EUA) ou um adulto
  3. Usuários crianças: Para crianças, obter consentimento verificável dos pais antes de inicializar o SDK (tratar como Opt-In com requisito de consentimento dos pais)
  4. Usuários adultos: Para adultos, proceder com o fluxo normal de aceitação ou exclusão com base na jurisdição

Métodos de consentimento parental

A COPPA aceita vários métodos de consentimento parental verificável:

  • Os pais fornecem informações sobre o cartão de crédito
  • Formulário de consentimento assinado por fax, correio eletrónico ou correio postal
  • Os pais telefonam para um número gratuito
  • Pais em videoconferência com o pessoal
  • Os pais fornecem um documento de identificação emitido pelo governo, verificado na base de dados
  • Responder a perguntas de desafio baseadas no conhecimento

Consultar um consultor jurídico sobre o método de consentimento parental adequado para o seu aplicativo.

Aplicativos dirigidos exclusivamente a crianças
#

SDK especializado para aplicativos para crianças

Para aplicativos dirigidos exclusivamente a crianças (não a públicos mistos), a Singular fornece SDKs especializados para aplicativos para crianças que cumprem os requisitos COPPA ao não capturar identificadores de dispositivos.

SDKs de aplicativos para crianças: Consulte as Perguntas Frequentes sobre SDKspara Crianças e entre em contato com a equipe de sua conta para obter orientação sobre como utilizar a Singular de maneira compatível com a COPPA para aplicativos exclusivos para crianças.


Principais diferenças

Os SDKs do Kids Apps diferem dos SDKs padrão:

  • Sem coleta de identificadores de dispositivos (IDFA, GAID, etc.)
  • Capacidades de atribuição limitadas (apenas agregadas)
  • Sem rastreamento entre dispositivos
  • Em conformidade com as políticas de aplicativos para crianças da App Store e da Play Store

Método de auto-exclusão

Abordagem de rastreamento em primeiro lugar, inicializando o SDK normalmente, mas fornecendo ao usuário o controle para interromper o rastreamento em qualquer altura através das configurações ou preferências do aplicativo.

Implementação da opção Opt-Out

Estratégia de implementação

O método Opt-Out permite a inicialização do SDK no lançamento do aplicativo, fornecendo ao mesmo tempo um mecanismo para os usuários desativarem o rastreamento, se desejado, normalmente através da interface de configurações.


Fluxo de trabalho de implementação

Diagrama de fluxo de Opt-Out

Opt-Out Workflow Diagram


Implementação passo a passo

1

Inicialização do SDK no lançamento do aplicativo

Inicialize o Singular SDK normalmente durante o lançamento do aplicativo, habilitando o rastreamento por padrão.

SWIFTKOTLINREACT NATIVE
func application(_ application: UIApplication, 
                 didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    
    // Check if user previously opted out
    let hasOptedOut = UserDefaults.standard.bool(forKey: "singular_opted_out")
    
    // Initialize Singular SDK
    let config = SingularConfig(apiKey: "SDK_KEY", andSecret: "SDK_SECRET")
    config.launchOptions = launchOptions
    Singular.start(config)
    
    // If previously opted out, stop tracking immediately
    if hasOptedOut {
        Singular.stopAllTracking()
    }
    
    return true
}
2

Fornecer mecanismo de exclusão

Criar um mecanismo claro e de fácil acesso para que os usuários possam optar por não aceitar o rastreamento, normalmente nas configurações do aplicativo ou nas preferências de privacidade.

Requisitos da interface de exclusão:

  • Fácil acesso: Colocar numa localização intuitiva (Configurações → Privacidade ou semelhante)
  • Descrição clara: Explicar o significado da opção de exclusão e o impacto na funcionalidade do aplicativo
  • Alternância simples: Botão ou alternância de um passo para desativar o rastreamento
  • Efeito imediato: A desativação tem efeito imediato sem necessidade de reiniciar o aplicativo
  • Reversível: O usuário pode optar por voltar a participar com a mesma facilidade

Requisito CCPA: A Lei de Privacidade do Consumidor da Califórnia exige que o link "Não vender as minhas informações pessoais" seja apresentada de forma proeminente. O mecanismo de auto-exclusão deve ser claramente identificado e facilmente acessível.

3

Lidar com a ação de auto-exclusão

Quando o usuário optar por sair, chame Singular.stopAllTracking()para cessar imediatamente toda a transmissão de dados para a Singular.

SWIFTKOTLINREACT NATIVE
func userOptedOut() {
    // Stop all tracking immediately
    Singular.stopAllTracking()
    
    // Store opt-out preference
    UserDefaults.standard.set(true, forKey: "singular_opted_out")
    UserDefaults.standard.synchronize()
    
    // Optional: Show confirmation to user
    showAlert(title: "Tracking Disabled", 
              message: "Your data will no longer be tracked.")
}

stopAllTracking() Comportamento

Quando stopAllTracking() é chamado:

  • Todo o rastreamento de eventos cessa imediatamente
  • O rastreamento de sessão é interrompido
  • Nenhum dado é enviado aos servidores da Singular
  • Rastreamento de atribuição desativado
  • A definição persiste em todas as sessões do aplicativo até ser revertida
4

Tratar a ação de aceitação

Quando o usuário decidir optar por voltar a participar, chame Singular.resumeAllTracking()para retomar as operações normais de rastreamento.

SWIFTKOTLINREACT NATIVE
func userOptedIn() {
    // Resume all tracking
    Singular.resumeAllTracking()
    
    // Update opt-out preference
    UserDefaults.standard.set(false, forKey: "singular_opted_out")
    UserDefaults.standard.synchronize()
    
    // Optional: Show confirmation to user
    showAlert(title: "Tracking Enabled", 
              message: "Your app activity will now be tracked.")
}

resumeAllTracking() Comportamento

Quando resumeAllTracking() é chamado:

  • O seguimento de eventos é retomado imediatamente
  • O rastreamento de sessões é reiniciado
  • Transmissão de dados para servidores Singular ativada
  • Rastreamento de atribuição reativado
  • Nova sessão criada para marcar o reinício

Aviso sobre método legado: trackingOptIn() registra apenas um evento de notificação de consentimento. Não tem efeito funcional sobre o rastreamento ou o tratamento de dados e não deve ser usado como mecanismo de consentimento. Para controlar o rastreamento, use a inicialização condicionada (Opt-In) ou stopAllTracking() / resumeAllTracking() (Opt-Out).


Melhores práticas de implementação

Considerações sobre o opt-out

Colocação de configurações
#

Locais recomendados

Coloque o controle de exclusão em locais intuitivos e de fácil acesso:

  • Configurações de privacidade: Seção dedicada à privacidade ou às configurações de dados
  • Configurações gerais: Menu principal de configurações com uma subsecção de privacidade clara
  • Configurações de conta: Área de preferências da conta de usuário
  • Primeira experiência: Mencionar a disponibilidade de auto-exclusão durante a integração
Comunicação clara
#

Requisitos de transparência

Comunicar claramente o significado da auto-exclusão e qualquer impacto na funcionalidade:

  • Descrição da coleta de dados: Explicar quais os dados coletados e para que fins
  • Efeitos da auto-exclusão: Descrever o que acontece quando o usuário opta por não participar
  • Impacto na funcionalidade: Divulgar se a exclusão afecta as funcionalidades do aplicativo
  • Reversibilidade: Confirmar que os usuários podem optar por voltar a participar em qualquer altura
Persistência das preferências
#

Considerações sobre armazenamento

Armazenar a preferência de exclusão de forma fiável em todas as sessões do aplicativo:

  • Armazenamento persistente: Utilizar SharedPreferences (Android) ou UserDefaults (iOS)
  • Verificar no lançamento: Verificar o estado da auto-exclusão em cada lançamento de aplicativo
  • Respeitar a preferência: Honrar o opt-out mesmo se o SDK for reinicializado
  • Armazenamento de backup: Considere a possibilidade de fazer backup no servidor para obter consistência entre dispositivos

Considerações adicionais

A conformidade abrangente com a privacidade requer atenção a vários aspectos além da implementação básica de opt-in/opt-out.

Retenção e eliminação de dados

Gestão de dados do usuário

Os regulamentos de privacidade exigem frequentemente mecanismos para os usuários solicitarem a eliminação ou exportação de dados.

Direitos dos titulares dos dados: Use a Referência da API do GDPR para enviar solicitações de exclusão (apagamento) e de acesso a dados de usuários de forma programática. Observe que o apagamento exclui os dados coletados, mas não impede que o SDK continue enviando eventos futuros — combine-o com stopAllTracking() ou com a inicialização condicionada no mesmo fluxo de usuário.


Política de privacidade

Divulgações obrigatórias

Manter uma política de privacidade abrangente e acessível que divulgue as práticas de coleta, utilização e compartilhamento de dados.

Requisitos da política de privacidade:

  • Dados coletados: Enumerar todos os tipos de dados coletados, incluindo identificadores de dispositivos, eventos e informações do usuário
  • Objetivo da utilização: Explicar como são utilizados os dados (análise, atribuição, publicidade, etc.)
  • Compartilhamento com terceiros: Divulgar o compartilhamento de dados com a Singular e outros terceiros
  • Direitos do usuário: Explicar os direitos do usuário relativamente ao acesso aos dados, eliminação e exclusão
  • Informações de contato: Fornecer um método de contato para questões e pedidos de privacidade

Conformidade com várias jurisdições

Requisitos de privacidade globais

Os aplicativos que servem várias jurisdições têm de estar em conformidade com vários regulamentos de privacidade em simultâneo.

Abordagem Descrição
Baseada em geolocalização Detectar a localização do usuário e aplicar controles de privacidade adequados com base na jurisdição (Opt-In para a UE, Opt-Out para a Califórnia, etc.)
Norma mais elevada Aplicar os requisitos mais rigorosos (normalmente GDPR Opt-In) a nível global, simplificando a conformidade à custa do rastreamento imediato
Seleção do usuário Permitir que os usuários especifiquem a jurisdição durante a integração, aplicando controles de privacidade adequados

Necessidade de aconselhamento jurídico: A conformidade com várias jurisdições é complexa e requer conhecimentos jurídicos. Consulte um consultor de privacidade para determinar a abordagem adequada para a sua empresa.


Testar a implementação da privacidade

Lista de verificação de validação

Validação da implementação da privacidade:

  • SDK não inicializado antes do consentimento concedido (método Opt-In)
  • stopAllTracking() cessa imediatamente a transmissão de dados
  • resumeAllTracking() reinicia com êxito o rastreamento
  • A preferência de auto-exclusão persiste em todas as sessões do aplicativo
  • A interface de consentimento explica claramente as práticas de dados
  • Mecanismo de auto-exclusão facilmente acessível nas configurações
  • Política de privacidade acessível e abrangente
  • Porta de idade implementada para aplicativos de audiências mistas (COPPA)
  • O Console de Testes não mostra eventos quando o opt-out é recusado
  • O Console de Testes mostra um resumo dos eventos quando a opção é ativada

Recursos adicionais

Documentação completa para conformidade de privacidade, implementação de SDK e orientação regulamentar.

Documentação do Singular


Recursos de regulamentação de privacidade


Isenção de responsabilidade legal

Não se trata de aconselhamento jurídico: As informações fornecidas neste guia representam métodos de implementação técnica geralmente aceites, mas não constituem aconselhamento jurídico. Para determinar a interpretação completa das leis de privacidade e a forma como se aplicam ao seu negócio específico, consulte a sua própria equipe jurídica ou de privacidade.

Os regulamentos de privacidade variam consoante a jurisdição e continuam a evoluir. Mantenha uma consulta contínua com o conselho jurídico para garantir a conformidade com as leis aplicáveis.