Skip to content

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

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.

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 errorCallback para 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.

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.

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 isRetriable para 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.

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.

Un proyecto de Xcode con el menú contextual abierto y "Raw Keys and Values" resaltado.

En App Privacy Configuration, elige NSPrivacyTracking y establece su valor en YES.

El archivo "PrivacyInfo.xcprivacy" abierto con "NSPrivacyTracking" establecido 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.

El archivo "PrivacyInfo.xcprivacy" abierto con un endpoint de seguimiento de Braze listado en "NSPrivacyTrackingDomains".

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 isRetriable para 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.

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)")
  }
}

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:).

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.

Cierre de sesión y cancelación del registro de push

Esta característica aún no es compatible con el SDK de Roku.

New Stuff!