OneSignal no está diseñado para comunicación en tiempo real. Las notificaciones push se usan mejor como respaldo cuando los usuarios no están activamente en la aplicación. Para mensajería in-app en tiempo real, usa la capa de mensajería existente de tu aplicación y activa notificaciones de OneSignal solo cuando el destinatario esté desconectado o inactivo.
Actividad social
Notifica a los usuarios cuando alguien les da me gusta, comenta, los menciona, los etiqueta o los sigue.
Mensajes directos
Alerta a los usuarios sobre nuevos mensajes entrantes con debouncing y enlaces profundos a la conversación.
Alertas de juegos
Envía eventos competitivos urgentes como ataques a la base, desafíos y actividad del gremio.
Requisitos previos
Antes de comenzar, asegúrate de tener:- El SDK de OneSignal instalado en tu aplicación. Consulta Configuración del SDK móvil o Configuración del SDK web.
- Un
external_idestablecido para cada usuario para que puedas segmentarlos por tu propio identificador. Consulta Usuarios y Alias. - Un backend que pueda detectar acciones sociales y llamar a la API de OneSignal. Consulta la Descripción general de la API REST.
- Plantillas creadas en el panel si planeas usar
custom_datapara personalización. Se requiere untemplate_idpara usarcustom_data.
Notificaciones de actividad social
Envía una notificación push cuando un usuario esté involucrado en una acción social. Usacustom_data para inyectar el nombre del remitente, su avatar y el contexto relevante en el mensaje al momento del envío. No se almacenan datos en OneSignal.
Acciones sociales comunes
Configuración
1
Detecta la acción en tu backend
Cuando ocurre una acción social, tu backend identifica al remitente y al destinatario, además de cualquier contexto relevante como el ID de la publicación o el contenido:
JSON
2
Crea una plantilla push
En el panel, ve a Messages > Templates > New Push Template. Usa sintaxis Liquid para referenciar los campos de Mensaje:Imagen (opcional, muestra el avatar del remitente):Guarda la plantilla y anota su
custom_data:Encabezado:Liquid
Liquid
Liquid
template_id.3
Llama a la API Create Message
Desde tu backend, envía la notificación al destinatario:OneSignal renderiza la plantilla al momento del envío usando los valores de
JSON
custom_data. El nombre y el avatar del remitente aparecen en la notificación sin almacenarse en OneSignal.4
Opcional: agrega respaldos por email y SMS
Para llegar a usuarios que tienen push deshabilitado o cuya notificación no fue entregada, consulta Respaldos por email y SMS más abajo.
Limita las acciones de alto volumen
Una publicación viral puede generar miles de eventos delike por segundo. No envíes un push por cada uno — eso inunda al destinatario y hace que tu aplicación sea silenciada o desinstalada. El patrón:
- Acumula conteos en tu backend (por ejemplo, un contador de Redis identificado por destinatario + publicación).
- Después de una ventana de silencio (10 minutos es un valor predeterminado razonable), envía un solo push de resumen: “A 12 personas les gustó tu publicación.”
- Si llegan más me gusta después del resumen, inicia una ventana nueva — no vuelvas a enviar un push inmediatamente.
Mensajes directos (usuario a usuario)
Notifica a un usuario cuando recibe un nuevo mensaje directo, y llévalo con un enlace profundo directamente a la conversación.Solo envía un push cuando el destinatario no esté activamente en el chat. Notificar a alguien que ya está leyendo la conversación crea una mala experiencia. Usa la lógica propia de tu aplicación para verificar si el destinatario está actualmente activo antes de activar una notificación. OneSignal no rastrea si un usuario está usando actualmente tu aplicación.
Configuración
1
Detecta cuándo se envía un mensaje y verifica la actividad
Cuando el Usuario A envía un mensaje al Usuario B, verifica si el Usuario B está actualmente activo en esa conversación. Si el Usuario B está desconectado o no está en la conversación, procede a enviar un push.
2
Evita enviar un push por cada mensaje
Si el Usuario A envía varios mensajes seguidos, espera un breve período después del último mensaje antes de activar una notificación. Así es como hacerlo en tu backend:
- Cuando llega el primer mensaje, inicia un temporizador (por ejemplo, 60 segundos).
- Si llega otro mensaje antes de que el temporizador termine, reinícialo.
- Cuando el temporizador termina sin nuevos mensajes, envía un solo push resumiendo el conteo de no leídos.
3
Envía la notificación push
Envía un push al Usuario B con un enlace profundo a la conversación:Tu aplicación lee
JSON
data.conversation_id al abrir la notificación y navega a la pantalla correcta. Consulta Enlaces profundos para la configuración específica por plataforma.4
Opcional: agrega respaldos por email y SMS
Para llegar a usuarios que tienen push deshabilitado o cuya notificación no fue entregada, consulta Respaldos por email y SMS más abajo.
Juegos: alertas competitivas y sociales
Los juegos competitivos se benefician de alertas urgentes que crean sensación de urgencia. Usacustom_data para que estas notificaciones se sientan específicas y personales. Una notificación que nombra al atacante o muestra conteos exactos de recursos es mucho más convincente que una alerta genérica.
Eventos competitivos comunes
Configuración
1
Detecta el evento del juego en tu backend
Cuando ocurre un evento competitivo, el backend de tu juego identifica al jugador afectado y captura el contexto relevante:
JSON
2
Crea una plantilla push
En el panel, crea una plantilla push con referencias Liquid:Encabezado:Mensaje:Guarda la plantilla y anota su
Liquid
Liquid
template_id.3
Envía la notificación
Llama a la API Create Message desde el backend de tu juego:La
JSON
url lleva al jugador con un enlace profundo directamente a la pantalla de defensa. El objeto data pasa contexto al manejador de notificaciones de tu aplicación para que pueda cargar el estado de batalla correcto.4
Opcional: agrega respaldos por email y SMS
Para llegar a jugadores que tienen push deshabilitado o cuya notificación no fue entregada, consulta Respaldos por email y SMS más abajo.
Más ejemplos de alertas de juegos
- Adelantamiento en la clasificación
- Evento de gremio
- Invitación a desafío
Mensaje de plantilla:Solicitud a la API:
Liquid
JSON
Respaldos por email y SMS
Agrega un respaldo por email o SMS a cualquier tipo de notificación para llegar a usuarios que tienen push deshabilitado o cuya notificación no fue entregada. Usa la API View Message para verificar una entrega confirmada o un clic. Si no se registra ninguno dentro de tu ventana de espera, envía un seguimiento usando el mismo enfoque decustom_data con una plantilla de Email o SMS.
- Email
- SMS
Actividad socialMejor para acciones de alto valor como menciones y respuestas directas.Ejemplo de plantilla de email (asunto):Mensajes directosMejor como un resumen diario de conversaciones no leídas en lugar de alertas por mensaje.Ejemplo de plantilla de email (asunto):Ejemplo de plantilla de email (cuerpo, iterando sobre el arreglo de conversaciones):Consulta Personaliza mensajes con custom_data de la API para la referencia completa de iteración de arreglos, incluyendo objetos anidados y renderizado condicional.JuegosMejor para resúmenes no urgentes como resúmenes semanales de clasificación, resultados de guerras de gremios o hitos desbloqueados.Ejemplo de plantilla de email (asunto):
JSON
Liquid
JSON
Liquid
Liquid
JSON
Liquid
Preguntas frecuentes
¿Puede OneSignal enviar notificaciones en tiempo real, como una aplicación de chat?
No. Las notificaciones push se entregan a través de la infraestructura de Apple (APNs) y Google (FCM), lo que introduce tiempos de entrega variables y sin garantías de entrega. Usa la capa de mensajería existente de tu aplicación para comunicación in-app en tiempo real y usa OneSignal como respaldo cuando el destinatario no esté activamente en la aplicación.¿Cómo evito notificar a un usuario que ya está en la aplicación?
OneSignal no rastrea si un usuario está actualmente activo en tu aplicación. Tu propia lógica de backend debe determinar si activar la notificación. Solo llama a la API de OneSignal cuando hayas confirmado que el destinatario está desconectado o no está en la pantalla relevante.¿Cómo evito múltiples notificaciones por secuencias rápidas de mensajes?
Agrega un breve retraso en tu backend antes de enviar una notificación. Cuando llega el primer mensaje, inicia un temporizador. Si llega otro mensaje antes de que termine, reinícialo. Cuando el temporizador termina, envía un solo push con el conteo de no leídos. OneSignal no consolida múltiples llamadas a la API automáticamente, por lo que si llamas a la API cinco veces, se envían cinco notificaciones.¿Se guarda custom_data en el perfil del usuario después de que se envía el mensaje?
No. custom_data es efímero y existe solo durante la solicitud a la API, usado para renderizar la plantilla al momento del envío. No se almacena en OneSignal y no puede reutilizarse en mensajes futuros ni en Journeys. Para datos de usuario persistentes, usa Etiquetas.
¿Puedo segmentar múltiples destinatarios en una sola llamada a la API?
Sí. Pasa múltiples valores deexternal_id en el arreglo include_aliases. Si cada destinatario necesita contenido personalizado diferente (por ejemplo, diferentes nombres de atacantes), usa el patrón de personalización masiva en custom_data. Consulta Personaliza mensajes con custom_data de la API para el enfoque completo. El límite exacto de destinatarios por llamada y los límites de velocidad están documentados en la referencia de la API Create Message — para audiencias muy grandes, la segmentación basada en segmentos es más eficiente que pasar miles de valores de external_id por llamada.
¿Necesito localizar los mensajes para usuarios internacionales?
Sí para cualquier audiencia que abarque varios idiomas. Los camposheadings y contents aceptan múltiples códigos de idioma (por ejemplo, { "en": "...", "es": "...", "fr": "..." }) y OneSignal selecciona la variante correcta según el idioma de cada suscripción. El mismo patrón aplica a los campos de plantilla. Consulta Mensajería multiidioma para la referencia completa, incluyendo el comportamiento del idioma de respaldo.
Páginas relacionadas
Personaliza mensajes con custom_data de la API
Inyecta datos dinámicos específicos del mensaje en plantillas usando custom_data y sintaxis Liquid.
Personalización de mensajes
Descripción general de todas las opciones de personalización en OneSignal, incluyendo Etiquetas, atributos de usuario y segmentación.
Enlaces profundos
Dirige a los usuarios a una pantalla específica de tu aplicación cuando tocan una notificación.
Crear un feed de actividad
Muestra un historial de alertas sociales dentro de tu aplicación usando la bandeja de notificaciones de OneSignal.
Plantillas
Crea y gestiona plantillas de mensajes reutilizables para push, email y SMS.
API Create Message
Referencia completa de la API para enviar mensajes con custom_data, segmentación y todos los campos disponibles.