Crear y actualizar usuarios
Utiliza este endpoint para registrar eventos personalizados y compras, y actualizar los atributos del perfil de usuario.

Cada atributo personalizado enviado en una solicitud a /users/track consume un punto de datos. Para más información, consulta Puntos de datos.
Braze procesa los datos pasados a través de la API tal cual, y solo debes pasar deltas (datos que han cambiado) para minimizar el registro innecesario de puntos de datos.
¿Necesitas actualizar usuarios de forma masiva?
Utiliza el endpoint /users/track/bulk para enviar lotes más grandes y reducir el volumen de solicitudes.
Requisitos previos
Para utilizar este endpoint, necesitarás una clave de API con el permiso users.track.
Es posible que los clientes que utilicen la API para llamadas de servidor a servidor tengan que incluir en la lista de permitidos rest.iad-01.braze.com si están detrás de un cortafuegos.
Límite de velocidad
Los límites de velocidad de este endpoint varían en función de tu contrato. Para los clientes con puntos de datos en su modelo de precios, Braze aplica un límite de ráfaga de 3000 solicitudes cada tres segundos. Para el resto de clientes, los límites se configuran de acuerdo con los términos de tu contrato. Puedes consultar los límites actuales de tu cuenta en el panel, en Configuración > API e identificadores > Panel de uso de la API.
Cada solicitud /users/track puede contener hasta 75 objetos en total combinados entre attributes, events y purchases. Cada objeto puede actualizar un usuario. Un único perfil de usuario puede ser actualizado por varios objetos.
Para los clientes que han adquirido Monthly Active Users CY 24-25, Universal MAU, Web MAU o Mobile MAU, se aplican límites de velocidad adicionales. Para más información, consulta Límites de Monthly Active Users CY 24-25.
Límites de velocidad heredados
Para los clientes con límites de velocidad heredados, cada solicitud /users/track puede contener hasta 75 objetos de atributo, 75 objetos de evento y 75 objetos de compra. Cada objeto puede actualizar un usuario, para un máximo combinado de hasta 225 objetos por solicitud. Un único perfil de usuario puede ser actualizado por varios objetos.
Para más información, consulta Límites de velocidad de la API. Ponte en contacto con tu administrador de éxito de cliente para solicitar un aumento.
Cuerpo de la solicitud
Content-Type: application/json
Authorization: Bearer YOUR_REST_API_KEY
{
"attributes": (optional, array of attributes object),
"events": (optional, array of event object),
"purchases": (optional, array of purchase object),
"group_id": (optional, string)
}
Parámetros de la solicitud

Para cada componente de la solicitud que aparece en la tabla siguiente, debes incluir uno de los siguientes: external_id, user_alias, braze_id, email o phone.

Braze asume que los tokens de notificaciones push importados son tokens de notificaciones push en primer plano válidos para tu aplicación y entorno.
Cuando importas tokens de iOS, Braze no almacena una puerta de enlace del servicio de notificaciones push de Apple (APN) (development o production) para ellos. Braze envía a estos tokens a través de la puerta de enlace configurada de tu aplicación. Si un token se generó para el otro entorno, APN lo rechaza con BadDeviceToken y el envío rebota.
Braze almacena una puerta de enlace para el token solo si el SDK registra posteriormente el mismo token e informa de una puerta de enlace.
| Parámetro | Obligatorio | Tipo de datos | Descripción |
|---|---|---|---|
attributes |
Opcional | Matriz de objetos de atributos | Ver objeto de atributos del usuario |
events |
Opcional | Matriz de objetos de eventos | Ver objeto de eventos |
purchases |
Opcional | Matriz de objetos de compra | Ver objeto de compras |
group_id |
Opcional | Cadena | (Beta) Un ID que tú eliges para agrupar esta solicitud con otras relacionadas, de modo que puedas verificar su estado de procesamiento. Para más información, consulta Estado de procesamiento de solicitudes de seguimiento. |
Resolución de identificadores
Cada objeto de solicitud debe incluir al menos un identificador. La siguiente tabla describe cómo Braze determina qué identificador utilizar para la búsqueda del perfil de usuario.
| Tipo de identificador | Identificadores | Comportamiento |
|---|---|---|
| Primario | external_id, user_alias, braze_id |
Se utiliza para la búsqueda del perfil de usuario. Solo se permite un identificador primario por objeto de solicitud; incluir más de uno provoca que ese objeto sea rechazado. |
| Secundario | email, phone |
Se utiliza para la búsqueda del perfil de usuario solo cuando no hay un identificador primario presente. Si se incluyen tanto email como phone sin un identificador primario, email tiene prioridad. |
Cuando hay un identificador primario presente, cualquier valor de email o phone en el mismo objeto de solicitud se trata como atributo del perfil, no como identificador para la búsqueda de usuario. Por ejemplo, si una solicitud incluye tanto un external_id como un email:
- Braze busca el perfil de usuario por
external_id. - El valor de
emailse establece (o actualiza) como atributo en el perfil resuelto.

