Objeto de atributos do usuário
Uma solicitação de API com quaisquer campos no objeto de atributos cria ou atualiza um atributo com esse nome e o valor informado no perfil de usuário especificado.
Use os nomes de campo do perfil de usuário da Braze (listados a seguir ou qualquer um listado na seção de campos de perfil de usuário da Braze) para atualizar esses valores especiais no perfil de usuário no dashboard ou para adicionar seus próprios dados de atributos personalizados ao usuário.
Corpo do objeto
{
// One of "external_id" or "user_alias" or "braze_id" or "email" or "phone" is required
"external_id" : (optional, string) see external user ID,
"user_alias" : (optional, User alias object),
"braze_id" : (optional, string) Braze user identifier,
"email": (optional, string) User email address,
"phone": (optional, string) User phone number,
// Setting this flag to true puts the API in "Update Only" mode.
// When using a "user_alias", "Update Only" defaults to true.
"_update_existing_only" : (optional, boolean),
// See note regarding anonymous push token imports
"push_token_import" : (optional, boolean),
// Braze User Profile Fields
"first_name" : "Alex",
"email" : "[email protected]",
// Custom Attributes
"my_custom_attribute" : value,
"my_custom_attribute_2" : {"inc" : int_value},
"my_array_custom_attribute":[ "Value1", "Value2" ],
// Adding a new value to an array custom attribute
"my_array_custom_attribute" : { "add" : ["Value3"] },
// Removing a value from an array custom attribute
"my_array_custom_attribute" : { "remove" : [ "Value1" ]},
// Array of objects custom attribute
"my_array_of_objects_attribute": [{"key": "value"}, {"key": "value"}],
// Adding to an array of objects (nested custom attribute syntax)
"my_array_of_objects_attribute": { "$add": [{"key": "value"}] },
// Removing from an array of objects (nested custom attribute syntax)
"my_array_of_objects_attribute": { "$remove": [{"$identifier_key": "key", "$identifier_value": "value"}] },
}

Para atributos personalizados de array comuns, use add e remove (sem $).
Para arrays de objetos (atributos personalizados aninhados), use $add, $remove e $update nas cargas úteis das solicitações para /users/track. Esses operadores aplicam alterações no nível do objeto ao fazer a correspondência dos identificadores ($identifier_key e $identifier_value) e permitem atualizações no local com $new_object.
Use esse formato quando precisar adicionar, remover ou atualizar objetos dentro de um array existente, preservando o restante do estado do array. Para ver exemplos completos de solicitação, consulte Exemplo de API de array de objetos e Exemplo de SDK de array de objetos.
Para remover um atributo do perfil, defina-o como null. Alguns campos, como external_id e user_alias, não podem ser removidos depois de adicionados a um perfil de usuário.
Resolução de identificadores
A menos que você esteja fazendo uma importação de token por push anônimo, cada objeto de atributos de usuário deve incluir pelo menos um identificador: external_id, user_alias, braze_id, email ou phone. Sempre que possível, inclua apenas um identificador por objeto. Assim, não há ambiguidade sobre qual perfil de usuário está sendo atualizado ou criado.
Lembre-se do seguinte ao usar identificadores:
external_ideuser_aliassão mutuamente exclusivos. Incluir os dois no mesmo objeto de atributos de usuário retorna um erro. Para adicionar um alias a um usuário que já tem umexternal_id, use o endpoint/users/alias/new.emailtem precedência sobrephone. Seemailephoneforem incluídos no mesmo objeto, a Braze usaráemailcomo identificador. Isso significa que os atributos serão aplicados ao perfil de usuário associado a esse endereço de e-mail, mesmo que o número de telefone pertença a outro perfil.

Para evitar comportamentos inesperados, use um único identificador por objeto de atributos de usuário. Informar vários identificadores que se referem a perfis de usuário diferentes pode fazer com que os atributos sejam aplicados ao perfil errado.
Atualizar apenas perfis existentes
Se quiser atualizar apenas perfis de usuário existentes na Braze, passe a chave _update_existing_only com o valor true no corpo da solicitação. Se esse valor for omitido, a Braze criará um novo perfil de usuário caso o external_id ainda não exista.

