Skip to content

Gerenciar a coleta de dados

Aprenda a gerenciar a coleta de dados para o SDK da Braze, para que você possa cumprir todas as regulamentações de privacidade de dados, conforme necessário.

Desabilitando o rastreamento de dados

Para desabilitar a atividade de rastreamento de dados no SDK para web, use o método disableSDK(). Isso sincronizará todos os dados registrados antes da chamada de disableSDK() e fará com que todas as chamadas subsequentes ao SDK da Braze para web nesta página e em carregamentos futuros sejam ignoradas.

Use o tipo de tag Disable Tracking ou Resume Tracking para desabilitar ou reabilitar o rastreamento web, respectivamente. Essas duas opções chamam disableSDK e enableSDK.

Práticas recomendadas

Para oferecer aos usuários a opção de interromper o rastreamento, recomendamos criar uma página simples com dois links ou botões: um que chama disableSDK() ao ser clicado e outro que chama enableSDK() para permitir que os usuários optem por participar novamente. Você pode usar esses controles para iniciar ou interromper o rastreamento por meio de outros subprocessadores de dados também.

Retomando o rastreamento de dados

Para retomar a coleta de dados, você pode usar o método enableSDK().

Logout e cancelamento de registro de push

O SDK da Braze fornece métodos para parar de direcionar um dispositivo quando um usuário cancela o registro de notificações por push ou faz logout. Esses métodos removem os dados de registro de push do usuário atual no servidor da Braze e no SDK, de modo que a Braze não envia mais Campaigns de notificação por push futuras para esse usuário.

Logout

Quando um usuário faz logout de um aplicativo, chame o método logout do SDK para remover o registro de push do dispositivo do usuário atual e executar automaticamente ações de limpeza no SDK. O método logout executa o seguinte:

  • Cancela o registro do token por push do dispositivo do usuário atual no servidor da Braze.
  • Se a chamada de cancelamento de registro for bem-sucedida, o SDK apaga os dados do SDK armazenados localmente e desabilita o SDK.
  • Em caso de falha, invoca o errorCallback para permitir que o integrador tome uma ação.

O exemplo a seguir mostra o tratamento de logout baseado em retorno de chamada. Use-o quando precisar de tratamento imediato de sucesso e erro, e substitua o registro de log pelo fluxo do seu app.

1
2
3
4
5
6
7
8
9
10
11
import { logout } from "@braze/web-sdk";

const successCallback = () => {
  console.log('Successfully logged out');
};

const errorCallback = () => {
  console.log('Failed to log out');
};

logout(successCallback, errorCallback);

Reativar o rastreamento e push após logout

Após um logout bem-sucedido, chame enableSDK() e, em seguida, registre-se novamente para notificações com seu sistema operacional (SO) ou provedor de push seguindo a configuração de web push.

Evite chamadas imediatas de cancelamento de registro

Evite chamar logout ou unregisterPush diretamente após registrar-se para notificações por push com o SO ou provedor de push. Devido ao processamento assíncrono do servidor, isso pode, raramente, readicionar o token por push ao usuário da Braze.

Cancelar registro de push

Para parar de enviar push para um dispositivo sem limpeza automatizada adicional, use o método unregisterPush. Isso remove o token por push do dispositivo do usuário atual no servidor da Braze e limpa o token armazenado localmente.

O exemplo a seguir mostra o tratamento de unregisterPush baseado em retorno de chamada. Use-o quando precisar de tratamento imediato de sucesso e erro, e substitua o registro de log pelo fluxo do seu app.

1
2
3
4
5
6
7
8
9
10
11
import { unregisterPush } from "@braze/web-sdk";

const successCallback = () => {
  console.log('Successfully unregistered from push');
};

const errorCallback = () => {
  console.log('Failed to unregister from push');
};

unregisterPush(successCallback, errorCallback);

Registrar-se novamente para push após unregisterPush

Após chamar unregisterPush, registre-se novamente para notificações com seu SO ou provedor de push seguindo a configuração de web push antes de enviar notificações por push da Braze novamente.

Evite chamadas imediatas de cancelamento de registro

Evite chamar logout ou unregisterPush diretamente após registrar-se para notificações por push com o SO ou provedor de push. Devido ao processamento assíncrono do servidor, isso pode, raramente, readicionar o token por push ao usuário da Braze.

Questionário de privacidade do Google Play