Incluir un identificador primario que no coincida con ningún perfil existente puede crear un perfil duplicado, incluso cuando el email o phone en la misma solicitud coincidan con un perfil existente. Para más información, consulta ¿Cómo evito crear perfiles de usuario duplicados?.
Ejemplos de solicitudes
Actualizar un perfil de usuario por dirección de correo electrónico
Puedes actualizar el perfil de un usuario por dirección de correo electrónico utilizando el endpoint /users/track.
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
"attributes": [
{
"email": "[email protected]",
"string_attribute": "fruit",
"boolean_attribute_1": true,
"integer_attribute": 26,
"array_attribute": [
"banana",
"apple"
]
}
],
"events": [
{
"email": "[email protected]",
"app_id": "your_app_identifier",
"name": "rented_movie",
"time": "2022-12-06T19:20:45+01:00",
"properties": {
"release": {
"studio": "FilmStudio",
"year": "2022"
},
"cast": [
{
"name": "Actor1"
},
{
"name": "Actor2"
}
]
}
},
{
"user_alias": {
"alias_name": "device123",
"alias_label": "my_device_identifier"
},
"app_id": "your_app_identifier",
"name": "rented_movie",
"time": "2013-07-16T19:20:50+01:00"
}
],
"purchases": [
{
"email": "[email protected]",
"app_id": "your_app_identifier",
"product_id": "product_name",
"currency": "USD",
"price": 12.12,
"quantity": 6,
"time": "2017-05-12T18:47:12Z",
"properties": {
"color": "red",
"monogram": "ABC",
"checkout_duration": 180,
"size": "Large",
"brand": "Backpack Locker"
}
}
]
}'
Actualizar un perfil de usuario por número de teléfono
Puedes actualizar un perfil de usuario por número de teléfono utilizando el endpoint /users/track. Este endpoint solo funciona si incluyes un número de teléfono válido.

Si incluyes una solicitud con tanto email como phone, Braze utiliza el correo electrónico como identificador.
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
"attributes": [
{
"phone": "+15043277269",
"string_attribute": "fruit",
"boolean_attribute_1": true,
"integer_attribute": 25,
"array_attribute": [
"banana",
"apple"
]
}
],
}'
Configurar grupos de suscripción
Este ejemplo muestra cómo crear un usuario y establecer su grupo de suscripción dentro del objeto de atributos de usuario.
La actualización del estado de suscripción con este endpoint actualiza al usuario especificado por su external_id (como Usuario1) y actualiza el estado de suscripción de cualquier usuario con el mismo correo electrónico que ese usuario (Usuario1).
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
"attributes": [
{
"external_id": "user_identifier",
"email": "[email protected]",
"email_subscribe": "subscribed",
"subscription_groups": [{
"subscription_group_id": "subscription_group_identifier_1",
"subscription_state": "unsubscribed"
},
{
"subscription_group_id": "subscription_group_identifier_2",
"subscription_state": "subscribed"
},
{
"subscription_group_id": "subscription_group_identifier_3",
"subscription_state": "subscribed",
"use_double_opt_in_logic": true
}
]
}
]
}'