Se você estiver criando um perfil de usuário somente com alias pelo endpoint /users/track, defina _update_existing_only como false. Se você omitir esse valor, a Braze não criará o perfil somente com alias.
Importação de token por push
Antes de importar tokens por push para a Braze, verifique se isso é realmente necessário. Quando os SDKs da Braze estão implementados, eles gerenciam os tokens por push automaticamente, sem necessidade de enviá-los pela API.
Se você precisar enviá-los pela API, é possível fazer o upload para usuários identificados ou para usuários anônimos. Ou seja, é preciso haver um external_id ou os usuários anônimos devem ter o sinalizador push_token_import definido como true.

Ao importar tokens por push de outros sistemas, nem sempre há um external_id disponível. Para manter a comunicação com esses usuários durante a transição para a Braze, você pode importar os tokens legados para usuários anônimos sem informar o external_id, especificando push_token_import como true.
Ao especificar push_token_import como true:
external_idebraze_idnão devem ser especificados- O objeto de atributo deve conter um token por push
- Se o token já existir na Braze, a solicitação será ignorada. Caso contrário, a Braze cria um perfil de usuário anônimo e temporário para cada token, para que você continue enviando mensagens a essas pessoas
Após a importação, à medida que cada usuário abre a versão do seu app com a Braze ativada, a Braze move automaticamente o token por push importado para o perfil de usuário dele na Braze e remove o perfil temporário.
Uma vez por mês, a Braze procura perfis anônimos com o sinalizador push_token_import que não tenham token por push. Se o perfil anônimo não tiver mais um token por push, a Braze exclui o perfil. No entanto, se o perfil anônimo ainda tiver um token por push, o que indica que o usuário real ainda não fez login no dispositivo com esse token, a Braze não faz nada.
Para saber mais, consulte Migração de tokens por push.
Tipos de dados de atributos personalizados
Os seguintes tipos de dados podem ser armazenados como atributo personalizado:
| Tipo de dado | Notas |
|---|---|
| Arrays | Arrays de atributos personalizados são suportados. Quando você adiciona um elemento, ele é inserido no final do array. Se o elemento já existir, ele é movido da posição atual para o final. Apenas valores únicos são armazenados. Por exemplo, importar ['hotdog','hotdog','hotdog','pizza'] resulta em ['hotdog', 'pizza'].Você pode definir um array diretamente (por exemplo, "my_array_custom_attribute":[ "Value1", "Value2" ]), adicionar itens a um array existente com "my_array_custom_attribute" : { "add" : ["Value3"] } ou remover valores com "my_array_custom_attribute" : { "remove" : [ "Value1" ]}.O número máximo de elementos padrão em um array é 500. Você pode atualizar o número máximo de arrays no dashboard da Braze, em Configurações de dados > Atributos personalizados. Para saber mais, consulte Arrays. |
| Array de objetos | Use um array de objetos para definir uma lista de objetos em que cada objeto contém um conjunto de atributos. Use esse tipo para armazenar vários conjuntos de dados relacionados de um usuário, como estadias em hotéis, histórico de compras ou preferências. Por exemplo, defina um atributo personalizado chamado hotel_stays em um perfil de usuário como um array em que cada objeto representa uma estadia diferente, com atributos como hotel_name, check_in_date e nights_stayed.Arrays de objetos não têm limite de número de itens, mas têm tamanho máximo de 100 KB. Se uma atualização fizer o array ultrapassar esse limite, a Braze descarta a atualização e o atributo permanece inalterado. Para cargas úteis de /users/track e do SDK, use $add, $remove e $update em operações com arrays de objetos. Use add e remove (sem $) para atributos personalizados de array comuns que contêm valores escalares. Para mais detalhes, consulte Exemplo de API de array de objetos, Exemplo de SDK de array de objetos e Exemplo de array de objetos. |
| Booleanos | true ou false |
| Datas | Armazene datas no formato ISO 8601 (recomendado) ou em qualquer um destes formatos: - yyyy-MM-ddTHH:mm:ss:SSSZ - yyyy-MM-ddTHH:mm:ss - yyyy-MM-dd HH:mm:ss - yyyy-MM-dd - MM/dd/yyyy - ddd MM dd HH:mm:ss.TZD YYYY Observe que “T” é um designador de tempo, não um placeholder, e não deve ser alterado nem removido. Valores de data que não correspondem a nenhum dos formatos listados são armazenados como strings no perfil do usuário, em vez do tipo de dado Time. Isso significa que os filtros de segmentação baseados em tempo (como “antes”, “depois” ou “nos últimos X dias”) não funcionam para esses atributos. Por exemplo, Mar 26 2026 06:12 PM +00:00 é armazenado como string porque não corresponde a um formato suportado. Para evitar isso, use o formato ISO 8601 (como 2026-03-26T18:12:00Z). Carimbos de data/hora, fusos horários e filtragem por datas recorrentes: Atributos de tempo sem fuso horário são definidos por padrão como meia-noite UTC (e exibidos no dashboard como o equivalente à meia-noite UTC no fuso horário da empresa). Para especificar um fuso horário, adicione um deslocamento UTC ao carimbo de data/hora (por exemplo, 2024-11-10T18:00:00-05:00 para EST). Se o deslocamento de fuso horário estiver ausente ou formatado incorretamente, o valor será definido por padrão como UTC. Quando um atributo Time é definido, a Braze calcula uma data de evento recorrente (mês e dia) a partir da data do calendário no deslocamento do carimbo de data/hora. Essa data de evento recorrente é usada pelo filtro “Dia do evento recorrente” e por comparações de dia do ano em atributos personalizados aninhados. Instantes equivalentes com deslocamentos diferentes geram datas recorrentes diferentes. Por exemplo, 2026-10-13T00:09:49+09:00 armazena 13 de outubro, enquanto 2026-10-12T15:09:49Z (o mesmo instante em UTC) armazena 12 de outubro. Para preservar a data local pretendida na filtragem por datas recorrentes, use um carimbo de data/hora com o deslocamento local, por exemplo, 2026-10-13T00:00:00+09:00 para armazenar 13 de outubro. Para mais detalhes, consulte Detalhes do atributo Time. Os horários são exibidos no dashboard no fuso horário da sua empresa. Por exemplo, 2024-11-10T18:00:00-05:00 (18h EST) aparece como o horário equivalente no fuso horário configurado da sua empresa. Eventos com carimbos de data/hora no futuro assumem por padrão o horário atual. Para atributos personalizados comuns, se o ano for menor que 0 ou maior que 3000, a Braze armazena o valor como string no perfil do usuário. |
| Floats | Atributos personalizados do tipo float são números positivos ou negativos com ponto decimal. Por exemplo, você pode usar floats para armazenar saldos de conta ou avaliações de usuários sobre produtos ou serviços. |
| Inteiros | Você pode incrementar atributos personalizados inteiros atribuindo um objeto com o campo “inc” e o valor a ser somado. Exemplo: "my_custom_attribute_2" : {"inc" : int_value}, |
| Atributos personalizados aninhados | Atributos personalizados aninhados definem um conjunto de atributos como propriedade de outro atributo. Ao definir um objeto de atributo personalizado, você adiciona um conjunto de atributos a esse objeto. Para saber mais, consulte Atributos personalizados aninhados. |
| Strings | Atributos personalizados do tipo string são sequências de caracteres usadas para armazenar dados de texto. Por exemplo, você pode usar strings para armazenar nomes e sobrenomes, endereços de e-mail ou preferências. |

