Objeto de atribuições do usuário
Uma solicitação de API com qualquer campo no objeto de atribuições cria ou atualiza um atributo desse nome com o valor fornecido no perfil de usuário especificado.
Use os nomes de campo do perfil de usuário do Braze (listados a seguir ou qualquer outro listado na seção de campos de perfil de usuário do Braze) para atualizar esses valores especiais no perfil de usuário no dashboard ou adicionar seus próprios dados de atributo personalizado ao usuário.
Corpo do objeto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
// 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" : "Jon",
"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" ]},
}
Para remover uma atribuição de perfil, defina-a como null. Alguns campos, como external_id e user_alias, não podem ser removidos depois de serem adicionados a um perfil de usuário.
Atualizar apenas os perfis existentes
Se desejar atualizar apenas os 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, o Braze criará um novo perfil de usuário se o external_id ainda não existir.
Se estiver criando um perfil de usuário somente de alias por meio do ponto de extremidade /users/track, você deverá definir _update_existing_only como false. Se você omitir esse valor, o Braze não criará o perfil somente de alias.
Importação de token por push
Antes de importar tokens por push para o Braze, verifique novamente se é necessário. Quando os SDKs da Braze são implementados, eles lidam com tokens por push automaticamente, sem a necessidade de fazer upload deles por meio da API.
Se achar que precisa fazer upload deles por meio da API, eles podem ser carregados para usuários identificados ou usuários anônimos. Isso significa que um external_id precisa estar presente ou que os usuários anônimos devem ter o sinalizador push_token_import definido como true.
Ao importar tokens por push de outros sistemas, um external_id nem sempre está disponível. Para manter a comunicação com esses usuários durante a transição para o Braze, é possível importar os tokens legados para usuários anônimos sem fornecer 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 atribuição deve conter um token por push
- Se o token já existir no Braze, a solicitação será ignorada; caso contrário, o Braze criará um perfil de usuário temporário e anônimo para cada token, a fim de ativar a possibilidade de continuar enviando mensagens para essas pessoas
Após a importação, à medida que cada usuário inicia a versão ativada pelo Braze do seu app, o Braze move automaticamente o token por push importado para o perfil de usuário do Braze e limpa o perfil temporário.
O Braze verifica uma vez por mês para encontrar qualquer 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, o Braze excluirá o perfil. No entanto, se o perfil anônimo ainda tiver um token por push, o que sugere que o usuário real ainda não fez login no dispositivo com o referido token por push, o Braze não fará 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 um atributo personalizado:
| Tipo de dados | Notas |
|---|---|
| Matrizes | Há suporte para matrizes de atributos personalizados. Adicionar um elemento a uma matriz de atributos personalizados anexa o elemento ao final da matriz, a menos que ele já esteja presente, caso em que ele é movido de sua posição atual para o final da matriz. Por exemplo, se a matriz ['hotdog','hotdog','hotdog','pizza'] for importada, ela será exibida na atribuição da matriz como ['hotdog', 'pizza'] porque somente valores exclusivos são suportados.Além de definir os valores de uma matriz dizendo algo como "my_array_custom_attribute":[ "Value1", "Value2" ], você pode adicionar a matrizes existentes fazendo algo como "my_array_custom_attribute" : { "add" : ["Value3"] }, ou remover valores de uma matriz fazendo algo como "my_array_custom_attribute" : { "remove" : [ "Value1" ]}O número máximo de elementos em matrizes de atributos personalizados tem como padrão 25, mas pode ser aumentado até 100 para uma matriz individual. Para saber mais, consulte Matrizes. |
| Vetor de objetos | O vetor de objetos permite que você defina uma lista de objetos em que cada objeto contém um conjunto de atribuições. Isso pode ser útil se for necessário armazenar vários conjuntos de dados relacionados a um usuário, como estadias em hotéis, histórico de compras ou preferências. Por exemplo, é possível definir um atributo personalizado em um perfil de usuário chamado hotel_stays. Esse atributo personalizado pode ser definido como um vetor de objeto em que cada objeto representa uma estadia separada, com atributos como hotel_name, check_in_date, nights_stayed. Para obter mais detalhes, consulte este exemplo. |
| Booleanos | true ou false |
| Datas | Deve ser armazenado 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 Note que “T” é um designador de tempo, não um espaço reservado, e não deve ser alterado ou removido. As atribuições de horário sem um fuso horário têm como padrão a meia-noite UTC (e são formatadas no dashboard como o equivalente à meia-noite UTC no fuso horário da empresa). Eventos com registros de data e hora no futuro têm como padrão a hora atual. Para atributos personalizados regulares, se o ano for menor que 0 ou maior que 3000, a Braze armazenará esses valores como strings no usuário. |
| Floats | Os atributos personalizados Float são números positivos ou negativos com um ponto decimal. Por exemplo, você pode usar flutuadores para armazenar saldos de contas ou classificações de usuários para produtos ou serviços. |
| Inteiros | Os atributos personalizados inteiros podem ser incrementados por números inteiros positivos ou negativos, atribuindo a eles um objeto com o campo “inc” e o valor pelo qual você deseja incrementá-los. Exemplo: "my_custom_attribute_2" : {"inc" : int_value}, |
| Atributos personalizados aninhados | Os atributos personalizados aninhados definem um conjunto de atributos como uma propriedade de outro atributo. Ao definir um objeto de atributo personalizado, você define um conjunto de atributos adicionais para esse objeto. Para saber mais, consulte Atributos personalizados aninhados. |
| Strings | Os atributos personalizados de string são sequências de caracteres usadas para armazenar dados de texto. Por exemplo, é possível usar strings para armazenar nomes e sobrenomes, endereços de e-mail ou preferências. |
Para obter informações sobre quando usar um evento personalizado em vez de um atributo personalizado, consulte nossa respectiva documentação sobre eventos personalizados e atributos personalizados.
Exemplo de vetor de objetos
Esse vetor de objetos permite que você crie segmentos com base em critérios específicos dentro das estadias e personalize suas mensagens usando os dados de cada estadia com modelos Liquid.
1
2
3
4
"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 }
]
Campos de perfil de usuário do Braze
Os seguintes campos de perfil de usuário diferenciam maiúsculas de minúsculas, portanto, certifique-se de referenciar esses campos em minúsculas.
| Campo de perfil do usuário | Especificação do tipo de dados |
|---|---|
| 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 endereço braze_id é atribuído automaticamente pela Braze, não pode ser editado e é específico do dispositivo. |
| country | (string) Exigimos que os códigos de país sejam transmitidos à Braze no padrão ISO-3166-1 alfa-2. Nossa API se esforça ao máximo para mapear os países recebidos em diferentes formatos. Por exemplo, “Austrália” pode ser mapeado para “AU”. No entanto, se a entrada não corresponder a um determinado padrão ISO-3166-1 alfa-2, o valor do país será definido como NULL. A configuração de country em um usuário por importação de CSV ou API impede que o Braze capture automaticamente essas informações por meio do SDK. |
| current_location | (objeto) Com o 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 “AAAA-MM-DD”, por exemplo, 1980-12-21. |
| (string) | |
| email_subscribe | (string) Os valores disponíveis são “opted_in” (explicitamente registrado para receber mensagens de e-mail), “unsubscribed” (explicitamente cancelado inscrição para receber mensagens de e-mail) e “subscribed” (nem opt-in nem out). |
| email_open_tracking_disabled | (booleano) true ou false aceito. Defina como true para desativar a adição do pixel de rastreamento de abertura a todos os futuros e-mails enviados a esse usuário. Disponível apenas para SparkPost e SendGrid. |
| email_click_tracking_disabled | (booleano) true ou false aceito. Defina como true para desativar o rastreamento de cliques para todos os links em um e-mail futuro enviado a esse usuário. Disponível apenas para SparkPost e SendGrid. |
| external_id | (string) Um identificador exclusivo para um perfil de usuário. Depois de atribuído um external_id, o Braze identifica o perfil do usuário nos dispositivos do usuário. Na primeira instância de atribuição de um external_id a um perfil de usuário desconhecido, o Braze migra todos os dados de perfil de usuário existentes para o novo perfil de usuário. |
hash contendo qualquer um dos seguintes itens: id (string), likes (vetor de strings), num_friends (inteiro). |
|
| first_name | (string) |
| gender | (string) “M”, “F”, “O” (outro), “N” (não aplicável), “P” (prefere não dizer) ou nil (desconhecido). |
| home_city | (string) |
| language | (string), exigimos que a linguagem seja passada para a Braze no padrão ISO-639-1. Para saber os idiomas compatíveis, consulte nossa lista de idiomas aceitos. A configuração de language em um usuário por importação de CSV ou API impede que o Braze capture automaticamente essas informações por meio do 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 |
| telefone | (string) Recomendamos fornecer números de telefone no formato E.164. Para obter detalhes, consulte Números de telefone do usuário. |
| push_subscribe | (string) Os valores disponíveis são “opted_in” (explicitamente registrado para receber mensagens push), “unsubscribed” (explicitamente cancelado a aceitação de mensagens push) e “subscribed” (nem aceito nem recusado). |
| push_tokens | Vetor de objetos com app_id e token string. Como opção, você pode fornecer um device_id para o dispositivo ao qual esse token está associado, por exemplo, [{"app_id": App Identifier, "token": "abcd", "device_id": "optional_field_value"}]. Se um device_id não for fornecido, um será gerado aleatoriamente. |
| subscription_groups | Vetor 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” (inscrito) e “unsubscribed” (cancelado inscrição). |
| time_zone | (string) Nome do fuso horário do banco de dados de fuso horário da IANA (por exemplo, “America/New_York” ou “Eastern Time (US & Canada)”). Somente os valores válidos de fuso horário são definidos. |
Hash contendo qualquer um dos seguintes itens: id (inteiro), screen_name (string, identificador do X (antigo Twitter)), followers_count (inteiro), friends_count (inteiro), statuses_count (inteiro). |
Os valores de idioma que são explicitamente definidos por meio dessa API têm precedência sobre as informações de localização que o Braze recebe automaticamente do dispositivo.
Exemplo de solicitação de atribuição de usuário
Este exemplo contém quatro objetos de atribuição de usuário, de um total de 75 objetos de atribuição permitidos por chamada de API.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
POST https://YOUR_REST_API_URL/users/track
Content-Type: application/json
Authorization: Bearer YOUR-REST-API-KEY
{
"attributes" : [
{
"external_id" : "user1",
"first_name" : "Jon",
"has_profile_picture" : true,
"dob": "1988-02-14",
"music_videos_favorited" : { "add" : [ "calvinharris-summer" ], "remove" : ["nickiminaj-anaconda"] }
},
{
"external_id" : "user2",
"first_name" : "Jill",
"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" : "Alice",
"has_profile_picture" : false
},
{
"external_id": "user3",
"subscription_groups" : [{"subscription_group_id" : "subscription_group_identifier", "subscription_state" : "subscribed"}]
}
]
}
Migração de tokens por push
Se você estava enviando notificações por push antes de integrar o Braze, seja por conta própria ou por meio de outro provedor, a migração de token por push permite que você continue enviando notificações por push aos seus usuários com tokens por push registrados.
Migração automática por meio do SDK
Depois de integrar o Braze SDK, os tokens por push dos usuários com aceitação são migrados automaticamente na próxima vez que eles abrirem o aplicativo. Até lá, não é possível enviar notificações por push a esses usuários por meio do Braze.
Como alternativa, é possível migrar seus tokens por push manualmente, o que permite reengajar seus usuários mais rapidamente.
Considerações sobre o token da Web
Devido à natureza dos tokens por push da Web, certifique-se de considerar o seguinte ao implementar o push para a Web:
| Considerações | Informações |
|---|---|
| Trabalhadores de serviços | 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, isso pode levar à expiração dos tokens por push para seus usuários. |
| Tokens expirados | Se um usuário não tiver iniciado uma sessão da Web em 60 dias, seu token por push expirará. Como o Braze não pode migrar tokens por push expirados, você deve enviar um push primer para reengajá-los. |
Migração manual por meio da API
A migração manual de token por push é o processo de importação dessas chaves criadas anteriormente para sua plataforma Braze por meio da API.
Migre programaticamente os tokens do iOS (APNs) e do Android (FCM) para sua plataforma usando o endpointusers/track . É possível migrar tanto usuários identificados (usuários com um ID externo associado) quanto usuários anônimos (usuários sem um ID externo).
Especifique o endereço app_id do seu aplicativo durante a migração do token por push para associar o token por push apropriado ao aplicativo apropriado. 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. Confira se está usando a plataforma correta app_id.
Não é possível migrar tokens por push da web por meio da API. Isso ocorre porque os tokens por push da Web não estão em conformidade com o mesmo esquema de outras plataformas.
Se estiver tentando migrar tokens por push da Web 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 da API, recomendamos que você integre o SDK e permita que sua base de tokens seja preenchida naturalmente.
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 do usuário attributes.
Por exemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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, um external_id nem sempre está disponível. Nessa circunstância, defina o sinalizador push_token_import como true e especifique os valores app_id e token. O Braze cria um perfil de usuário temporário e anônimo para cada token para ativar a possibilidade de continuar a enviar mensagens a essas pessoas. Se o token já existir na Braze, a solicitação será ignorada.
Por exemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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 inicia a versão do seu app habilitada para o Braze, o Braze move automaticamente o token por push importado para o perfil de usuário do Braze e limpa o perfil temporário.
O Braze verifica uma vez por mês para encontrar qualquer 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, o Braze excluirá o perfil. No entanto, se o perfil anônimo ainda tiver um token por push, o que sugere que o usuário real ainda não registrou o dispositivo com o referido token por push, o Braze não fará nada.
Importação de tokens por push do Android
As considerações a seguir se aplicam apenas a apps Android. Os apps iOS não exigem essas etapas porque essa plataforma tem apenas uma estrutura para exibição de push, e as notificações por push são renderizadas imediatamente, desde que o Braze tenha os tokens e certificados de push necessários.
Se for necessário enviar notificações por push do Android aos seus usuários antes que a integração do SDK do Braze seja concluída, use pares de valores-chave para validar as notificações por push.
Você deve ter um receptor para manipular e exibir cargas úteis push. Para notificar o receptor da carga útil do push, adicione os pares de valores-chave necessários à campanha push. Os valores desses pares dependem do parceiro de push específico que você usou antes do Braze.
Para alguns provedores de notificações por push, o Braze precisa achatar os pares de valores-chave para que possam ser interpretados adequadamente. Para achatar pares de valores-chave para um app Android específico, entre em contato com o gerente de sucesso do cliente.
Editar esta página no GitHub