Para los grupos de suscripción de SMS, cuando estableces el subscription_state de un grupo como subscribed, puedes incluir el parámetro opcional use_double_opt_in_logic establecido en true dentro de ese objeto de grupo de suscripción para que el usuario entre en el flujo de trabajo de doble adhesión voluntaria de SMS. Si se omite este parámetro o se establece en false cuando subscription_state es subscribed, el usuario se suscribe sin entrar en el flujo de trabajo de doble adhesión voluntaria. Este parámetro no se aplica cuando subscription_state se establece con otros valores, como unsubscribed.
Ejemplo de solicitud para crear un usuario solo con alias
Puedes utilizar el endpoint /users/track para crear un usuario de solo alias estableciendo la clave _update_existing_only con un valor de false en el cuerpo de la solicitud. Si omites este valor, Braze no crea el perfil de usuario de solo alias. Utilizar un usuario de solo alias garantiza que exista un perfil con ese alias. Esto es especialmente útil al crear una integración, ya que evita que Braze cree perfiles de usuario duplicados.
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
"attributes": [
{
"_update_existing_only": false,
"user_alias": {
"alias_name": "example_name",
"alias_label": "example_label"
},
"email": "[email protected]"
}
],
}'
Ejemplo de solicitud con un ID de grupo para seguimiento de estado
Este ejemplo actualiza el nivel de fidelización de un usuario e incluye un group_id para que puedas verificar cuándo Braze termina de procesar la solicitud. Para comprobar el estado, llama al endpoint /users/track/status con el mismo group_id. Para más información, consulta Estado de procesamiento de solicitudes de seguimiento.
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_REST_API_KEY' \
--data-raw '{
"group_id": "loyalty_backfill_2026-09-23",
"attributes": [
{
"external_id": "user_identifier",
"loyalty_tier": "gold"
}
]
}'
Respuestas
Al utilizar cualquiera de las solicitudes de API mencionadas, deberías recibir una de las tres respuestas generales siguientes: un mensaje correcto, un mensaje correcto con errores no fatales o un mensaje con errores fatales.
Mensaje correcto
Los mensajes exitosos reciben la siguiente respuesta:
{
"message": "success",
"attributes_processed": (optional, integer), if attributes are included in the request, this returns an integer of the number of external_ids with attributes that Braze queued for processing,
"events_processed": (optional, integer), if events are included in the request, this returns an integer of the number of events that Braze queued for processing,
"purchases_processed": (optional, integer), if purchases are included in the request, this returns an integer of the number of purchases that Braze queued for processing,
}
Mensaje correcto con errores no fatales
Si tu mensaje tiene éxito pero presenta errores no fatales, como un objeto de evento no válido en una larga lista de eventos, recibirás la siguiente respuesta:
{
"message": "success",
"errors": [
{
<minor error message>
}
]
}
En los mensajes de éxito, Braze sigue procesando todos los datos no afectados por un error en la matriz errors.
Mensaje con errores fatales
Si tu mensaje tiene un error fatal, recibirás la siguiente respuesta:
{
"message": <fatal error message>,
"errors": [
{
<fatal error message>
}
]
}
Códigos de respuesta de error fatal
Para conocer los códigos de estado y los mensajes de error asociados que devuelve Braze si tu solicitud encuentra un error fatal, consulta Errores fatales y respuestas.
Si recibes el error “provided external_id is blacklisted and disallowed”, es posible que tu solicitud haya incluido un “usuario ficticio”. Para más información, consulta Bloqueo de correo no deseado.
Errores específicos del endpoint
Los siguientes errores son específicos del endpoint /users/track y se devuelven en la matriz errors de la respuesta. Utilízalos para solucionar problemas con objetos individuales en una solicitud.
| Error | Descripción |
|---|---|
BAD_DEVICE_ID |
El device_id para una importación de token debe tener entre 8 y 255 bytes. |
BAD_EMAIL_SUBSCRIPTION_STATE |
email_subscribe debe ser subscribed, unsubscribed u opted_in. |
BAD_LOCATION_UPDATE |
current_location debe ser un objeto que contenga longitude y latitude. |
BAD_PUSH_SUBSCRIPTION_STATE |
push_subscribe debe ser subscribed, unsubscribed u opted_in. |
BAD_PUSH_TOKEN_APP_ID |
El app_id en una importación de token debe ser un identificador de aplicación válido del espacio de trabajo actual. |
BAD_PUSH_TOKEN_IMPORT |
Las importaciones de tokens deben incluir tokens y excluir external_id y braze_id. |
BAD_PUSH_TOKEN_STRING |
El valor de token en una importación de token debe ser una cadena. |
BAD_PUSH_TOKEN_VALUE |
push_tokens debe ser una matriz de objetos. |
BAD_SUBSCRIPTION_GROUP_ARRAY |
subscription_groups debe ser una matriz. |
BAD_SUBSCRIPTION_GROUP_HASH |
Cada elemento de la matriz subscription_groups debe ser un objeto JSON con las claves subscription_group_id y subscription_state. |
BAD_SUBSCRIPTION_GROUP_ID |
subscription_group_id debe ser un UUID de grupo de suscripción válido. |
BAD_SUBSCRIPTION_GROUP_STATE |
subscription_state para un grupo de suscripción debe ser subscribed o unsubscribed. |
BLACKLISTED_EXTERNAL_USER_ID |
El external_id proporcionado está en la lista de bloqueados y no está permitido. |
EMAIL_BAD_FORMAT |
El valor proporcionado para email no es una dirección de correo electrónico válida. |
EXTERNAL_USER_ID_TOO_LARGE |
El external_id supera la longitud máxima permitida de 987 bytes. |
INVALID_ATTRIBUTE_EMAIL_SUBSCRIPTION_INFO |
email_subscription_info no es un atributo válido. |
Estado de procesamiento de solicitudes de seguimiento

