Administrar la recopilación de datos
Aprende a administrar la recopilación de datos para el SDK de Braze, de modo que puedas cumplir con cualquier normativa de privacidad de datos según sea necesario.
Desactivación del seguimiento de datos

Esta guía utiliza ejemplos de código del SDK Web de Braze 4.0.0+. Para actualizar a la última versión del SDK Web, consulta la Guía de actualización del SDK.
Para desactivar la actividad de seguimiento de datos en el SDK Web, utiliza el método disableSDK(). Esto sincronizará cualquier dato registrado antes de que se llamara a disableSDK(), y hará que todas las llamadas posteriores al SDK Web de Braze para esta página y las cargas de páginas futuras se ignoren.
Utiliza el tipo de etiqueta Disable Tracking o Resume Tracking para desactivar o reactivar el seguimiento web, respectivamente. Estas dos opciones llaman a disableSDK y enableSDK.
Prácticas recomendadas
Para ofrecer a los usuarios la opción de dejar de ser rastreados, te recomendamos crear una página sencilla con dos enlaces o botones: uno que llame a disableSDK() al hacer clic, y otro que llame a enableSDK() para permitir a los usuarios volver a aceptar el seguimiento. También puedes utilizar estos controles para iniciar o detener el seguimiento a través de otros subprocesadores de datos.

No es necesario inicializar el SDK de Braze para llamar a disableSDK(), lo que te permite desactivar el seguimiento para usuarios completamente anónimos. Por el contrario, enableSDK() no inicializa el SDK de Braze, por lo que también debes llamar a initialize() después para habilitar el seguimiento.
Reanudación del seguimiento de datos
Para reanudar la recopilación de datos, puedes utilizar el método enableSDK().
Cerrar sesión y cancelar el registro de push
El SDK de Braze proporciona métodos para dejar de segmentar un dispositivo cuando un usuario cancela su registro de notificaciones push o cierra sesión. Estos métodos eliminan los datos de registro push del usuario actual en el servidor de Braze y en el SDK, de modo que Braze ya no envía futuras Campaigns de notificaciones push a ese usuario.
Cerrar sesión
Cuando un usuario cierra sesión en una aplicación, llama al método logout del SDK para eliminar el registro push del dispositivo del usuario actual y realizar automáticamente acciones de limpieza en el SDK. El método logout realiza lo siguiente:
- Cancela el registro del token de notificaciones push del dispositivo del usuario actual en el servidor de Braze.
- Si la llamada de cancelación de registro tiene éxito, el SDK borra los datos del SDK almacenados localmente y desactiva el SDK.
- En caso de error, invoca el
errorCallbackpara permitir que el integrador tome medidas.
El siguiente ejemplo muestra el manejo de logout basado en devoluciones de llamada. Úsalo cuando necesites manejo inmediato de éxito y errores, y reemplaza el registro con el flujo de tu aplicación.
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);
Reactivar el seguimiento y push después de logout
Después de un logout exitoso, llama a enableSDK(), y luego vuelve a registrarte para notificaciones con tu sistema operativo (SO) o proveedor de push siguiendo la configuración de notificaciones push web.
Evitar llamadas de cancelación de registro inmediatas
Evita llamar a logout o unregisterPush directamente después de registrarte para notificaciones push con el SO o el proveedor de push. Debido al procesamiento asíncrono del servidor, esto puede, en raras ocasiones, volver a añadir el token de notificaciones push al usuario de Braze.
Cancelar el registro de push
Para dejar de enviar push a un dispositivo sin limpieza automatizada adicional, usa el método unregisterPush. Esto elimina el token de notificaciones push del dispositivo del usuario actual en el servidor de Braze y borra el token almacenado localmente.
El siguiente ejemplo muestra el manejo de unregisterPush basado en devoluciones de llamada. Úsalo cuando necesites manejo inmediato de éxito y errores, y reemplaza el registro con el flujo de tu aplicación.
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);
Volver a registrar push después de unregisterPush
Después de llamar a unregisterPush, vuelve a registrarte para notificaciones con tu SO o proveedor de push siguiendo la configuración de notificaciones push web antes de enviar notificaciones push de Braze de nuevo.