Para saber quando usar um evento personalizado ou um atributo personalizado, consulte Eventos personalizados e Atributos personalizados.
Exemplo de array de objetos
Esse array de objetos permite criar Segments com base em critérios específicos das estadias e personalizar suas mensagens usando os dados de cada estadia com modelos Liquid.
{"hotel_stays": [
{ "hotel_name": "Ocean View Resort", "check_in_date": "2023-06-15", "nights_stayed": 5 },
{ "hotel_name": "Mountain Lodge", "check_in_date": "2023-09-10", "nights_stayed": 3 }
]}
Para ver exemplos de arrays de objetos que usam $add, $remove e $update, consulte Exemplo de API de array de objetos e Exemplo de SDK de array de objetos.
Campos de perfil de usuário da Braze

Os campos de perfil de usuário a seguir diferenciam maiúsculas de minúsculas. Por isso, faça referência a esses campos em letras minúsculas.

Para uma referência voltada ao cliente sobre atributos padrão, organizada por categoria e com orientações para SDK, API, CSV e Cloud Data Ingestion, consulte Atributos padrão.
| Campo do perfil de usuário | Especificação do tipo de dado |
|---|---|
| alias_name | (string) |
| alias_label | (string) |
| braze_id | (string, opcional) Quando um perfil de usuário é reconhecido pelo SDK, um perfil de usuário anônimo é criado com um braze_id associado. O braze_id é atribuído automaticamente pela Braze, não pode ser editado e é específico do dispositivo. |
| country | (string) Os códigos de país devem ser passados para a Braze no padrão ISO-3166-1 alfa-2. Nossa API faz o possível para mapear países recebidos em formatos diferentes. Por exemplo, “Australia” pode ser mapeado para “AU”. No entanto, se a entrada não corresponder a um padrão ISO-3166-1 alfa-2, o valor do país será definido como NULL. Definir country para um usuário por importação de CSV ou pela API impede que a Braze capture essa informação automaticamente pelo SDK. |
| current_location | (objeto) No formato {“longitude”: -73.991443, “latitude”: 40.753824} |
| date_of_first_session | (data em que o usuário usou o app pela primeira vez) String no formato ISO 8601 ou em qualquer um dos seguintes formatos: - yyyy-MM-ddTHH:mm:ss:SSSZ - yyyy-MM-ddTHH:mm:ss - yyyy-MM-dd HH:mm:ss - yyyy-MM-dd - MM/dd/yyyy - ddd MM dd HH:mm:ss.TZD YYYY |
| date_of_last_session | (data em que o usuário usou o app pela última vez) String no formato ISO 8601 ou em qualquer um dos seguintes formatos: - yyyy-MM-ddTHH:mm:ss:SSSZ - yyyy-MM-ddTHH:mm:ss - yyyy-MM-dd HH:mm:ss - yyyy-MM-dd - MM/dd/yyyy - ddd MM dd HH:mm:ss.TZD YYYY |
| dob | (data de nascimento) String no formato “YYYY-MM-DD”, por exemplo, 1980-12-21. |
| (string) | |
| email_subscribe | (string) Os valores disponíveis são “opted_in” (registrado explicitamente para receber mensagens de e-mail), “unsubscribed” (cancelou explicitamente o recebimento de mensagens de e-mail) e “subscribed” (não fez opt-in nem opt-out). |
| email_open_tracking_disabled | (booleano) Aceita true ou false. Defina como true para impedir que o pixel de rastreamento de abertura seja adicionado a todos os e-mails futuros enviados a esse usuário. |
| email_click_tracking_disabled | (booleano) Aceita true ou false. Defina como true para desativar o rastreamento de cliques em todos os links de e-mails futuros enviados a esse usuário. |
| external_id | (string) Um identificador exclusivo para um perfil de usuário. Depois que um external_id é atribuído, a Braze identifica o perfil de usuário em todos os dispositivos do usuário. Na primeira vez que um external_id é atribuído a um perfil de usuário desconhecido, a Braze migra todos os dados existentes do perfil para o novo perfil de usuário. |
Hash contendo qualquer um destes: id (string), likes (array de strings), num_friends (inteiro). |
|
| first_name | (string) |
| gender | (string) “M”, “F”, “O” (outro), “N” (não se aplica), “P” (prefere não informar) ou null (desconhecido). |
| home_city | (string) |
| language | (string) O idioma deve ser passado para a Braze no padrão ISO-639-1. Para ver os idiomas suportados, consulte nossa lista de idiomas aceitos. Definir language para um usuário por importação de CSV ou pela API impede que a Braze capture essa informação automaticamente pelo SDK. |
| last_name | (string) |
| marked_email_as_spam_at | (string) Data em que o e-mail do usuário foi marcado como spam. Aparece no formato ISO 8601 ou em qualquer um dos seguintes formatos: - yyyy-MM-ddTHH:mm:ss:SSSZ - yyyy-MM-ddTHH:mm:ss - yyyy-MM-dd HH:mm:ss - yyyy-MM-dd - MM/dd/yyyy - ddd MM dd HH:mm:ss.TZD YYYY |
| phone | (string) Recomendamos informar os números de telefone no formato E.164. Para mais detalhes, consulte Números de telefone do usuário. |
| push_subscribe | (string) Os valores disponíveis são “opted_in” (registrado explicitamente para receber mensagens push), “unsubscribed” (cancelou explicitamente o recebimento de mensagens push) e “subscribed” (não fez opt-in nem opt-out). |
| push_tokens | Array de objetos com as strings app_id e token. Opcionalmente, você pode informar um device_id para o dispositivo associado a esse token, por exemplo, [{"app_id": App Identifier, "token": "abcd", "device_id": "optional_field_value"}]. Se nenhum device_id for informado, um será gerado aleatoriamente. |
| subscription_groups | Array de objetos com as strings subscription_group_id e subscription_state, por exemplo, [{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]. Os valores disponíveis para subscription_state são “subscribed” e “unsubscribed”. |
| time_zone | (string) Nome do fuso horário do banco de dados de fusos horários da IANA (por exemplo, “America/New_York” ou “Eastern Time (US & Canada)”). Apenas valores de fuso horário válidos são definidos. |
Hash contendo qualquer um destes: id (inteiro), screen_name (string, nome de usuário do X, antigo Twitter), followers_count (inteiro), friends_count (inteiro), statuses_count (inteiro). |
Os valores de idioma definidos explicitamente por esta API têm precedência sobre as informações de localidade que a Braze recebe automaticamente do dispositivo.
Exemplo de solicitação de atributos de usuário
Este exemplo contém quatro objetos de atributos de usuário, de um total de 75 objetos de atributos permitidos por chamada de API.
POST https://YOUR_REST_API_URL/users/track
Content-Type: application/json
Authorization: Bearer YOUR-REST-API-KEY
{
"attributes" : [
{
"external_id" : "user1",
"first_name" : "Alex",
"has_profile_picture" : true,
"dob": "1988-02-14",
"music_videos_favorited" : { "add" : [ "calvinharris-summer" ], "remove" : ["nickiminaj-anaconda"] }
},
{
"external_id" : "user2",
"first_name" : "Lee",
"has_profile_picture" : false,
"push_tokens": [{"app_id": "Your App Identifier", "token": "abcd", "device_id": "optional_field_value"}]
},
{
"user_alias" : { "alias_name" : "device123", "alias_label" : "my_device_identifier"},
"first_name" : "Yuri",
"has_profile_picture" : false
},
{
"external_id": "user3",
"subscription_groups" : [{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]
}
]
}
Migrar tokens por push
Se você já enviava notificações por push antes de integrar a Braze, por conta própria ou por meio de outro provedor, a migração de tokens por push permite continuar enviando notificações por push para seus usuários com tokens por push registrados.
Migração automática pelo SDK
Depois que você integrar o SDK da Braze, os tokens por push dos usuários que aceitaram receber notificações são migrados automaticamente na próxima vez que eles abrirem seu app. Até lá, não é possível enviar notificações por push para esses usuários pela Braze.
Como alternativa, você pode migrar seus tokens por push manualmente, o que permite reengajar seus usuários mais rapidamente.
Considerações sobre tokens da web
Por causa da natureza dos tokens de web push, leve em conta os seguintes pontos ao implementar push para a web:
| Consideração | Detalhes |
|---|---|
| Service workers | Por padrão, o Web SDK procura um service worker em ./service-worker, a menos que outra opção seja especificada, como manageServiceWorkerExternally ou serviceWorkerLocation. Se o seu service worker não estiver configurado corretamente, os tokens por push dos seus usuários podem expirar. |
| Tokens expirados | Se um usuário não iniciar uma sessão na web em 60 dias, o token por push dele expira. Como a Braze não consegue migrar tokens por push expirados, você precisa enviar uma mensagem de primer push para reengajar esses usuários. |
Migração manual pela API
A migração manual de tokens por push é o processo de importar essas chaves criadas anteriormente para a plataforma da Braze por meio da API.
Migre de forma programática os tokens de iOS (APNs) e Android (FCM) para sua plataforma usando o endpoint users/track. Você pode migrar tanto usuários identificados (usuários com um ID externo associado) quanto usuários anônimos (usuários sem ID externo).

A Braze assume que os tokens por push importados são tokens por push de primeiro plano válidos para o seu app e ambiente.
Quando você importa tokens iOS, a Braze não armazena um gateway do serviço de Notificações por Push da Apple (APN) (development ou production) para eles. A Braze envia para esses tokens por meio do gateway configurado do seu app. Se um token foi gerado para o outro ambiente, o APN o rejeita com BadDeviceToken, e o envio sofre bounce.
A Braze armazena um gateway para o token somente se o SDK registrar posteriormente o mesmo token e informar um gateway.
Especifique o app_id do seu app durante a migração de tokens por push para associar cada token por push ao app correto. Cada app (iOS, Android etc.) tem seu próprio app_id, que pode ser encontrado na seção Identificação da página Chaves de API. Use o app_id da plataforma correta.

Não é possível migrar tokens de web push pela API. Isso acontece porque os tokens de web push não seguem o mesmo esquema das outras plataformas.
Se você tentar migrar tokens de web push de forma programática, poderá ver um erro como o seguinte: Received '400: Invalid subscription auth' sending to 'https://fcm.googleapis.com/fcm/send
Como alternativa à migração pela API, recomendamos que você integre o SDK e deixe sua base de tokens ser preenchida novamente de forma natural.
Para usuários identificados, defina o sinalizador push_token_import como false (ou omita o parâmetro) e especifique os valores external_id, app_id e token no objeto attributes do usuário.
Por exemplo:
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-API-KEY-HERE' \
--data-raw '{
"attributes" : [
{
"push_token_import" : false,
"external_id": "example_external_id",
"country": "US",
"language": "en",
"YOUR_CUSTOM_ATTRIBUTE": "YOUR_VALUE",
"push_tokens": [
{"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING"}
]
}
]
}'
Ao importar tokens por push de outros sistemas, nem sempre há um external_id disponível. Nesse caso, defina o sinalizador push_token_import como true e especifique os valores app_id e token. A Braze cria um perfil de usuário anônimo e temporário para cada token, para que você possa continuar enviando mensagens a essas pessoas. Se o token já existir na Braze, a solicitação será ignorada.
Por exemplo:
curl --location --request POST 'https://rest.iad-01.braze.com/users/track' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-API-KEY-HERE' \
--data-raw '{
"attributes": [
{
"push_token_import" : true,
"email": "[email protected]",
"country": "US",
"language": "en",
"YOUR_CUSTOM_ATTRIBUTE": "YOUR_VALUE",
"push_tokens": [
{"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING", "device_id": "DEVICE_ID"}
]
},
{
"push_token_import" : true,
"email": "[email protected]",
"country": "US",
"language": "en",
"YOUR_CUSTOM_ATTRIBUTE_1": "YOUR_VALUE",
"YOUR_CUSTOM_ATTRIBUTE_2": "YOUR_VALUE",
"push_tokens": [
{"app_id": "APP_ID_OF_OS", "token": "PUSH_TOKEN_STRING", "device_id": "DEVICE_ID"}
]
}
]
}'
Após a importação, quando o usuário anônimo abrir a versão do seu app com a Braze integrada, a Braze move automaticamente o token por push importado para o perfil de usuário dele na Braze e remove o perfil temporário.
A Braze verifica uma vez por mês se há algum perfil anônimo com o sinalizador push_token_import que não tenha um token por push. Se o perfil anônimo não tiver mais um token por push, a Braze exclui o perfil. No entanto, se o perfil anônimo ainda tiver um token por push, isso indica que o usuário real ainda não fez login no dispositivo com esse token. Nesse caso, a Braze não faz nada.
Importar tokens por push do iOS
Ao migrar tokens por push do iOS com /users/track, o campo gateway não é definido no token por push. A Braze presume que os tokens importados pela API são tokens por push de primeiro plano válidos, mas não consegue determinar a qual ambiente de APNs o token pertence.
Sem o campo gateway, a Braze usa a configuração de ambiente de fallback do seu app ao enviar notificações por push. Isso pode gerar erros BadDeviceToken se o ambiente real do token for diferente do fallback configurado. Por exemplo, um token de desenvolvimento enviado pelo gateway de produção vai falhar.
Para evitar problemas de entrega:
- Confira se a configuração de ambiente do seu app no dashboard da Braze corresponde aos tokens que você está importando.
- Para apps de produção, importe apenas tokens de produção.
- Para ambientes de teste, verifique se tanto a configuração do app quanto os tokens importados usam o ambiente de desenvolvimento.

Os tokens registrados pelo SDK da Braze incluem o campo gateway automaticamente, porque o SDK detecta o ambiente a partir dos entitlements do seu app.
Importar tokens por push do Android

A consideração a seguir se aplica apenas a apps Android. Apps iOS não precisam destas etapas, porque essa plataforma tem apenas um framework para exibir push, e as notificações por push são renderizadas imediatamente desde que a Braze tenha os tokens por push e certificados necessários.
Se você precisar enviar notificações por push do Android para seus usuários antes de concluir a integração do SDK da Braze, use pares de chave-valor para validar as notificações por push.
Você precisa ter um receptor para processar e exibir as cargas úteis de push. Para notificar o receptor sobre a carga útil de push, adicione os pares de chave-valor necessários à Campaign de push. Os valores desses pares dependem do parceiro de push específico que você usava antes da Braze.

Para alguns provedores de notificações por push, a Braze precisa achatar os pares de chave-valor para que eles possam ser interpretados corretamente. Para achatar pares de chave-valor de um app Android específico, entre em contato com seu gerente de sucesso do cliente.
Perguntas frequentes
Como encontro usuários tratados como spam ou bloqueados para envio de mensagens?
A Braze não oferece uma lista de spam dedicada no dashboard. A Braze bloqueia perfis de usuário individuais (“usuários fictícios”) com mais de cinco milhões de sessões, mais de 20.000 nomes distintos de eventos personalizados ou mais de 20.000 nomes distintos de produtos em compras. Nesses casos, a Braze deixa de ingerir todos os dados recebidos para esse perfil, tanto dos SDKs quanto da REST API. Se um identificador estiver bloqueado, o /users/track pode retornar o erro "provided external_id is blacklisted and disallowed". Essa mensagem foi copiada literalmente da resposta da API.
Para encontrar perfis bloqueados por excesso de sessões, crie um Segment com o filtro Contagem de sessões definido como mais de 5.000.000. Depois, exporte o Segment como CSV e confira os campos do perfil em Engajamento > Pesquisar usuários ou com o endpoint /users/export/ids. Não existe um filtro equivalente para nomes distintos de eventos personalizados ou de produtos. Então, entre em contato com seu gerente de conta da Braze para identificar perfis bloqueados por esses motivos. Para saber mais, consulte Bloqueio de spam.