El estado de procesamiento de solicitudes está en beta. Si estás interesado en participar en la beta, ponte en contacto con tu director de cuentas de Braze.
Braze procesa las solicitudes /users/track de forma asíncrona. Una respuesta exitosa significa que Braze recibió tu solicitud y la puso en cola para su procesamiento, pero es posible que los datos aún no estén en el perfil de usuario. Para confirmar cuándo finaliza el procesamiento, añade un group_id a tus solicitudes y verifica el estado del grupo con el endpoint /users/track/status.
Utiliza el estado de procesamiento de solicitudes para lo siguiente:
- Confirmar que las actualizaciones de atributos o suscripciones están en un perfil antes de activar un Canvas o una Campaign que dependa de ellas
- Confirmar que un backfill o importación ha finalizado antes de lanzar mensajes a los usuarios afectados
- Mantener un registro de que las actualizaciones de alta prioridad, como los cambios de consentimiento, han terminado de procesarse
Cómo funciona
- Elige un
group_idpara un conjunto de solicitudes relacionadas. Por ejemplo, utiliza ungroup_idpara cada solicitud en un backfill, o ungroup_idúnico para una sola solicitud que quieras confirmar. - Incluye el
group_iden el nivel superior del cuerpo de cada solicitud/users/track. Braze cuenta cada solicitud aceptada hacia el grupo. - Llama al endpoint
/users/track/statuscon elgroup_id. Cuando elstatusdel grupo seacompleted, Braze ha terminado de procesar todas las solicitudes del grupo.
Si envías otra solicitud con el mismo group_id después de que el grupo esté completed, el estado del grupo vuelve a processing hasta que Braze termine de procesar la nueva solicitud.
Braze realiza el seguimiento del estado de cada grupo en su conjunto. Un grupo está completed cuando Braze termina de procesar todas las solicitudes del grupo, incluidas las solicitudes en las que Braze rechazó algunos objetos. Braze enumera los objetos rechazados en la matriz errors de cada respuesta de /users/track.
El seguimiento de estado solo está disponible para el endpoint /users/track. Braze no realiza seguimiento de estado para las solicitudes al endpoint /users/track/bulk ni al endpoint /users/track/sync.
Requisitos del ID de grupo
Un group_id debe tener entre 1 y 128 caracteres y solo puede contener letras, números, puntos (.), guiones bajos (_), tildes (~) y guiones (-).
Los ID de grupo están delimitados por espacio de trabajo. El mismo group_id en dos espacios de trabajo se refiere a dos grupos separados.
Utiliza un nuevo group_id para cada conjunto de solicitudes que desees rastrear. Reutilizar un group_id añade solicitudes al grupo existente y no extiende su periodo de retención.
Límites y retención
| Límite | Valor |
|---|---|
| Retención | 24 horas Braze retiene el estado del grupo durante 24 horas desde el momento de la primera solicitud con un group_id. Después del periodo de retención, el endpoint /users/track/status devuelve una matriz results vacía para ese group_id. |
| Solicitudes por grupo | 6 000 000 |
| Grupos activos por espacio de trabajo | 100 000. Un grupo está activo hasta que finaliza su periodo de retención. |
Límite de velocidad de /users/track/status |
1500 solicitudes por minuto por espacio de trabajo. Este límite es independiente del límite de velocidad de /users/track. |
Errores de seguimiento de estado
Braze no puede rastrear el estado de una solicitud en algunos casos, como cuando tu espacio de trabajo ha alcanzado su número máximo de grupos activos. Cuando esto sucede, la respuesta de /users/track sigue siendo exitosa y Braze sigue procesando los atributos, eventos y compras de la solicitud. La respuesta incluye una entrada en la matriz errors que describe por qué Braze no está rastreando la solicitud:
{
"message": "success",
"errors": [
{
"type": "request_status_group_full"
}
]
}
| Tipo de error | Descripción |
|---|---|
invalid_group_id |
El group_id no es una cadena, está vacío, tiene más de 128 caracteres o contiene caracteres no permitidos. Para más información, consulta Requisitos del ID de grupo. |
request_status_active_group_limit_exceeded |
Tu espacio de trabajo ha alcanzado su límite de grupos activos. Espera a que los grupos existentes caduquen o envía la solicitud sin un group_id. |
request_status_group_full |
El grupo ha alcanzado su límite de solicitudes. Utiliza un nuevo group_id para solicitudes adicionales. |
request_status_not_tracked |
Braze no pudo rastrear la solicitud. Por ejemplo, el periodo de retención del grupo ha finalizado o el seguimiento de estado no está habilitado para tu espacio de trabajo. |
Preguntas frecuentes