En navegadores compatibles, cuando existe una suscripción push activa, unregisterPush también cancela el registro del prestador de servicios gestionado por Braze después de cancelar la suscripción de la API Push del navegador. Si estableces manageServiceWorkerExternally en true, el SDK no cancela el registro del prestador de servicios por ti.
Evitar llamadas de cancelación de registro inmediatas
Evita llamar a logout o unregisterPush directamente después de registrarte para notificaciones push con el SO o el proveedor de push. Debido al procesamiento asíncrono del servidor, esto puede, en raras ocasiones, volver a añadir el token de notificaciones push al usuario de Braze.
Cuestionario de privacidad de Google Play
A partir de abril de 2022, los desarrolladores de Android deberán cumplimentar el formulario de seguridad de datos de Google Play para revelar las prácticas de privacidad y seguridad. Esta guía proporciona instrucciones sobre cómo rellenar este nuevo formulario con información sobre cómo gestiona Braze los datos de tu aplicación.
Como desarrollador de la aplicación, tú controlas qué datos envías a Braze. Los datos recibidos por Braze se procesan de acuerdo con tus instrucciones. Esto es lo que Google clasifica como proveedor de servicios.

Este artículo proporciona información sobre los datos que procesa el SDK de Braze en relación con el cuestionario de la sección de seguridad de Google. Este artículo no proporciona asesoramiento jurídico, por lo que te recomendamos que consultes con tu equipo jurídico antes de enviar cualquier información a Google.
Preguntas
| Preguntas | Respuestas para el SDK de Braze |
|---|---|
| ¿Recoge o comparte tu aplicación alguno de los tipos de datos de usuario requeridos? | Sí, el SDK para Android de Braze recopila datos según lo configure el desarrollador de la aplicación. |
| ¿Todos los datos de usuario recogidos por tu aplicación están encriptados en tránsito? | Sí. |
| ¿Proporcionas alguna forma de que los usuarios puedan solicitar que se eliminen sus datos? | Sí. |
Para obtener más información sobre la gestión de las solicitudes de los usuarios sobre sus datos y su eliminación, consulta la Información sobre la retención de datos de Braze.
Recopilación de datos
Los datos recopilados por Braze vienen determinados por tu integración específica y los datos de usuario que elijas recopilar. Para saber más sobre qué datos recopila Braze de manera predeterminada y cómo desactivar determinados atributos, consulta nuestras opciones de recopilación de datos del SDK.
| Categoría | Tipo de datos | Uso de Braze |
|---|---|---|
| Ubicación | Ubicación aproximada | No se recopila de manera predeterminada. |
| Ubicación precisa | ||
| Información personal | Nombre | |
| Dirección de correo electrónico | ||
| ID de usuario | ||
| Dirección | ||
| Número de teléfono | ||
| Raza y etnia | ||
| Creencias políticas o religiosas | ||
| Orientación sexual | ||
| Otros datos | ||
| Información financiera | Información de pago del usuario | |
| Historial de compras | ||
| Puntuación crediticia | ||
| Otros datos financieros | ||
| Salud y forma física | Información de salud | No se recopila de manera predeterminada. |
| Información de acondicionamiento físico | ||
| Mensajes | Correos electrónicos | No se recopila de manera predeterminada. |
| SMS o MMS | ||
| Otros mensajes dentro de la aplicación | Si envías In-App Messages o notificaciones push a través de Braze, recopilamos información sobre cuándo los usuarios han abierto o leído estos mensajes. | |
| Fotos y videos | Fotos | No recopilado. |
| Videos | ||
| Archivos de audio | Grabaciones de voz o sonido | |
| Archivos de música | ||
| Otros archivos de audio | ||
| Archivos y documentos | Archivos y documentos | |
| Calendario | Eventos del calendario | |
| Contactos | Contactos | |
| Actividad de la aplicación | Interacciones de la aplicación | Braze recopila datos de actividad de la sesión de forma predeterminada. Todas las demás interacciones y actividades están determinadas por la integración personalizada de tu aplicación. |
| Historial de búsqueda en la aplicación | No recopilado. | |
| Aplicaciones instaladas | No recopilado. | |
| Otros contenidos generados por usuarios | No se recopila de manera predeterminada. | |
| Otras acciones | ||
| Navegación web | Historial de navegación web | No recopilado. |
| Información y rendimiento de la aplicación | Registros de errores | Braze recopila registros de errores que se producen en el SDK. Contienen el modelo de teléfono del usuario y el nivel de sistema operativo, junto con un ID de usuario específico de Braze. |
| Diagnóstico | No recopilado. | |
| Otros datos de rendimiento de la aplicación | No recopilado. | |
| ID del dispositivo u otros ID | ID del dispositivo u otros ID | Braze genera un ID de dispositivo para diferenciar los dispositivos de los usuarios y comprueba si los mensajes se envían al dispositivo correcto previsto. |
Para obtener más información sobre otros datos de dispositivo que Braze recopila y que pueden quedar fuera del ámbito de las directrices de seguridad de datos de Google Play, consulta nuestro resumen de almacenamiento de Android y nuestras opciones de recopilación de datos del SDK.
Desactivar el seguimiento de datos
Para desactivar la actividad de seguimiento de datos en el SDK de Android, utiliza el método disableSDK(). Esto hará que se cancelen todas las conexiones de red, lo que significa que el SDK de Braze ya no enviará ningún dato a los servidores de Braze.
Borrar datos almacenados previamente
Puedes utilizar el método wipeData() para borrar completamente todos los datos del lado del cliente almacenados en el dispositivo.
Reanudación del seguimiento de datos
Para reanudar la recopilación de datos, puedes utilizar el método enableSDK(). Ten en cuenta que esto no restaurará ningún dato previamente borrado.
Cierre de sesión y cancelación del registro push
El SDK de Braze proporciona métodos para dejar de segmentar un dispositivo cuando un usuario cancela su registro de notificaciones push o cierra sesión. Estos métodos eliminan los datos de registro push del usuario actual en el servidor de Braze y en el SDK, de modo que Braze ya no envía futuras Campaigns de notificaciones push a ese usuario.
Cierre de sesión
Cuando un usuario cierra sesión en una aplicación, llama al método logout del SDK para eliminar el registro push del dispositivo del usuario actual y realizar automáticamente acciones de limpieza en el SDK. El método logout realiza lo siguiente:
- Cancela el registro del token push del dispositivo del usuario actual en el servidor de Braze.
- Si la llamada de cancelación de registro tiene éxito, el SDK borra los datos del SDK almacenados localmente y desactiva el SDK.
- En caso de fallo, genera un error y un indicador
isRetriablepara permitir al integrador tomar medidas.
El siguiente ejemplo de devolución de llamada muestra el manejo de éxito y error de logout. Úsalo para flujos de cierre de sesión basados en devoluciones de llamada, y reemplaza el registro con tu lógica de reintento o reautenticación.
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}")
}
}
El siguiente ejemplo de corrutina muestra la API suspendida de logout. Úsalo en flujos basados en corrutinas y personaliza las ramas de éxito y fallo para tu aplicación.
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}")
}
}
Reactivar el seguimiento y push después de logout
Después de un logout exitoso, reactiva el SDK con enableSDK(), y luego vuelve a registrarte para notificaciones con tu sistema operativo (SO) o proveedor de push siguiendo la configuración push de Android.
Evitar llamadas de cancelación de registro inmediatas
Evita llamar a logout o unregisterPush directamente después de registrarte para notificaciones push con el SO o el proveedor de push. Debido al procesamiento asíncrono del servidor, esto puede, en raras ocasiones, volver a añadir el token push al usuario de Braze.
Cancelar el registro push
Para dejar de enviar push a un dispositivo sin limpieza automatizada adicional, utiliza el método unregisterPush. Esto elimina el token push del dispositivo del usuario actual en el servidor de Braze y borra el token almacenado localmente.
El siguiente ejemplo de devolución de llamada muestra cómo manejar los resultados de unregisterPush. Úsalo cuando tu flujo esté basado en devoluciones de llamada, y reemplaza el registro con tu propia lógica de reintento.
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}"
)
}
}
El siguiente ejemplo de corrutina muestra la API suspendida de unregisterPush. Úsalo en flujos basados en corrutinas y personaliza las ramas de éxito y fallo para tu aplicación.
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}"
)
}
}
Volver a registrar push después de unregisterPush
Después de llamar a unregisterPush, vuelve a registrarte para notificaciones con tu SO o proveedor de push siguiendo la configuración push de Android antes de enviar notificaciones push de Braze de nuevo.
Evitar llamadas de cancelación de registro inmediatas
Evita llamar a logout o unregisterPush directamente después de registrarte para notificaciones push con el SO o el proveedor de push. Debido al procesamiento asíncrono del servidor, esto puede, en raras ocasiones, volver a añadir el token push al usuario de Braze.
El manifiesto de privacidad de Apple
¿Qué son los datos de seguimiento?
Apple define los “datos de seguimiento” como los datos recopilados en tu aplicación sobre un usuario final o dispositivo que están vinculados a datos de terceros (como publicidad dirigida), o a un intermediario de datos. Para una definición completa con ejemplos, consulta Apple: Seguimiento.
De manera predeterminada, el SDK de Braze no recopila datos de seguimiento. Sin embargo, dependiendo de la configuración de tu SDK de Braze, es posible que tengas que incluir datos específicos de Braze en el manifiesto de privacidad de tu aplicación.
¿Qué es un manifiesto de privacidad?
Un manifiesto de privacidad es un archivo de tu proyecto Xcode que describe el motivo por el que tu aplicación y los SDK de terceros recopilan datos, junto con sus métodos de recopilación de datos. Cada uno de tus SDK de terceros que hace un seguimiento de datos requiere su propio manifiesto de privacidad. Cuando creas el informe de privacidad de tu aplicación, estos archivos de manifiesto de privacidad se agregan automáticamente en un único informe.
Dominios de datos de seguimiento de la API
A partir de iOS 17.2, Apple bloqueará todos los endpoints de seguimiento declarados en tu aplicación hasta que el usuario final acepte un aviso de Transparencia de seguimiento de anuncios (ATT). Braze proporciona endpoints de seguimiento para dirigir tus datos de seguimiento, a la vez que te permite dirigir datos propios que no son de seguimiento al endpoint original.
Declarar datos de seguimiento de Braze