A partir de abril de 2022, os desenvolvedores de Android deverão preencher o formulário de segurança de dados do Google Play para divulgar práticas de privacidade e segurança. Este guia fornece instruções sobre como preencher esse novo formulário com informações sobre como a Braze lida com os dados do seu app.

Como desenvolvedor do app, você tem o controle dos dados que envia à Braze. Os dados recebidos pela Braze são processados de acordo com suas instruções. Isso é o que o Google classifica como um prestador de serviço.

Perguntas

Perguntas Respostas para o Braze SDK
O seu app coleta ou compartilha algum dos tipos de dados de usuários necessários? Sim, o SDK da Braze para Android coleta dados conforme configurado pelo desenvolvedor do app.
Todos os dados de usuários coletados pelo seu app são criptografados em trânsito? Sim.
Vocês oferecem uma maneira de os usuários solicitarem a exclusão de seus dados? Sim.

Para saber mais sobre como lidar com solicitações de dados de usuários e exclusão, consulte Informações de retenção de dados da Braze.

Coleta de dados

Os dados coletados pela Braze são determinados pela sua integração específica e pelos dados de usuários que você escolher coletar. Para saber mais sobre quais dados a Braze coleta por padrão e como desativar determinados atributos, consulte nossas opções de coleta de dados do SDK.

Categoria Tipo de dados Uso da Braze
Local Local aproximado Não coletado por padrão.
Localização precisa
Informações pessoais Nome
Endereço de e-mail
IDs de usuário
Endereço
Número de telefone
Raça e etnia
Crenças políticas ou religiosas
Orientação sexual
Outras informações
Informações financeiras Informações de pagamento do usuário
Histórico de compras
Pontuação de crédito
Outras informações financeiras
Saúde e condicionamento físico Informações sobre saúde Não coletado por padrão.
Informações sobre condicionamento físico
Mensagens E-mails Não coletado por padrão.
SMS ou MMS
Outras mensagens no app Se você enviar mensagens no app ou notificações por push por meio da Braze, coletaremos informações sobre quando os usuários abriram ou leram essas mensagens.
Fotos e vídeos Fotos Não coletado.
Vídeos
Arquivos de áudio Gravações de voz ou som
Arquivos de música
Outros arquivos de áudio
Arquivos e documentos Arquivos e documentos
Calendário Eventos do calendário
Contatos Contatos
Atividade do app Interações do app A Braze coleta dados de atividade da sessão por padrão. Todas as outras interações e atividades são determinadas pela integração personalizada do seu app.
Histórico de pesquisa no app Não coletado.
Aplicativos instalados Não coletado.
Outros conteúdos gerados por usuários Não coletado por padrão.
Outras ações
Navegação na web Histórico de navegação na web Não coletado.
Informações e desempenho do app Registros de falhas A Braze coleta registros de falhas para erros que ocorrem no SDK. Eles contêm o modelo do telefone do usuário e o nível do sistema operacional, juntamente com um ID de usuário específico da Braze.
Diagnóstico Não coletado.
Outros dados de desempenho do app Não coletado.
IDs de dispositivos ou outros IDs de dispositivos ou outros A Braze gera um ID de dispositivo para diferenciar os dispositivos dos usuários e verifica se as mensagens são enviadas para o dispositivo correto.

Para saber mais sobre outros dados de dispositivos que a Braze coleta e que podem estar fora do escopo das diretrizes de segurança de dados do Google Play, consulte nossa visão geral do armazenamento Android e nossas opções de coleta de dados do SDK.

Desabilitando o rastreamento de dados

Para desabilitar a atividade de rastreamento de dados no SDK para Android, use o método disableSDK(). Isso fará com que todas as conexões de rede sejam canceladas, o que significa que o SDK da Braze não enviará mais nenhum dado para os servidores da Braze.

Limpando dados armazenados anteriormente

Você pode usar o método wipeData() para limpar completamente todos os dados do lado do cliente armazenados no dispositivo.

Retomando o rastreamento de dados

Para retomar a coleta de dados, você pode usar o método enableSDK(). Lembre-se de que isso não recuperará nenhum dado previamente apagado.

Logout e cancelamento de registro de push

O SDK da Braze fornece métodos para parar de direcionar um dispositivo quando um usuário cancela o registro de notificações por push ou faz logout. Esses métodos removem os dados de registro de push do usuário atual no servidor da Braze e no SDK, de modo que a Braze não envia mais Campaigns de notificação por push futuras para esse usuário.

