Localização
A Braze coleta automaticamente informações de localidade dos dispositivos dos usuários após a integração do SDK. O local contém o idioma e um identificador de região. Esta informação está disponível na ferramenta de segmentação da Braze em País e Idioma.
Visite os seguintes recursos iOS e Android/FireOS para obter detalhes técnicos sobre como o local é recebido com base na sua plataforma.
Para empresas com clientes em muitos países, lidar com a localização no início da sua jornada com a Braze pode economizar tempo e recursos para suas empresas. O artigo a seguir lista os benefícios de diferentes abordagens de orquestração em campanhas e canvas e também lista diferentes maneiras que os usuários podem lidar com a personalização em seu envio de mensagens.
- Opções de orquestração
- Opções de personalização
Orquestração
Campanha interrompida
Na abordagem “um modelo para todos”, a localização é aplicada a um único modelo na Braze usando o Liquid. Após o envio, o dashboard fornece análise de dados agregada da campanha. O engajamento no nível do usuário pode ser medido usando funis de segmento personalizados, por exemplo, combinando os filtros País e Campanha Recebida.
Vantagens | Considerações | |
---|---|---|
Abordagem centralizada - Tempo de construção de e-mail reduzido, sem necessidade de construir um e-mail várias vezes |
Construção de relatórios manual O relatório da campanha mostra métricas agregadas em vez de métricas por país Precisa testar completamente o Liquid para garantir que ele preencha conforme o esperado Dependendo de como você obtém o valor do país ou de quantos condados você configurou, pode ser complicado testar cada país Mais difícil agendar envios para horários específicos em diferentes fusos horários Mais difícil de usar se você quiser enviar conteúdo separado por país. |
|
-– | -– | -– |
A abordagem “um modelo por país” separa a modelagem em diferentes locais de envio. Após o envio, o dashboard relata a análise de dados com base em cada país separadamente, e quaisquer eventos de nível de usuário Currents downstream também estarão vinculados a uma campanha específica.
- Os modelos se beneficiam da implementação de tags para fins de manutenção e rastreamento.
- As campanhas podem herdar as configurações do mesmo Braze modelo e Blocos de Conteúdo (como modelos de e-mail que contêm Liquid).
- Campanhas e modelos pré-existentes podem ser duplicados para permitir um tempo mais rápido para obter valor.
Vantagens | Considerações |
---|---|
Escalável para vários locais Relatórios sobre receita por país dentro da Braze (como por campanha) Flexibilidade se houver conteúdo drasticamente diferente por país |
- Requer estruturação estratégica Mais esforço de construção necessário (como campanhas separadas para cada país) |
Canva
Na abordagem “uma jornada para todos”, a localização é tratada dentro de Canva Journeys e Liquid para definir o envio de mensagens para cada usuário.
Depois que um canva é enviado, o dashboard fornece análise de dados do canva agregada, enquanto o engajamento ao nível do usuário pode ser medido através de funis de segmento personalizados, como a combinação de país e filtros de etapa do canva recebida.
Vantagens | Considerações |
---|---|
Abordagem centralizada - Tempo de construção de e-mail reduzido - não há necessidade de construir um e-mail várias vezes. |
Construção de relatórios manual - O relatório de canva mostra métricas agregadas em vez de métricas por país Precisa testar completamente o Liquid para garantir que ele preencha conforme o esperado Dependendo de como você obtém o valor do país ou de quantos condados você configurou, pode ser complicado testar cada país Mais difícil agendar envios para horários específicos em diferentes fusos horários Mais difícil de usar se você quiser enviar conteúdo separado por país. |
Na abordagem “uma jornada por país”, o canva journey builder oferece a flexibilidade de criar jornadas de usuário através de múltiplos componentes de canva. Esses componentes podem ser duplicados no nível do componente e da jornada geral.
A localização pode ser alcançada através dos seguintes métodos:
- Separe canvas por país, isso garante que as jornadas complexas do usuário sejam definidas no topo do funil usando filtros de público
- Jornadas de usuário sob medida por país, a implementação de caminhos do público para segmentar intuitivamente os usuários em grande escala para cada jornada, criando threads de mensagens separadas para cada país em um único canva
Uma vez enviado, o dashboard fornece análise de dados dinâmica por país e dentro de eventos Currents no nível do usuário com base na localização atual do cliente.
Vantagens | Considerações |
---|---|
- Relatórios sobre receita por país dentro da Braze (como por canva, variante ou etapa) Flexibilidade se houver conteúdo drasticamente diferente por país Pode adicionar outros canais como parte da jornada no futuro |
- Requer estruturação estratégica Mais esforço de construção necessário (como etapas de mensagem separadas para cada país) - O canva pode se tornar grande e difícil de ler se você tiver jornadas personalizadas e complexas para cada país em um único canva. |
Personalização
Opção 1: Entrada manual
A entrada manual exige que você cole manualmente seu conteúdo no corpo da sua mensagem e use Liquid para condicionalmente exibir o idioma correto para o destinatário.
1
2
3
4
5
6
7
8
9
{% if ${language} == 'en' %}
This is a message in English from Braze!
{% elsif ${language} == 'es' %}
Este es un mensaje en español de Braze !
{% elsif ${language} == 'zh' %}
这是一条来自Braze的中文消息。
{% else %}
This is a message from Braze! This will go to anyone who does not match the other specified languages!
{% endif %}
Isso pode ser feito usando o formato acima ou pelo dashboard da Braze:
- Ao compor sua mensagem, selecione o botão Idioma para gerar lógica condicional Liquid para cada idioma que você selecionar.
- Depois de inserir seu texto modelado em sua mensagem, digite variações diferentes para cada idioma. Para cada campo com modelo, você deve inserir as variações após o segmento entre colchetes do modelo. A variação deve corresponder ao código de idioma referenciado entre colchetes antes dele.
- Teste sua mensagem antes de enviá-la inserindo o ID de um usuário ou e-mail para verificar como uma mensagem apareceria para um indivíduo dependendo de seu idioma.
Sempre recomendamos incluir uma {% else %}
declaração no seu envio de mensagens. Embora a maioria dos usuários veja o envio de mensagens em seu idioma específico, o texto será visível para aqueles que:
- Não tem um idioma selecionado
- Tenha um idioma que a Braze não suporte
- Tenha um dispositivo onde o idioma é indetectável
Opção 2: Blocos de conteúdo
Braze Blocos de Conteúdo são blocos de conteúdo reutilizáveis. Quando um bloco é alterado, todas as referências a esse bloco são alteradas. Por exemplo, atualizações em um cabeçalho ou rodapé de e-mail serão refletidas em todos os e-mails ou para abrigar traduções. Esses blocos também podem ser criados e atualizados usando a API REST, e os usuários podem fazer upload de traduções programaticamente.
Ao criar uma campanha no dashboard, os Blocos de Conteúdo podem ser referenciados usando a tag {{content_blocks.${name_of_content_block}}}
. Esses blocos podem conter todas as traduções dentro da lógica condicional para cada idioma, como mostrado na opção 1, ou um bloco separado para cada idioma pode ser usado.
Os blocos de conteúdo também podem ser utilizados como um processo de gerenciamento de tradução, onde o conteúdo que requer tradução é armazenado dentro de um bloco de conteúdo, buscado, traduzido e, em seguida, atualizado:
- Crie manualmente um bloco de conteúdo no dashboard com a tag “Necessita tradução”.
- Seu serviço realiza uma busca noturna de todos os Blocos de Conteúdo usando o
/content_blocks/list
endpoint. - Seu serviço busca detalhes em cada bloco de conteúdo através do
/content_blocks/info
endpoint para ver quais blocos estão marcados para tradução. - Seu serviço de tradução traduz o corpo de todos os Blocos de Conteúdo “Necessita tradução”.
- Seu serviço atinge o
/content_block/update
endpoint para atualizar o conteúdo traduzido e atualizar a tag para “Tradução Completa”.
Opção 3: Catálogos
Catálogos permitem acessar dados de objetos JSON importados via API e arquivos CSV para enriquecer suas mensagens, semelhante a atributos personalizados ou propriedades de eventos personalizados através do Liquid. Por exemplo:
Crie um catálogo através da seguinte 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
curl --location --request POST 'https://your_api_endpoint/catalogs' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
"catalogs": [
{
"name": "translations",
"description": "My localization samples",
"fields": [
{
"name": "id",
"type": "string"
},
{
"name": "context",
"type": "string"
},
{
"name": "language",
"type": "string"
},
{
"name": "body",
"type": "string"
}
]
}
]
}'
Adicione itens através da seguinte 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
31
curl --location --request POST 'https://your_api_endpoint/catalogs/translations/items' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
"items": [
{
"id": "1",
"context": "1",
"language": "en",
"body": "Hey"
},
{
"id": "2",
"context": "1",
"language": "es",
"body": "Hola"
},
{
"id": "3",
"context": "1",
"language": "pt",
"body": "Oi"
},
{
"id": "4",
"context": "1",
"language": "de",
"body": "Hallo"
}
]
}'
Crie um CSV no seguinte formato:
id | contexto | language | corpo |
---|---|---|---|
1 | 1 | en | Olá |
2 | 1 | es | Olá |
3 | 1 | pt | Oi |
4 | 1 | de | Olá |
5 | 2 | en | Olá |
6 | 2 | es | Olá |
7 | 2 | pt | Oi |
8 | 2 | de | Olá |
9 | 3 | en | Olá |
10 | 3 | es | Olá |
11 | 3 | pt | Oi |
12 | 3 | de | Olá |
Esses itens de catálogo podem ser referenciados usando personalização, mostrado abaixo, ou seleções que permitem criar grupos de dados.
1
2
3
4
{% catalog_items translations 1 %}
{{items[0].body}}
//returns “Hey”
Opção 4: Adicionar um local
Adicione e use locales no seu envio de mensagens para atingir usuários em diferentes idiomas, tudo dentro de uma única campanha de e-mail ou canva.
Este recurso está atualmente em acesso antecipado. Entre em contato com o gerente da sua conta Braze se estiver interessado em participar do acesso antecipado.
Opção 5: Parceiros de localização
Muitos parceiros da Braze oferecem soluções de localização, incluindo Transifex e Crowdin. Normalmente, os usuários usam a plataforma junto com uma equipe interna e uma agência de tradução. Essas traduções são então carregadas lá e são então acessíveis via API REST. Esses serviços também costumam aproveitar Conteúdo Conectado, permitindo que os usuários obtenham as traduções via API.
Por exemplo, as seguintes chamadas de Conteúdo Conectado chamam Transifex e Crowdin para buscar uma tradução, aproveitando {{${language}}}
para identificar a tradução correta para um determinado usuário. Esta tradução é então salva no bloco JSON “strings” e referenciada.
1
2
{% connected_content https://www.transifex.com/api/2/project/example/resource/example/translation/{{${language}}}/strings :basic_auth semc :save strings %}
{{strings[0].translation}}
1
2
{% connected_content https://api.crowdin.com/api/project/braze-test/export-file?key=you_api_key&language={{${language}}}&file=test.json&export_translated_only=1 :save response %}
{{response.value_1}}
Opção 6: Traduções em uma planilha pública do Google
Outra opção de tradução inclui armazenar traduções no Google Sheets; muitas vezes, isso pode ser tratado em parceria com uma agência de tradução. Traduções armazenadas aqui podem ser consultadas usando o Conteúdo Conectado. A tradução relevante para um usuário com base em seu idioma será então inserida no corpo da campanha no momento do envio.
A API do Google Sheets tem um limite de 500 solicitações por 100 segundos por projeto. As chamadas de Conteúdo Conectado podem ser armazenadas em cache, mas essa solução não é escalável para uma campanha de alto tráfego.
Opção 7: Planilha do Google em uma API JSON via SheetDB
Esta opção fornece um método alternativo de transformar Google Sheets em objetos JSON consultados via Connected Content. Ao transformar uma planilha em uma API JSON via SheetDB, você pode escolher entre vários níveis de inscrição dependendo da cadência das chamadas da API.
A estrutura da planilha segue as etapas da opção 4, mas o SheetDB também fornece filtros adicionais para consulta dos objetos.
Alguns usuários podem preferir implementar o SheetDB com menos dependências de Liquid e Connected Block, implementando o método de busca do SheetDB em chamadas de solicitação GET para filtrar os objetos JSON com base no {{${language}}}
Liquid tag para retornar automaticamente os resultados para um único idioma, em vez de construir grandes blocos condicionais.
Etapa 1: Formate a planilha do Google
Primeiro, construa a planilha do Google para que os idiomas sejam objetos diferentes:
linguagem | título1 | corpo1 | título2 | corpo2 |
Ei | 1 | Ei2 | 5 | |
es | Olá | 2 | Olá2 | 6 |
pt | Oi | 3 | Oi2 | 7 |
de | Olá | 4 | Hallo2 | 8 |
Etapa 2: Use a linguagem Liquid tag em uma chamada de Conteúdo Conectado
Em seguida, implemente a {{${language}}}
Liquid tag dentro de uma chamada de Conteúdo Conectado. Observe que o SheetDB gerará automaticamente o sheet_id
ao criar a planilha.
1
{% connected_content https://sheetdb.io/api/v1/[sheet_id]/search?language={{${language}}} :save result%}
Etapa 3: Modele suas mensagens
Por fim, use Liquid para modelar suas mensagens:
1
2
{{result[0].title1}} //returns “Hey”
{{result[0].title2}} //returns “Hey2”
Considerações
- O campo
{{${language}}}
deve ser definido para todos os usuários; caso contrário, um bloco condicional Liquid deve ser apresentado como um manipulador de fallback para usuários sem um idioma. - A modelagem de dados no Google Sheets deve seguir uma vertical orientada por linguagem diferente, em vez de ter objetos de mensagem.
- SheetDB oferece uma conta gratuita limitada e várias opções pagas que devem ser consideradas com base na sua estratégia de campanha.
- Chamadas de Conteúdo Conectado podem ser armazenadas em cache. Recomendamos medir a cadência projetada das chamadas da API e investigar uma abordagem alternativa de chamar o endpoint principal do SheetDB em vez de usar o método de busca.