Requisitos previos
Se requiere la siguiente versión del SDK de Braze para implementar esta característica:
Paso 1: Revisa tus políticas actuales
Revisa las políticas actuales de recopilación de datos del SDK de Braze con tu equipo legal para determinar si tu aplicación recopila datos de seguimiento según la definición de Apple. Si no estás recopilando ningún dato de seguimiento, no necesitas personalizar tu manifiesto de privacidad para el SDK de Braze en este momento. Para más información sobre las políticas de recopilación de datos del SDK de Braze, consulta Recopilación de datos del SDK.

Si alguno de tus SDK que no son de Braze recopila datos de seguimiento, deberás revisar esas políticas por separado.
Paso 2: Crea un manifiesto de privacidad
Primero, comprueba si ya tienes un manifiesto de privacidad buscando un archivo PrivacyInfo.xcprivacy en tu proyecto de Xcode. Si ya tienes este archivo, puedes continuar con el siguiente paso. De lo contrario, consulta Apple: Crear un manifiesto de privacidad.
Paso 3: Añade tu endpoint al manifiesto de privacidad
En tu proyecto de Xcode, abre el archivo PrivacyInfo.xcprivacy de tu aplicación, luego haz clic derecho en la tabla y marca Raw Keys and Values.

En App Privacy Configuration, elige NSPrivacyTracking y establece su valor en YES.
![]()
En App Privacy Configuration, elige NSPrivacyTrackingDomains. En el arreglo de dominios, añade un nuevo elemento y establece su valor en el endpoint que añadiste previamente a tu AppDelegate con el prefijo sdk-tracking.
![]()
Paso 4: Declara tus datos de seguimiento
A continuación, abre AppDelegate.swift y lista cada propiedad de seguimiento que desees declarar creando una lista de seguimiento estática o dinámica. Ten en cuenta que Apple bloqueará estas propiedades hasta que el usuario final acepte el aviso de ATT, así que solo lista las propiedades que tú y tu equipo legal consideren como datos de seguimiento. Por ejemplo:
En el siguiente ejemplo, dateOfBirth, customEvent y customAttribute se declaran como datos de seguimiento dentro de una 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
}
}
En el siguiente ejemplo, la lista de seguimiento se actualiza automáticamente después de que el usuario final acepte el aviso de App Tracking Transparency (ATT). Solicitar autorización al activar la aplicación es un evento por escena, por lo que este código pertenece al método sceneDidBecomeActive(_:) del archivo SceneDelegate.swift en lugar del método applicationDidBecomeActive(_:) de AppDelegate.swift (requerido para aplicaciones que han adoptado el ciclo de vida de UIScene). Tu instancia de Braze sigue siendo accesible desde SceneDelegate a través de la propiedad estática AppDelegate.braze configurada en el paso 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]
)
}
}
Paso 5: Evita bucles de reintento infinitos
Para evitar que el SDK entre en un bucle de reintento infinito, usa el método set(adTrackingEnabled: enableAdTracking) para gestionar los permisos de ATT. La propiedad adTrackingEnabled en tu método de SceneDelegate.swift debe gestionarse de forma similar a lo siguiente:
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)
}
}
Desactivar el seguimiento de datos
Para desactivar la actividad de seguimiento de datos en el SDK de Swift, establece la propiedad enabled en false en tu instancia de Braze. Cuando enabled se establece en false, el SDK de Braze ignora cualquier llamada a la API pública. El SDK también cancela todas las acciones en curso, como solicitudes de red, procesamiento de eventos, etc.
Borrar datos almacenados previamente
Puedes usar el método wipeData() para borrar completamente los datos del SDK almacenados localmente en el dispositivo de un usuario.
Para las versiones 7.0.0 y posteriores de Braze Swift, el SDK y el método wipeData() generan aleatoriamente un UUID para el ID de dispositivo. Sin embargo, si tu useUUIDAsDeviceId está configurado como false o estás usando la versión 5.7.0 o anterior del SDK de Swift, también necesitarás hacer una solicitud post a /users/delete ya que tu identificador de proveedores (IDFV) se usará automáticamente como el ID de dispositivo de ese usuario.
Si usas la integración push manual y tu aplicación llama a wipeData() y posteriormente vuelve a habilitar el SDK en la misma ejecución de la aplicación, llama a registerForRemoteNotifications() de nuevo para que Braze pueda recibir un token de dispositivo actualizado. Para más información, consulta configurar notificaciones push.
Reanudación del seguimiento de datos
Para reanudar la recopilación de datos, establece enabled en true. Ten en cuenta que esto no restaurará ningún dato previamente borrado.
Cierre de sesión y cancelación del registro push
El SDK de Braze proporciona métodos para dejar de dirigirse a un dispositivo cuando un usuario cancela su registro de notificaciones push o cierra sesión. Estos métodos eliminan los datos de registro push del usuario actual en el servidor de Braze y en el SDK, de modo que Braze ya no envía futuras Campaigns de notificaciones push a ese usuario.
Cierre de sesión
Cuando un usuario cierra sesión en una aplicación, llama al método logout del SDK para eliminar el registro push del dispositivo del usuario actual y realizar automáticamente acciones de limpieza en el SDK. El método logout realiza lo siguiente:
- Cancela el registro del token push del dispositivo, y cualquier token push-to-start de Live Activities, del usuario actual en el servidor de Braze.
- Si la llamada de cancelación de registro tiene éxito, el SDK borra los datos del SDK almacenados localmente y desactiva el SDK.
- En caso de fallo, genera un error y una bandera
isRetriablepara permitir al integrador tomar acción.
El siguiente ejemplo con controlador de finalización muestra el manejo de éxito y fallo de logout. Úsalo para flujos basados en devoluciones de llamada y reemplaza el registro con la lógica de reintento o reautenticación de tu aplicación.
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)")
}
}
El siguiente ejemplo asíncrono muestra la API suspendible logout. Úsalo para flujos de trabajo asíncronos y personaliza las ramas de éxito y fallo para tu aplicación.
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 ejemplo en Objective-C muestra el manejo de logout basado en finalización. Úsalo en integraciones de Objective-C y reemplaza el registro con el flujo de tu aplicación.
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);
}
}];
Reactivar el seguimiento y push después de logout
Después de un logout exitoso, establece enabled de nuevo en true, luego vuelve a registrarte para notificaciones con tu sistema operativo (SO) o proveedor push siguiendo la configuración push de Swift.
Evitar llamadas de cancelación de registro inmediatas
Evita llamar a logout o unregisterPush directamente después de registrarte para notificaciones push con el SO o proveedor push. Debido al procesamiento asíncrono del servidor, esto puede, en raras ocasiones, volver a agregar el token push al usuario de Braze.
Cancelar el registro push
Para dejar de enviar push a un dispositivo sin limpieza automatizada adicional, usa el método unregisterPush. Esto elimina el token push del dispositivo del usuario actual en el servidor de Braze y borra el token almacenado localmente.
El siguiente ejemplo con controlador de finalización muestra el manejo de éxito y fallo de unregisterPush. Úsalo para flujos basados en devoluciones de llamada y reemplaza el registro con tu propia lógica de reintento.
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)")
}
}
El siguiente ejemplo asíncrono muestra la API suspendible unregisterPush. Úsalo para flujos de trabajo asíncronos y personaliza las ramas de éxito y fallo para tu aplicación.
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 ejemplo en Objective-C muestra el manejo de unregisterPush basado en finalización. Úsalo en integraciones de Objective-C y reemplaza el registro con el flujo de tu aplicación.
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);
}
}];
Volver a registrar push después de unregisterPush
Después de llamar a unregisterPush, vuelve a registrarte para notificaciones con tu SO o proveedor push siguiendo la configuración push de Swift antes de enviar notificaciones push de Braze nuevamente.
Evitar llamadas de cancelación de registro inmediatas
Evita llamar a logout o unregisterPush directamente después de registrarte para notificaciones push con el SO o proveedor push. Debido al procesamiento asíncrono del servidor, esto puede, en raras ocasiones, volver a agregar el token push al usuario de Braze.
Cancelar el registro de tokens push-to-start para Live Activities
Las Live Activities pueden iniciarse de forma remota usando tokens push-to-start. Para evitar que Braze inicie remotamente Live Activities en un dispositivo, llama al método unregisterPushToStart para cancelar el registro de todos los tipos registrados actualmente (predeterminado) o de una lista específica de tipos de Activity.
Ten en cuenta que las Live Activities que se están ejecutando actualmente siguen recibiendo actualizaciones y que este método solo elimina la capacidad de iniciar nuevas actividades de forma remota. Para más información sobre Live Activities, consulta Live Activities.