Logout

Quando um usuário faz logout de um aplicativo, chame o método logout do SDK para remover o registro de push do dispositivo do usuário atual e executar automaticamente ações de limpeza no SDK. O método logout executa o seguinte:

  • Cancela o registro do token de push do dispositivo do usuário atual no servidor da Braze.
  • Se a chamada de cancelamento de registro for bem-sucedida, o SDK limpa os dados do SDK armazenados localmente e desabilita o SDK.
  • Em caso de falha, gera um erro e um sinalizador isRetriable para permitir que o integrador tome uma ação.

O exemplo de retorno de chamada a seguir mostra o tratamento de sucesso e erro do logout. Use-o para fluxos de logout baseados em retorno de chamada e substitua o registro de log pela sua lógica de nova tentativa ou reautenticação.

1
2
3
4
5
6
7
8
9
10
11
// Completion callback
Braze.getInstance(context).logout { result ->
  result
    .onSuccess {
      Log.d(TAG, "Logout successful")
    }
    .onFailure { error ->
      val pushError = error as? BrazePushUnregistrationException
      Log.e(TAG, "Logout failed: ${error.message}, isRetriable: ${pushError?.isRetriable}")
    }
}

O exemplo de coroutine a seguir mostra a API suspensa logout. Use-o em fluxos baseados em coroutine e personalize as ramificações de sucesso e falha para o seu app.

1
2
3
4
5
6
7
8
9
10
lifecycleScope.launch {
  runCatching { Braze.getInstance(context).logout() }
    .onSuccess {
      Log.d(TAG, "Logout successful")
    }
    .onFailure { error ->
      val pushError = error as? BrazePushUnregistrationException
      Log.e(TAG, "Logout failed: ${error.message}, isRetriable: ${pushError?.isRetriable}")
    }
}

Reativar o rastreamento e push após logout

Após um logout bem-sucedido, reative o SDK com enableSDK() e, em seguida, registre-se novamente para notificações com o seu sistema operacional (SO) ou provedor de push seguindo a configuração de push para Android.

Evite chamadas imediatas de cancelamento de registro

Evite chamar logout ou unregisterPush diretamente após registrar-se para notificações por push com o SO ou provedor de push. Devido ao processamento assíncrono do servidor, isso pode, raramente, readicionar o token de push ao usuário da Braze.

Cancelar registro de push

Para parar de enviar push para um dispositivo sem limpeza automatizada adicional, use o método unregisterPush. Isso remove o token de push do dispositivo do usuário atual no servidor da Braze e limpa o token armazenado localmente.

O exemplo de retorno de chamada a seguir mostra como lidar com os resultados de unregisterPush. Use-o quando o seu fluxo for baseado em retorno de chamada e substitua o registro de log pelo seu próprio tratamento de nova tentativa.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Completion callback
Braze.getInstance(context).unregisterPush { result ->
  result
    .onSuccess {
      Log.d(TAG, "Push unregistered successfully")
    }
    .onFailure { error ->
      val pushError = error as? BrazePushUnregistrationException
      Log.e(
        TAG,
        "Push unregistration failed: ${error.message}, isRetriable: ${pushError?.isRetriable}"
      )
    }
}

O exemplo de coroutine a seguir mostra a API suspensa unregisterPush. Use-o em fluxos baseados em coroutine e personalize as ramificações de sucesso e falha para o seu app.

1
2
3
4
5
6
7
8
9
10
11
12
13
lifecycleScope.launch {
  runCatching { Braze.getInstance(context).unregisterPush() }
    .onSuccess {
      Log.d(TAG, "Push unregistered successfully")
    }
    .onFailure { error ->
      val pushError = error as? BrazePushUnregistrationException
      Log.e(
        TAG,
        "Push unregistration failed: ${error.message}, isRetriable: ${pushError?.isRetriable}"
      )
    }
}

Registrar-se novamente para push após unregisterPush

Após chamar unregisterPush, registre-se novamente para notificações com o seu SO ou provedor de push seguindo a configuração de push para Android antes de enviar notificações por push da Braze novamente.

Evite chamadas imediatas de cancelamento de registro

Evite chamar logout ou unregisterPush diretamente após registrar-se para notificações por push com o SO ou provedor de push. Devido ao processamento assíncrono do servidor, isso pode, raramente, readicionar o token de push ao usuário da Braze.