No envíes correos transaccionales legalmente requeridos a las pasarelas SMS, ya que es muy probable que esos correos electrónicos no se entreguen.
Aunque los correos electrónicos que envías utilizando un número de teléfono y el dominio de la pasarela del proveedor (conocido como MM3) pueden hacer que el correo electrónico se reciba como un mensaje SMS (de texto), algunos de nuestros proveedores de correo electrónico no admiten este comportamiento. Por ejemplo, si envías un correo electrónico a un número de teléfono de T-Mobile (como “[email protected]”), tu mensaje SMS se enviará a quien posea ese número de teléfono en la red de T-Mobile.
Ten en cuenta que, aunque estos correos electrónicos no se entreguen a la pasarela de SMS, seguirán contando para tu facturación por correo electrónico. Para evitar enviar correos electrónicos a pasarelas no admitidas, revisa la lista de nombres de dominio de pasarelas no admitidas.
¿Qué ocurre cuando se encuentran varios perfiles con la misma dirección de correo electrónico?
Si existe el external_id, Braze da prioridad al perfil actualizado más recientemente con un ID externo para las actualizaciones. Si el external_id no existe, Braze da prioridad al perfil actualizado más recientemente para las actualizaciones.
¿Qué ocurre si no existe ningún perfil con la dirección de correo electrónico?
Braze crea un perfil y un usuario de solo correo electrónico, y establece el campo de correo electrónico en [email protected], como se indica en el ejemplo de solicitud de actualización de un perfil de usuario por dirección de correo electrónico. Braze no crea un alias.
¿Cómo se utiliza /users/track para importar datos de usuario heredados?
Puedes enviar datos a través de la API de Braze de un usuario que aún no haya utilizado tu aplicación móvil para generar un perfil de usuario. Si el usuario utiliza posteriormente la aplicación, toda la información posterior a su identificación mediante el SDK se fusiona con el perfil de usuario existente que creaste mediante la llamada a la API. Cualquier comportamiento de usuario registrado de forma anónima por el SDK antes de la identificación se pierde al fusionarse con el perfil de usuario existente generado por la API.
La herramienta de segmentación incluye a estos usuarios independientemente de si han interactuado o no con la aplicación. Si quieres excluir a los usuarios cargados mediante la API de usuario que aún no han interactuado con la aplicación, añade el filtro Session Count > 0.
¿Cómo evito crear perfiles de usuario duplicados?
Los perfiles duplicados pueden ocurrir cuando una solicitud incluye un identificador primario (como external_id) que no coincide con ningún perfil existente, junto con un valor de email o phone que sí coincide con un perfil existente. Dado que los identificadores primarios se utilizan para la búsqueda de usuarios, Braze crea un nuevo perfil para el external_id no reconocido en lugar de actualizar el perfil existente de solo correo electrónico o solo teléfono.
Para evitar duplicados:
- Al hacer la transición de usuarios de perfiles de solo correo electrónico o solo teléfono a perfiles identificados, utiliza el endpoint
/users/identifypara asignar unexternal_idal perfil existente, en lugar de enviar ambos a/users/track. - Si ya existen duplicados, fusiónalos utilizando el endpoint
/users/merge.
¿Cómo gestiona /users/track los eventos duplicados?
Cada objeto de evento en la matriz de eventos representa una única ocurrencia de un evento personalizado por parte de un usuario en un momento determinado. Esto significa que cada evento ingestado en Braze tiene su propio ID de evento, por lo que los eventos “duplicados” se tratan como eventos separados y únicos.
¿Cómo gestiona /users/track los atributos personalizados anidados no válidos?
Cuando un atributo personalizado anidado contiene algún valor no válido (como formatos de hora no válidos o valores nulos), Braze elimina del procesamiento todas las actualizaciones de atributos personalizados anidados de la solicitud. Esto se aplica a todas las estructuras anidadas dentro de ese atributo específico. Para garantizar el éxito del procesamiento, comprueba que todos los valores de los atributos personalizados anidados son válidos antes de enviarlos.
¿Se garantiza que las solicitudes a /users/track se procesen en orden?
Cuando realizas múltiples llamadas a la API /users/track en rápida sucesión, Braze no puede garantizar que las solicitudes se procesen en el orden exacto en que se envían o reciben. Esto se debe a que Braze utiliza procesamiento asíncrono para maximizar la velocidad y la flexibilidad.
Por ejemplo, si envías múltiples solicitudes de actualización para el mismo usuario en cuestión de segundos, algunas con valores de atributo nulos y otras con valores válidos, las solicitudes que contienen valores nulos pueden procesarse después de las solicitudes con valores válidos, incluso si se enviaron antes. Esto puede provocar que los valores de los atributos parezcan revertirse o no reflejar la actualización enviada más recientemente.
Para evitar condiciones de carrera al actualizar datos de usuario:
- Agrupa las actualizaciones en una sola solicitud: incluye todas las actualizaciones de atributos de un usuario en una sola llamada a la API en lugar de realizar llamadas consecutivas separadas.
- Añade retrasos entre solicitudes: si debes realizar llamadas separadas para el mismo usuario, añade un retraso (de unos segundos) entre solicitudes para permitir que la primera solicitud complete su procesamiento antes de enviar la siguiente.
- Evita actualizaciones superpuestas para el mismo campo: si dos solicitudes actualizan el mismo atributo con valores diferentes, envía esas actualizaciones en una sola solicitud o sepáralas con un retraso para reducir la posibilidad de resultados desordenados.
- Confirma el procesamiento antes de la siguiente solicitud (beta): incluye un
group_iden la primera solicitud y espera hasta que el endpoint/users/track/statusdevuelvacompletedantes de enviar la solicitud dependiente. Para más información, consulta Estado de procesamiento de solicitudes de seguimiento.
Para más información sobre condiciones de carrera y buenas prácticas, consulta Condiciones de carrera.
¿Cómo sé cuándo Braze ha terminado de procesar mi solicitud?
Incluye un group_id en tus solicitudes /users/track y luego llama al endpoint /users/track/status con ese group_id. Cuando el status del grupo sea completed, Braze ha terminado de procesar todas las solicitudes del grupo. Esta característica está en beta. Para más información, consulta Estado de procesamiento de solicitudes de seguimiento.
¿Con qué frecuencia debo comprobar el estado de un grupo?
Consulta el endpoint /users/track/status a intervalos regulares, como cada pocos segundos, y detente cuando el status del grupo sea completed. Mantén tu frecuencia de consulta dentro del límite de velocidad del endpoint de 1500 solicitudes por minuto por espacio de trabajo.
¿Por qué mi grupo sigue en procesamiento?
Un grupo permanece en processing hasta que Braze termina de procesar cada solicitud aceptada del grupo. Si una solicitud falla durante el procesamiento, Braze la reintenta y el grupo permanece en processing hasta que el reintento tiene éxito. Si añades solicitudes a un grupo después de que esté completed, su estado vuelve a processing. En casos excepcionales, un grupo puede permanecer en processing hasta que finalice su periodo de retención. Si un grupo permanece en processing mucho más tiempo de lo habitual, ponte en contacto con el soporte de Braze.
¿Por qué /users/track/status devuelve una matriz results vacía?
La matriz results está vacía cuando Braze no encuentra el grupo en tu espacio de trabajo. Esto ocurre cuando el periodo de retención de 24 horas del grupo ha finalizado, el group_id no coincide con el de tus solicitudes, o enviaste las solicitudes a un espacio de trabajo diferente. También ocurre cuando Braze no rastreó ninguna solicitud para ese group_id. Verifica cada respuesta de /users/track en busca de errores de seguimiento de estado.
¿Por qué la respuesta de /users/track es más lenta de lo esperado?
Las llamadas exitosas a /users/track generalmente se aceptan rápidamente, pero Braze sigue procesando las actualizaciones de atributos, eventos y compras de forma asíncrona. La latencia percibida puede aumentar cuando las cargas útiles son grandes o cuando el enrutamiento de red hacia tu endpoint REST es lento. Si necesitas un acuse de recibo síncrono por usuario o un orden más estricto entre llamadas, consulta /users/track/sync (beta limitada).
¿Por qué /users/track devuelve 429 Too Many Requests?
Cuando tu volumen de solicitudes excede el límite de velocidad, /users/track devuelve una respuesta HTTP 429 Too Many Requests. Para reanudar el envío de solicitudes:
- Pausa las solicitudes durante el número de segundos especificado en el encabezado de respuesta
X-RateLimit-Retry-After. - Reanuda las solicitudes a una tasa más baja para reducir la probabilidad de otra respuesta
429. - Combina actualizaciones cuando sea posible y sigue el límite de objetos por solicitud de tu cuenta.
- Utiliza el panel de uso de la API para identificar picos de solicitudes y tendencias de respuestas
429. Para los valores predeterminados del espacio de trabajo y otros límites de endpoints, consulta Límites de velocidad de la API.
Para las respuestas que no son 429 en contratos compatibles, utiliza los encabezados de respuesta X-RateLimit-* descritos en Encabezados de límite de velocidad para usuarios activos al mes CY 24-25, MAU universal, MAU web y MAU móvil para verificar las solicitudes restantes en la ventana actual.
¿Por qué recibo 400 Bad Request con un error de sintaxis o análisis?
Un HTTP 400 con un error de sintaxis o análisis generalmente significa que el cuerpo de la solicitud no es JSON válido. Las causas comunes incluyen comas finales, comentarios dentro del JSON, cadenas con comillas simples, una llave de apertura { adicional antes de la carga útil, o enviar un cuerpo que no es JSON mientras el encabezado Content-Type es application/json. Valida las cargas útiles con un linter de JSON antes de enviarlas, confirma que tu cliente HTTP codifica los objetos en JSON (en lugar de concatenar cadenas sin procesar) y confirma que el cuerpo está codificado en UTF-8. Para otras respuestas 400 (por ejemplo, límites de tamaño de carga útil y de objetos por solicitud), consulta Errores fatales y respuestas y la tabla de Errores específicos del endpoint en esta página.
Usuarios activos al mes CY 24-25, MAU universal, MAU web y MAU móvil
Para los clientes con nuevos precios, los límites de velocidad se aplican a nivel de empresa. Los clientes pueden establecer límites de velocidad en el espacio de trabajo para los límites horarios, pero los límites de ráfaga se siguen compartiendo entre todos los espacios de trabajo.
Para los clientes que hayan comprado usuarios activos al mes CY 24-25, MAU universal, MAU web o MAU móvil, Braze gestiona diferentes límites de velocidad en su endpoint /users/track:
- Los límites de velocidad por hora se establecen en función de la actividad prevista de ingesta de datos en tu cuenta, que puede corresponder al número de usuarios activos al mes que hayas comprado, al sector, a la estacionalidad o a otros factores.
- Además del límite horario, Braze aplica un límite de ráfaga al número de solicitudes que pueden enviarse cada tres segundos.
- Cada solicitud puede contener hasta 75 actualizaciones combinadas de objetos de atributo, evento o compra.
Los límites actuales basados en la ingesta prevista se pueden encontrar en el panel en Configuración > API e identificadores > Panel de uso de la API. Podemos modificar los límites de velocidad para proteger la estabilidad del sistema o permitir un mayor caudal de datos en tu cuenta. Ponte en contacto con el soporte de Braze o con tu administrador de éxito de cliente si tienes preguntas o dudas sobre el límite de solicitudes por hora o por segundo y las necesidades de tu empresa.
Encabezados de límite de velocidad para usuarios activos al mes CY 24-25, MAU universal, MAU web y MAU móvil
Todas las respuestas sin límite de velocidad (como las que no son 429) contienen los siguientes encabezados de respuesta HTTP que indican al cliente el estado de la ventana de límite de velocidad por hora. Utiliza estos encabezados para administrar tu tasa de solicitudes:
| Nombre del encabezado | Descripción |
|---|---|
X-RateLimit-Limit |
El número de solicitudes permitidas por periodo de tiempo |
X-RateLimit-Remaining |
El número aproximado de solicitudes restantes dentro de una ventana |
X-RateLimit-Reset |
El número de segundos restantes antes de que se reinicie la ventana actual |
Ten en cuenta que los encabezados RateLimit-Limit, RateLimit-Remaining y RateLimit-Reset no se devuelven cuando se produce un error HTTP 429. Cuando se produce el error, esos encabezados se sustituyen por un encabezado X-RateLimit-Retry-After que devuelve un número entero que indica el número de segundos que faltan para que puedas empezar a hacer solicitudes.