Evita llamar a logout o unregisterPushToStart directamente después de llamar a registerPushToStart para una Live Activity. Debido a la naturaleza asíncrona del procesamiento del servidor, en raras ocasiones, esto puede provocar que el token push-to-start se vuelva a agregar al usuario de Braze.
El siguiente ejemplo muestra cómo cancelar el registro de todos los tipos de actividad push-to-start. Úsalo cuando un usuario que ha cerrado sesión ya no deba recibir nuevas Live Activities iniciadas de forma remota.
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)")
}
El siguiente ejemplo muestra cómo cancelar el registro de tipos de actividad específicos. Úsalo cuando solo determinadas Live Activities deban dejar de iniciarse de forma remota.
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)")
}
}

unregisterPushToStart no tiene una API de Objective-C, ya que las Live Activities dependen de tipos exclusivos de Swift.
Recopilación de IDFV
En versiones anteriores del SDK de Braze para iOS, el campo IDFV (Identifier for Vendor) se recopilaba automáticamente como el ID de dispositivo del usuario. A partir del SDK Swift v5.7.0, el campo IDFV podía deshabilitarse opcionalmente y, en su lugar, Braze establecía un UUID aleatorio como ID de dispositivo. A partir del SDK Swift v7.0.0, el campo IDFV no se recopila de forma predeterminada y, en su lugar, se establece un UUID como ID de dispositivo.
La característica useUUIDAsDeviceId configura el SDK Swift para establecer el ID de dispositivo como un UUID. Tradicionalmente, el SDK de iOS asignaba el ID de dispositivo igual al valor IDFV generado por Apple. Con esta característica habilitada de forma predeterminada en tu aplicación iOS, a todos los nuevos usuarios creados a través del SDK se les asignará un ID de dispositivo igual a un UUID.
Si aún deseas recopilar el IDFV por separado, puedes usar set(identifierforvendor:).