Manifesto de privacidade da Apple

O que são dados de rastreamento?

A Apple define “dados de rastreamento” como os dados coletados em seu app sobre um usuário final ou dispositivo que estão vinculados a dados de terceiros (como publicidade direcionada) ou a um corretor de dados. Para uma definição completa com exemplos, consulte Apple: Rastreamento.

Por padrão, o SDK da Braze não coleta dados de rastreamento. No entanto, dependendo da configuração do SDK da Braze, talvez seja necessário listar dados específicos da Braze no manifesto de privacidade do seu app.

O que é um manifesto de privacidade?

Um manifesto de privacidade é um arquivo em seu projeto Xcode que descreve o motivo pelo qual seu app e SDKs de terceiros coletam dados, juntamente com seus métodos de coleta de dados. Cada um dos seus SDKs de terceiros que rastreiam dados exige seu próprio manifesto de privacidade. Quando você cria o relatório de privacidade do seu app, esses arquivos de manifesto de privacidade são automaticamente agregados em um único relatório.

Domínios de dados de rastreamento da API

A partir do iOS 17.2, a Apple bloqueará todos os endpoints de rastreamento declarados em seu app até que o usuário final aceite um aviso de Transparência de Rastreamento de Anúncios (ATT). A Braze fornece endpoints de rastreamento para encaminhar seus dados de rastreamento e, ao mesmo tempo, permite que você encaminhe dados primários que não sejam de rastreamento para o endpoint original.

Declarando dados de rastreamento da Braze

Pré-requisitos

A seguinte versão do SDK da Braze é necessária para implementar este recurso:

Etapa 1: Revise suas políticas atuais

Revise as políticas atuais de coleta de dados do SDK da Braze com sua equipe jurídica para determinar se o seu app coleta dados de rastreamento conforme definido pela Apple. Se você não estiver coletando nenhum dado de rastreamento, não é necessário personalizar o manifesto de privacidade para o SDK da Braze neste momento. Para saber mais sobre as políticas de coleta de dados do SDK da Braze, consulte Coleta de dados do SDK.

Etapa 2: Crie um manifesto de privacidade

Primeiro, verifique se você já possui um manifesto de privacidade procurando um arquivo PrivacyInfo.xcprivacy no seu projeto Xcode. Se você já tiver esse arquivo, pode continuar para a próxima etapa. Caso contrário, consulte Apple: Criar um manifesto de privacidade.

Etapa 3: Adicione seu endpoint ao manifesto de privacidade

No seu projeto Xcode, abra o arquivo PrivacyInfo.xcprivacy do seu app, clique com o botão direito na tabela e marque Raw Keys and Values.

Um projeto Xcode com o menu de contexto aberto e "Raw Keys and Values" destacado.

Em App Privacy Configuration, escolha NSPrivacyTracking e defina seu valor como YES.

O arquivo "PrivacyInfo.xcprivacy" aberto com "NSPrivacyTracking" definido como "YES".

Em App Privacy Configuration, escolha NSPrivacyTrackingDomains. No array de domínios, adicione um novo elemento e defina seu valor como o endpoint que você adicionou anteriormente ao seu AppDelegate com o prefixo sdk-tracking.

O arquivo "PrivacyInfo.xcprivacy" aberto com um endpoint de rastreamento da Braze listado em "NSPrivacyTrackingDomains".

Etapa 4: Declare seus dados de rastreamento

Em seguida, abra o AppDelegate.swift e liste cada propriedade de rastreamento que você deseja declarar, criando uma lista de rastreamento estática ou dinâmica. Lembre-se de que a Apple bloqueará essas propriedades até que o usuário final aceite o prompt de ATT, então liste apenas as propriedades que você e sua equipe jurídica consideram como dados de rastreamento. Por exemplo:

No exemplo a seguir, dateOfBirth, customEvent e customAttribute são declarados como dados de rastreamento em uma lista estática.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import UIKit
import BrazeKit

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

  static var braze: Braze? = nil

  func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    let configuration = Braze.Configuration(apiKey: brazeApiKey, endpoint: brazeEndpoint)
    // Declare which types of data you wish to collect for user tracking.
    configuration.api.trackingPropertyAllowList = [
      .dateOfBirth,
      .customEvent(["event-1"]),
      .customAttribute(["attribute-1", "attribute-2"])
    ]
    let braze = Braze(configuration: configuration)
    AppDelegate.braze = braze
    return true
  }
}

