Descripción general
El Contenido dinámico le permite personalizar mensajes a escala, sin crear versiones separadas para cada audiencia. Ya sea que esté enviando mensajes multiidioma o adaptando contenido por región o campaña, el Contenido dinámico le permite definir un mensaje que se ajusta automáticamente para cada usuario. Puede hacer esto cargando un archivo CSV o usando programáticamente nuestras APIs de plantillas con datos que contienen variaciones de contenido y referenciando esos valores en su mensaje usando Sintaxis Liquid. Cuando se envía un mensaje, OneSignal extrae el contenido apropiado para cada usuario según sus Etiquetas de datos. El Contenido dinámico funciona en Push, Correo electrónico y SMS, lo que lo hace ideal para:- Flujos de incorporación o marketing multiidioma
- Promociones específicas por región o segmento
- Personalización impulsada por datos de campañas externas
- Personalización a escala – Entregue experiencias personalizadas sin crear y administrar docenas de variantes de mensajes.
- Soporte multiidioma – Escriba un mensaje que se muestre automáticamente en el idioma preferido de cada usuario.
- Segmentación dinámica – Cambie el contenido del mensaje según las propiedades del usuario como idioma, región, plan o etiquetas personalizadas como campaign_id.
- Colaboración sin fricción – Permita que traductores o equipos no técnicos creen y editen el contenido del mensaje directamente en archivos CSV, sin necesidad de inicio de sesión en OneSignal.
- Compatibilidad entre canales – Use la misma lógica CSV en campañas de Push, Correo electrónico y SMS.
- Anuncios de eventos por país o ciudad
- Notificaciones push personalizadas basadas en ID de campaña o historial de compras
- Prueba de múltiples líneas de asunto o mensajes en grupos de usuarios
Configuración de Contenido dinámico
Cree un nuevo mensaje o plantilla. Desde el panel: Seleccione Dynamic Content.- Cargue un archivo CSV que mapee el contenido del mensaje a las Etiquetas de datos.
dynamic_content.
- Gran solución si su contenido dinámico cambia con frecuencia.

Botón de Dynamic Content que se encuentra en el editor de creación de push.
Formatee su contenido
Puede comenzar con un archivo en blanco o elegir una de las plantillas proporcionadas:- Multi-language
- Content personalization

Opciones de plantilla CSV proporcionadas por OneSignal.
Requisitos de CSV
- El tamaño del archivo debe ser inferior a
200 KB - Encabezados de columna:
- Solo alfanuméricos
- Use guiones bajos (
_) en lugar de espacios - Evite caracteres especiales
- Asegure la codificación UTF-8 en su editor de hojas de cálculo
- Multi-language Example
- Content Personalization Example
subscription.language a diferentes traducciones por sección.
Similar a una fórmula VLOOKUP en Excel, coincidimos los atributos del usuario con el contenido correspondiente del CSV.
Referenciar Contenido dinámico en mensajes
Para mostrar contenido personalizado desdedynamic_content, use esta sintaxis Liquid.
file_name: Nombre del archivo CSV (sin.csv).section_name: Valor en la primera columna de la filadata_tag_or_property: Encabezado de columna que coincide con una Etiqueta de datos o propiedad de suscripción
Contenido de respaldo
Agregar contenido de respaldo evitará que los usuarios reciban contenido en blanco. Garantiza que su mensaje se renderice cuando:- un usuario no tiene una etiqueta o propiedad coincidente.
- un usuario tiene una etiqueta o propiedad que no está disponible en
dynamic_content.
El usuario no tiene una etiqueta o propiedad coincidente
Sisubscription.language no existe, referencie la columna predeterminada de dynamic_content en su lugar.
El usuario tiene una etiqueta o propiedad que no está disponible en dynamic_content
Si subscription.language existe en una suscripción, pero no en dynamic_content, referencie la columna predeterminada en su lugar.
Ejemplos
Correo electrónico multiidioma
Usetranslations.csv para localizar su correo electrónico:
{{dynamic_content.translations.section_1[subscription.language]}}{{dynamic_content.translations.section_2[subscription.language]}}

El ejemplo muestra cómo agregar la sintaxis liquid para el ejemplo multiidioma.
Mensaje push personalizado
Usecontent_personalization_template.csv para mensajes push específicos del usuario. La etiqueta campaign_id de cada usuario determina qué fila usar.
campaign_id. En el momento del envío, OneSignal usa el valor campaign_id del usuario para seleccionar la fila coincidente en su CSV.Formato CSV (filas codificadas por campaign_id)
-
La primera columna (
campaign_id) es la clave de fila que debe coincidir con el valor de la etiquetacampaign_iddel usuario. -
Las otras columnas (
title,message,url) son los campos que insertará en el push. -
Incluya una fila
defaultpara que los valores sin etiquetar o desconocidos aún rendericen contenido válido.
Cómo el Liquid se mapea al CSV
-
content_personalization_template→ el nombre del archivo CSV (omita.csv). -
[campaign_id]→ selecciona la fila cuyo valor de primera columna es igual a la etiquetacampaign_iddel usuario. -
.title/.message/.url→ devuelve la columna elegida de esa fila.
Ejemplo de respaldo (recomendado)
campaign_id, title). Si debe usar espacios o caracteres especiales, acceda con notación hash: 
El ejemplo muestra cómo agregar la sintaxis liquid para el ejemplo de personalización de contenido.
Probar y previsualizar
Crear un CSV de prueba
- Columnas:
email,language
- Columnas:
external_id,campaign_id

Ejemplo de CSV para cargar y crear segmento de probadores de correo electrónico.
+ en correos electrónicos para probar múltiples variaciones: username+test@example.com
Ejemplo de CSV para cargar y crear segmento de probadores con external_id y la etiqueta campaign_id.
Cargar su segmento de prueba

Cree un segmento de sus probadores para repetir según sea necesario.
Ver el mensaje
dynamic_content no se está renderizando, consulte Contenido de respaldo
El ejemplo muestra el correo electrónico enviado con Contenido dinámico.

El ejemplo muestra el push enviado con Contenido dinámico.
Consideraciones de uso
Cuándo usar Contenido dinámico vs. Datos personalizados
- Use Contenido dinámico para idiomas diversos o bloques de mensajes personalizados.
- Use Datos personalizados para personalización en línea simple en un solo idioma.
Editar plantillas
Vuelva a cargar CSVs o use la propiedaddynamic_content de la Update Template API para actualizar.