La lectura de braze.deviceId bloquea el hilo de llamada hasta que el SDK haya completado sus operaciones posteriores a la inicialización. Para contextos del hilo principal o sensibles a la latencia, usa las alternativas no bloqueantes en su lugar.
1
2
3
4
5
6
7
// Completion handler — always delivers on the main thread.
AppDelegate.braze?.getDeviceId { deviceId in
print("Device ID:", deviceId)
}
// Async/await (iOS 13.0+, tvOS 13.0+, watchOS 6.0+, macOS 10.15+)
let deviceId = await AppDelegate.braze?.getDeviceId()
1
2
3
4
// Completion handler — always delivers on the main thread.
[AppDelegate.braze getDeviceIdWithCompletion:^(NSString *deviceId) {
NSLog(@"Device ID: %@", deviceId);
}];
Consideraciones
Versión del SDK
En el SDK Swift v7.0.0+, cuando useUUIDAsDeviceId está habilitado (predeterminado), a todos los nuevos usuarios creados se les asignará un ID de dispositivo aleatorio. Todos los usuarios existentes previamente mantendrán su mismo valor de ID de dispositivo, que puede haber sido IDFV.
Cuando esta característica no está habilitada, los dispositivos seguirán recibiendo IDFV asignado en el momento de la creación.
Impacto posterior
Partners tecnológicos: cuando esta característica está habilitada, cualquier partner tecnológico que derive el valor IDFV del ID de dispositivo de Braze ya no tendrá acceso a estos datos. Si el valor IDFV derivado del dispositivo es necesario para tu integración del partner, te recomendamos que establezcas esta característica en false.
Currents: useUUIDAsDeviceId establecido en true significa que el ID de dispositivo enviado en Currents ya no será igual al valor IDFV.
Preguntas frecuentes
¿Este cambio afectará a mis usuarios existentes en Braze?
No. Cuando está habilitada, esta característica no sobrescribirá ningún dato de usuario en Braze. Los nuevos ID de dispositivo UUID solo se crearán para nuevos dispositivos o cuando se llame a wipedata().
¿Puedo desactivar esta característica después de activarla?
Sí, esta característica se puede activar y desactivar a tu discreción. Los ID de dispositivo almacenados previamente nunca se sobrescribirán.
¿Puedo seguir capturando el valor IDFV a través de Braze en otro lugar?
Sí, aún puedes recopilar opcionalmente el IDFV a través del SDK Swift (la recopilación está deshabilitada de forma predeterminada).
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK Braze de React Native.
Desactivar el seguimiento de datos
Para desactivar la recopilación de datos, utiliza el método disableSDK. Después de llamar a este método, el SDK de Braze deja de enviar datos a los servidores de Braze.
1
Braze.disableSDK();
Reanudar el seguimiento de datos
Para reanudar la recopilación de datos después de deshabilitarla, utiliza el método enableSDK.
1
Braze.enableSDK();
Borrar datos
Para eliminar todos los datos del SDK de Braze almacenados localmente en el dispositivo, utiliza el método wipeData. Después de llamar a este método, el SDK se deshabilita y debe volver a habilitarse con enableSDK.
1
Braze.wipeData();
Vaciado de datos
Para solicitar un vaciado inmediato de cualquier dato pendiente a los servidores de Braze, utiliza requestImmediateDataFlush.
1
Braze.requestImmediateDataFlush();
Configurar el seguimiento de anuncios habilitado
Para informar a Braze si el seguimiento de anuncios está habilitado para este dispositivo, utiliza el método setAdTrackingEnabled. El SDK no recopila estos datos automáticamente.
1
Braze.setAdTrackingEnabled(true, "GOOGLE_ADVERTISING_ID");
El segundo parámetro es el ID de publicidad de Google y solo se utiliza en Android.
Actualizar la lista de permitidos de la propiedad de seguimiento (solo iOS)
Para actualizar la lista de tipos de datos declarados para seguimiento, utiliza updateTrackingPropertyAllowList. Esto no tiene efecto en 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 más información, consulta Manifiesto de privacidad.
Cierre de sesión y cancelación del registro push
Esta característica aún no es compatible con el SDK de React Native.
Requisitos previos
Antes de poder utilizar esta característica, tendrás que integrar el SDK de Roku Braze.
Borrar datos almacenados previamente
El SDK de Roku no incluye un método wipeData. Para producir un estado limpio funcionalmente equivalente a wipeData() en otros SDK de Braze, borra las cuatro secciones del registro de Braze y luego reinicializa el SDK.
El SDK de Roku de Braze persiste datos en las siguientes secciones del registro:
| Sección | Contenido |
|---|---|
braze.section.device_id |
El UUID del dispositivo utilizado para identificar este dispositivo en Braze. |
braze.section.user_id |
El ID de usuario externo, si se ha establecido uno. |
braze.section.session |
El UUID de la sesión activa, la hora de inicio y la hora de finalización. |
braze.section.config |
Configuración del SDK en caché y datos de conmutadores de características. |
Paso 1: Borrar las secciones del registro
Usa roRegistry.Delete() para eliminar cada sección de Braze y luego llama a Flush() para persistir los cambios:
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
Paso 2: Reinicializar el SDK de Braze
Cuando inicializas el SDK de Braze de nuevo, el SDK gestiona correctamente los datos faltantes del registro:
- La sección del ID de dispositivo está vacía, por lo que el SDK genera un nuevo UUID y trata el dispositivo como anónimo.
- La sección del ID de usuario está vacía, por lo que el SDK se establece de forma predeterminada como un usuario anónimo (una cadena vacía
""). - La sección de sesión está vacía, por lo que el SDK inicia una nueva sesión.
- La sección de configuración está vacía, por lo que el SDK vuelve a obtener la configuración del servidor.

El SDK de Roku no genera ninguna solicitud de eliminación del lado del servidor cuando borras el registro. Si también necesitas eliminar al usuario de Braze, envía una solicitud a /users/delete usando el external_id o braze_id del usuario.
Cierre de sesión y cancelación del registro de push
Esta característica aún no es compatible con el SDK de Roku.