No exemplo a seguir, a lista de rastreamento é atualizada automaticamente após o usuário final aceitar o prompt de App Tracking Transparency (ATT). Solicitar autorização na ativação do app é um evento por cena, então esse código pertence ao método sceneDidBecomeActive(_:) do seu arquivo SceneDelegate.swift, e não ao applicationDidBecomeActive(_:) do AppDelegate.swift (necessário para apps que adotaram o ciclo de vida UIScene). Sua instância da Braze permanece acessível a partir do SceneDelegate por meio da propriedade estática AppDelegate.braze configurada na Etapa 1.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
func sceneDidBecomeActive(_ scene: UIScene) {
  // Request and check your user's tracking authorization status.
  ATTrackingManager.requestTrackingAuthorization { status in
    // Let Braze know whether user data is allowed to be collected for tracking.
    let enableAdTracking = status == .authorized
    AppDelegate.braze?.set(adTrackingEnabled: enableAdTracking)

    // Add the `.firstName` and `.lastName` properties, while removing the `.everything` configuration.
    AppDelegate.braze?.updateTrackingAllowList(
      adding: [.firstName, .lastName],
      removing: [.everything]
    )
  }
}

Etapa 5: Evite loops infinitos de tentativas

Para evitar que o SDK entre em um loop infinito de tentativas, use o método set(adTrackingEnabled: enableAdTracking) para lidar com as permissões de ATT. A propriedade adTrackingEnabled no método do seu SceneDelegate.swift deve ser tratada de forma semelhante ao seguinte:

1
2
3
4
5
6
7
8
func sceneDidBecomeActive(_ scene: UIScene) {
    // Request and check your user's tracking authorization status.
    ATTrackingManager.requestTrackingAuthorization { status in
      // Let Braze know whether user data is allowed to be collected for tracking.
      let enableAdTracking = status == .authorized
      AppDelegate.braze?.set(adTrackingEnabled: enableAdTracking)
    }
}

Desativando o rastreamento de dados

Para desativar a atividade de rastreamento de dados no SDK Swift, defina a propriedade enabled como false na sua instância da Braze. Quando enabled é definido como false, o SDK da Braze ignora todas as chamadas à API pública. O SDK também cancela todas as ações em andamento, como solicitações de rede, processamento de eventos, etc.

Limpando dados armazenados anteriormente

Você pode usar o método wipeData() para limpar completamente os dados do SDK armazenados localmente no dispositivo de um usuário.

Para versões 7.0.0 e posteriores do Braze Swift, o SDK e o método wipeData() geram aleatoriamente um UUID para o ID do dispositivo. No entanto, se o seu useUUIDAsDeviceId estiver definido como false ou se você estiver usando a versão 5.7.0 ou anterior do Swift SDK, também será necessário fazer uma solicitação POST para /users/delete, pois o Identifier for Vendors (IDFV) será automaticamente usado como o ID do dispositivo desse usuário.

Se você usa integração manual de push e seu app chama wipeData() e depois reativa o SDK na mesma execução do app, chame registerForRemoteNotifications() novamente para que a Braze possa receber um token de dispositivo atualizado. Para saber mais, consulte configuração de notificações por push.

Retomando o rastreamento de dados

Para retomar a coleta de dados, defina enabled como true. Lembre-se de que isso não recuperará nenhum dado previamente apagado.

Logout e cancelamento de registro de push

O SDK da Braze fornece métodos para parar de direcionar um dispositivo quando um usuário cancela o registro de notificações por push ou faz logout. Esses métodos removem os dados de registro de push do usuário atual no servidor da Braze e no SDK, de modo que a Braze não envie mais Campaigns de notificação por push futuras para esse usuário.

Logout

Quando um usuário faz logout de um aplicativo, chame o método logout do SDK para remover o registro de push do dispositivo do usuário atual e executar automaticamente ações de limpeza no SDK. O método logout realiza o seguinte:

  • Cancela o registro do token de push do dispositivo e de quaisquer tokens push-to-start de Live Activities do usuário atual no servidor da Braze.
  • Se a chamada de cancelamento de registro for bem-sucedida, o SDK limpa os dados do SDK armazenados localmente e desativa o SDK.
  • Em caso de falha, gera um erro e um sinalizador isRetriable para permitir que o integrador tome uma ação.

