Pular para o conteúdo principal

Visão geral

O OneSignal fornece várias maneiras de personalizar o conteúdo de mensagens em escala. Este guia se concentra no uso do recurso de Conteúdo Dinâmico com upload CSV encontrado no painel do OneSignal para push, email e SMS. Principais benefícios:
  • Use um CSV para personalizar em escala – Uma mensagem, experiências personalizadas para todos
  • Suporte multi-idioma – Troca automática de idioma por usuário
  • Segmentação dinâmica – O conteúdo se adapta às propriedades do usuário (idioma, região, ID de campanha)
  • Colaboração em equipe – Usuários não técnicos editam conteúdo em arquivos CSV
  • Compatibilidade cross-channel – Reutilize a lógica CSV entre canais
Casos de uso comuns:
  • Onboarding ou marketing multi-idioma
  • Promoções específicas por região
  • Anúncios de eventos por localização
  • Personalização baseada em campanha

Etapas de configuração do Conteúdo Dinâmico com CSV

Referência rápida:
  1. Crie um arquivo CSV com suas variações de conteúdo.
  2. Mapeie os dados CSV para a mensagem usando a propriedade dynamic_content na sintaxe Liquid.
  3. Crie uma nova mensagem ou template no painel do OneSignal.
  4. Selecione o botão Conteúdo Dinâmico ou Personalização.
  5. Faça upload do arquivo CSV e envie a mensagem.

Requisitos e configuração do CSV

  • Tamanho do arquivo: Menos de 200 KB
  • Cabeçalhos de coluna:
    • Reserve o primeiro cabeçalho de coluna para a chave de tag ou deixe em branco para referenciar seções
    • Somente caracteres alfanuméricos e underscores
    • Use underscores (_) em vez de espaços
  • Codificação: UTF-8
Comece com um CSV em branco ou use um template fornecido. Os templates são fornecidos ao selecionar o botão Conteúdo Dinâmico ou Personalização nos editores de mensagem e template.
Templates disponíveis:
  • Multi-idioma – Localize o conteúdo por idioma
  • Personalização de conteúdo – Personalize o conteúdo por Tags de Dados

Exemplos de CSV

Este guia usará os seguintes dados CSV de exemplo.
  • Mapeie os cabeçalhos de coluna para seus códigos de idioma suportados.
  • Adicione suas traduções a cada linha para cada código de idioma.
  • Se você tiver várias seções (como em um email), designe a primeira coluna como o nome da seção.
Neste exemplo:
  • Temos 3 idiomas: inglês, espanhol e francês.
  • Temos 2 seções: “section_1” e “section_2”.

Mapear dados CSV para o conteúdo da mensagem

Usando sintaxe Liquid, referencie os dados CSV em sua mensagem usando a propriedade dynamic_content:
{{dynamic_content.file_name.message_component[user_property]}}
ou
{{dynamic_content.file_name[user_property].message_component}}
Parâmetros:
  • dynamic_content – O nome da propriedade usado para referenciar os dados CSV
  • file_name – Nome do arquivo CSV (sem extensão .csv)
  • message_component – O componente de mensagem específico que você deseja personalizar. Este é o texto estático no cabeçalho de coluna CSV ou na primeira linha.
  • user_property – A propriedade de usuário que você deseja referenciar.
Conteúdo de fallback: Sempre use fallbacks de string default codificados para garantir que as mensagens sejam renderizadas se a busca CSV ou o Conteúdo Dinâmico falhar.
Sintaxe Liquid para o fallback
{{ dynamic_content.my_template.header[user.language] | default: "Bem-vindo à nossa última atualização" }}
Isso significa que se a busca CSV ou o Conteúdo Dinâmico falhar, a mensagem renderizará o texto de fallback "Bem-vindo à nossa última atualização". Isso garante:
  • O Conteúdo Dinâmico é usado quando disponível
  • Uma mensagem codificada aparece se o Conteúdo Dinâmico falhar
  • Os usuários nunca recebem conteúdo em branco
translations.csv
,en,es,fr
section_1,Hello,Hola,Bonjour
section_2,Thanks for shopping with us...,Gracias por comprar con nosotros...,Merci pour votre achat avec nous...
  • O file_name é translations.csv.
  • O message_component está nas linhas da primeira coluna section_1 e section_2.
  • O user_property é o cabeçalho de coluna correspondente ao código de idioma. Podemos referenciar isso no usuário com a propriedade user.language.
Sintaxe Liquid básica para a mensagem multi-idioma
{{dynamic_content.translations.section_1[user.language]}}
{{dynamic_content.translations.section_2[user.language]}}
(Recomendado) Sintaxe Liquid com fallback padrão para a mensagem multi-idioma
{% assign supported_langs = "en,es,fr,de" | split: "," %}
{% assign lang = user.language | default: "en" %}

{% unless supported_langs contains lang %}
  {% assign lang = "en" %}
{% endunless %}

{{ dynamic_content.translations.section_1[lang] | default: "Hello" }}
{{ dynamic_content.translations.section_2[lang] | default: "Thanks for shopping with us..." }}
Use Liquid com fallback default para atualizar linhas de assunto, preheaders, rótulos de botões e URLs.

Considerações de uso

Como posso testar o Conteúdo Dinâmico com CSV?

Recomendamos usar email para testar múltiplas variações da mensagem.
  • Você pode usar endereçamento + em emails para testar múltiplas variações: [email protected]
  • Configure tags seguindo os exemplos multi-idioma e de personalização de conteúdo acima.
  • Veja Import para mais informações sobre upload de múltiplos usuários e tags de dados.

Quando usar Conteúdo Dinâmico com CSV vs. outras opções de personalização

  • Use Conteúdo Dinâmico com CSV se você está enviando mensagens do painel e tem acesso a dados de usuário com um arquivo CSV.
  • Para outras opções de adicionar conteúdo dinâmico às mensagens, veja Personalização de Mensagem ou opções de Mensagens Multi-idioma.

Atualizando templates

Faça re-upload de CSVs via painel ou use a propriedade dynamic_content da API Update Template.

Caracteres especiais em chaves

Notação hash (para chaves não alfanuméricas):
{{ dynamic_content.file_name["!the_row!"]["&the_column&"] }}
Notação de ponto (para chaves padrão):
{{ dynamic_content.file_name.the_row.the_column }}

Artigos relacionados