O exemplo a seguir com completion handler mostra o tratamento de sucesso e falha do logout. Use-o para fluxos baseados em callback e substitua o registro de log pela lógica de nova tentativa ou reautenticação do seu app.

1
2
3
4
5
6
7
8
9
// Completion handler
AppDelegate.braze?.logout { result in
  switch result {
  case .success:
    print("Logout successful")
  case .failure(let error):
    print("Logout failed: \(error.message), isRetriable: \(error.isRetriable)")
  }
}

O exemplo assíncrono a seguir mostra a API suspensa logout. Use-o para fluxos de trabalho assíncronos e personalize as ramificações de sucesso e falha para o seu app.

1
2
3
4
5
6
7
// Async/await
do {
  try await AppDelegate.braze?.logout()
  print("Logout successful")
} catch let error as Braze.LogoutErrorResult {
  print("Logout failed: \(error.message), isRetriable: \(error.isRetriable)")
}

Este exemplo em Objective-C mostra o tratamento do logout baseado em completion. Use-o em integrações Objective-C e substitua o registro de log pelo fluxo do seu app.

1
2
3
4
5
6
[AppDelegate.braze logoutWithCompletion:^(NSError * _Nullable error) {
  if (error) {
    NSNumber *isRetriable = error.userInfo[BRZLogoutErrorUserInfoKey.isRetriable];
    NSLog(@"Logout failed: %@, isRetriable=%@", error.localizedDescription, isRetriable);
  }
}];

Reativar rastreamento e push após logout

Após um logout bem-sucedido, defina enabled de volta para true e, em seguida, registre-se novamente para notificações com o seu sistema operacional (SO) ou provedor de push seguindo a configuração de push para Swift.

Evite chamadas imediatas de cancelamento de registro

Evite chamar logout ou unregisterPush diretamente após registrar-se para notificações por push com o SO ou provedor de push. Devido ao processamento assíncrono do servidor, isso pode, em casos raros, readicionar o token de push ao usuário da Braze.

Cancelar registro de push

Para parar de enviar push para um dispositivo sem limpeza automatizada adicional, use o método unregisterPush. Isso remove o token de push do dispositivo do usuário atual no servidor da Braze e limpa o token armazenado localmente.

O exemplo a seguir com completion handler mostra o tratamento de sucesso e falha do unregisterPush. Use-o para fluxos baseados em callback e substitua o registro de log pela sua própria lógica de nova tentativa.

1
2
3
4
5
6
7
8
9
// Completion handler
AppDelegate.braze?.notifications.unregisterPush { result in
  switch result {
  case .success:
    print("Push unregistered successfully")
  case .failure(let error):
    print("Push unregistration failed: \(error.message), isRetriable: \(error.isRetriable)")
  }
}

O exemplo assíncrono a seguir mostra a API suspensa unregisterPush. Use-o para fluxos de trabalho assíncronos e personalize as ramificações de sucesso e falha para o seu app.

1
2
3
4
5
6
7
// Async/await
do {
  try await AppDelegate.braze?.notifications.unregisterPush()
  print("Push unregistered successfully")
} catch let error as Braze.PushUnregistrationError {
  print("Push unregistration failed: \(error.message), isRetriable: \(error.isRetriable)")
}

Este exemplo em Objective-C mostra o tratamento do unregisterPush baseado em completion. Use-o em integrações Objective-C e substitua o registro de log pelo fluxo do seu app.

1
2
3
4
5
6
7
8
[AppDelegate.braze.notifications unregisterPushWithCompletion:^(NSError * _Nullable error) {
  if (error) {
    NSNumber *isRetriable = error.userInfo[BRZPushUnregistrationErrorUserInfoKey.isRetriable];
    NSNumber *statusCode = error.userInfo[BRZPushUnregistrationErrorUserInfoKey.httpStatusCode];
    NSLog(@"Push unregistration failed: %@, isRetriable=%@ status=%@",
          error.localizedDescription, isRetriable, statusCode);
  }
}];

Registrar push novamente após unregisterPush

Após chamar unregisterPush, registre-se novamente para notificações com o seu SO ou provedor de push seguindo a configuração de push para Swift antes de enviar notificações por push da Braze novamente.

Evite chamadas imediatas de cancelamento de registro

Evite chamar logout ou unregisterPush diretamente após registrar-se para notificações por push com o SO ou provedor de push. Devido ao processamento assíncrono do servidor, isso pode, em casos raros, readicionar o token de push ao usuário da Braze.

Cancelar registro de tokens push-to-start para Live Activities

Live Activities podem ser iniciadas remotamente usando tokens push-to-start. Para impedir que a Braze inicie remotamente Live Activities em um dispositivo, chame o método unregisterPushToStart para cancelar o registro de todos os tipos registrados atualmente (padrão) ou de uma lista específica de tipos de Activity.

Observe que Live Activities em execução continuam recebendo atualizações e que este método apenas remove a capacidade de iniciar novas atividades remotamente. Para saber mais sobre Live Activities, consulte Live Activities.

O exemplo a seguir mostra como cancelar o registro de todos os tipos de atividade push-to-start. Use-o quando um usuário desconectado não deve mais receber novas Live Activities iniciadas remotamente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Unregister all currently-registered activity types
// Completion handler
AppDelegate.braze?.liveActivities.unregisterPushToStart { result in
  switch result {
  case .success:
    print("Push-to-start unregistered successfully")
  case .failure(let error):
    print("Push-to-start unregistration failed: \(error.message), isRetriable: \(error.isRetriable)")
  }
}

// Async/await
do {
  try await AppDelegate.braze?.liveActivities.unregisterPushToStart()
  print("Push-to-start unregistered successfully")
} catch let error as Braze.PushUnregistrationError {
  print("Push-to-start unregistration failed: \(error.message), isRetriable: \(error.isRetriable)")
}

O exemplo a seguir mostra como cancelar o registro de tipos de atividade específicos. Use-o quando apenas Live Activities selecionadas devem parar de ser iniciadas remotamente.

1
2
3
4
5
6
7
8
9
// Unregister specific activity types
AppDelegate.braze?.liveActivities.unregisterPushToStart(types: ["ActivityType1", "ActivityType2"]) { result in
  switch result {
  case .success:
    print("Push-to-start unregistered successfully")
  case .failure(let error):
    print("Push-to-start unregistration failed: \(error.message), isRetriable: \(error.isRetriable)")
  }
}

Coleta de IDFV

Em versões anteriores do SDK da Braze para iOS, o campo IDFV (Identifier for Vendor) era coletado automaticamente como o ID do dispositivo do usuário. A partir do Swift SDK v5.7.0, o campo IDFV passou a poder ser desativado opcionalmente, e a Braze passaria a definir um UUID aleatório como o ID do dispositivo. A partir do Swift SDK v7.0.0, o campo IDFV não será mais coletado por padrão, e um UUID será definido como o ID do dispositivo.

O recurso useUUIDAsDeviceId configura o Swift SDK para definir o ID do dispositivo como um UUID. Tradicionalmente, o SDK para iOS atribuía ao ID do dispositivo o valor IDFV gerado pela Apple. Com esse recurso ativado por padrão no seu app iOS, todos os novos usuários criados pelo SDK receberão um ID de dispositivo igual a um UUID.

Se você ainda quiser coletar o IDFV separadamente, pode usar set(identifierforvendor:).

Considerações

Versão do SDK

No Swift SDK v7.0.0+, quando useUUIDAsDeviceId está ativado (padrão), todos os novos usuários criados receberão um ID de dispositivo aleatório. Todos os usuários existentes manterão o mesmo valor de ID de dispositivo, que pode ter sido o IDFV.

Quando esse recurso não está ativado, os dispositivos continuarão recebendo o IDFV na criação.

Impactos posteriores

Parceiros de tecnologia: quando esse recurso está ativado, qualquer parceiro de tecnologia que derive o valor do IDFV a partir do ID de dispositivo da Braze não terá mais acesso a esse dado. Se o valor do IDFV derivado do dispositivo for necessário para sua integração com parceiros, recomendamos definir esse recurso como false.

Currents: useUUIDAsDeviceId definido como true significa que o ID de dispositivo enviado no Currents não será mais igual ao valor do IDFV.

Perguntas frequentes

Essa mudança afetará meus usuários existentes na Braze?

Não. Quando ativado, esse recurso não sobrescreverá nenhum dado de usuário na Braze. Novos IDs de dispositivo UUID serão criados apenas para novos dispositivos ou quando wipedata() for chamado.

Posso desativar esse recurso depois de ativá-lo?

Sim, esse recurso pode ser ativado e desativado conforme sua necessidade. IDs de dispositivo armazenados anteriormente nunca serão sobrescritos.

Ainda posso capturar o valor do IDFV pela Braze de outra forma?

Sim, você ainda pode coletar opcionalmente o IDFV pelo Swift SDK (a coleta é desativada por padrão).

Pré-requisitos

Antes de poder usar esse recurso, você precisará integrar o React Native Braze SDK.

Desativar o rastreamento de dados

Para desativar a coleta de dados, use o método disableSDK. Após chamar esse método, o SDK da Braze para de enviar dados para os servidores da Braze.

1
Braze.disableSDK();

Retomar o rastreamento de dados

Para retomar a coleta de dados após desativá-la, use o método enableSDK.

1
Braze.enableSDK();

Limpando dados

Para excluir todos os dados do SDK da Braze armazenados localmente no dispositivo, use o método wipeData. Após chamar esse método, o SDK é desativado e precisa ser reativado com enableSDK.

1
Braze.wipeData();

Envio imediato de dados

Para solicitar o envio imediato de quaisquer dados pendentes para os servidores da Braze, use requestImmediateDataFlush.

1
Braze.requestImmediateDataFlush();

Configurar o rastreamento de anúncios como ativado

Para informar a Braze se o rastreamento de anúncios está ativado para este dispositivo, use o método setAdTrackingEnabled. O SDK não coleta esses dados automaticamente.

1
Braze.setAdTrackingEnabled(true, "GOOGLE_ADVERTISING_ID");

O segundo parâmetro é o Google Advertising ID e é usado apenas no Android.

Atualizar a lista de permissões da propriedade de rastreamento (somente iOS)

Para atualizar a lista de tipos de dados declarados para rastreamento, use updateTrackingPropertyAllowList. Essa função não tem efeito no Android.

1
2
3
4
5
6
7
8
Braze.updateTrackingPropertyAllowList({
  adding: [Braze.TrackingProperty.EMAIL, Braze.TrackingProperty.FIRST_NAME],
  removing: [],
  addingCustomEvents: ["my_custom_event"],
  removingCustomEvents: [],
  addingCustomAttributes: ["my_custom_attribute"],
  removingCustomAttributes: []
});

Para saber mais, consulte Manifesto de privacidade.

Logout e cancelamento de registro de push

Este recurso ainda não é compatível com o SDK do React Native.

Pré-requisitos

Antes de usar este recurso, você precisará integrar o SDK do Roku Braze.

Limpando dados armazenados anteriormente

O Roku SDK não inclui um método wipeData. Para produzir um estado limpo funcionalmente equivalente ao wipeData() em outros SDKs da Braze, limpe as quatro seções de registro da Braze e, em seguida, reinicialize o SDK.

O Roku SDK da Braze persiste dados nas seguintes seções de registro:

Seção Conteúdo
braze.section.device_id O UUID do dispositivo usado para identificar este dispositivo na Braze.
braze.section.user_id O ID de usuário externo, se um tiver sido definido.
braze.section.session O UUID da sessão ativa, horário de início e horário de término.
braze.section.config Configuração do SDK em cache e dados de Feature Flag.

Etapa 1: Limpar as seções de registro

Use roRegistry.Delete() para excluir cada seção da Braze e, em seguida, chame Flush() para persistir as alterações:

1
2
3
4
5
6
7
8
sub WipeBrazeData()
    registry = CreateObject("roRegistry")
    registry.Delete("braze.section.device_id")
    registry.Delete("braze.section.user_id")
    registry.Delete("braze.section.session")
    registry.Delete("braze.section.config")
    registry.Flush()
end sub

Etapa 2: Reinicializar o SDK da Braze

Quando você inicializar o SDK da Braze novamente, o SDK lida com os dados de registro ausentes de forma adequada:

  • A seção de ID do dispositivo está vazia, então o SDK gera um novo UUID e trata o dispositivo como anônimo.
  • A seção de ID do usuário está vazia, então o SDK assume o padrão de um usuário anônimo (uma string vazia "").
  • A seção de sessão está vazia, então o SDK inicia uma nova sessão.
  • A seção de configuração está vazia, então o SDK busca novamente a configuração no servidor.

Logout e cancelamento de registro de push

Este recurso ainda não é compatível com o Roku SDK.

New Stuff!