Skip to main content
Notifica a los usuarios cuando ocurre algo que los involucra: un me gusta, una respuesta, un seguimiento, un mensaje entrante o un evento competitivo en un juego. Estas notificaciones impulsan el re-engagement incluso cuando los usuarios no están activos actualmente en tu aplicación.
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:
Mantén los payloads de custom_data por debajo de 2KB. El campo custom_data tiene un límite de tamaño estricto. Enviar payloads grandes — listas completas de conversaciones, arreglos de clasificaciones, imágenes en base64 o HTML — arriesga truncamiento o rechazo. Para contenido enriquecido, pasa un identificador (por ejemplo, digest_id o summary_url) y haz que el dispositivo del destinatario obtenga el payload completo desde tu backend al tocar la notificación. Consulta Personaliza mensajes con custom_data de la API para los detalles del límite de tamaño y los patrones de iteración de arreglos.

Notificaciones de actividad social

Envía una notificación push cuando un usuario esté involucrado en una acción social. Usa custom_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 custom_data:Encabezado:
Liquid
Mensaje:
Liquid
Imagen (opcional, muestra el avatar del remitente):
Liquid
Guarda la plantilla y anota su template_id.
3

Llama a la API Create Message

Desde tu backend, envía la notificación al destinatario:
JSON
OneSignal renderiza la plantilla al momento del envío usando los valores de 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.
Usa filtros | default: en cada marcador de posición Liquid para que el mensaje siga leyéndose de forma natural si falta un campo. Por ejemplo: {{ message.custom_data.sender_name | default: "Someone" }}. Consulta Usar sintaxis Liquid para más filtros.
Requisitos de URL para avatares e imágenes. La URL de sender_avatar (y cualquier otra imagen de notificación) debe ser:
  • HTTPS — iOS rechaza las URLs HTTP.
  • Accesible públicamente — APNs y FCM no pueden enviar solicitudes autenticadas.
  • Menor a ~1 MB — el límite de iOS es 10 MB, pero las ventanas de entrega prácticas favorecen recursos más pequeños.
  • Servida con el encabezado Content-Type correctoimage/jpeg, image/png, etc.
Alojar desde un CDN con encabezados de caché es la configuración más segura.

Limita las acciones de alto volumen

Una publicación viral puede generar miles de eventos de like 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:
  1. Acumula conteos en tu backend (por ejemplo, un contador de Redis identificado por destinatario + publicación).
  2. 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.”
  3. Si llegan más me gusta después del resumen, inicia una ventana nueva — no vuelvas a enviar un push inmediatamente.
La misma lógica aplica a comentarios, seguimientos y reacciones. Consulta Limitación de velocidad para los límites de velocidad del lado de OneSignal si tu backend no puede hacer debounce.

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:
  1. Cuando llega el primer mensaje, inicia un temporizador (por ejemplo, 60 segundos).
  2. Si llega otro mensaje antes de que el temporizador termine, reinícialo.
  3. Cuando el temporizador termina sin nuevos mensajes, envía un solo push resumiendo 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.
3

Envía la notificación push

Envía un push al Usuario B con un enlace profundo a la conversación:
JSON
Tu aplicación lee 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.
Agrupa las notificaciones por conversación de forma nativa. El debouncing en el backend reduce cuántas notificaciones se disparan, pero iOS y Android también pueden colapsar visualmente múltiples notificaciones en un solo hilo. Establece un identificador de hilo o de colapso (por ejemplo, el conversation_id) para que el SO agrupe los mensajes del mismo chat. Consulta Agrupación de notificaciones.
Actualiza el conteo de la insignia con cada mensaje nuevo. La mayoría de las aplicaciones de chat quieren que la insignia de iOS/Android refleje el total de mensajes no leídos en todas las conversaciones. Pasa el conteo de no leídos a través de la API en cada push para que la insignia se mantenga precisa incluso cuando un usuario borra una notificación pero tiene otras pendientes. Consulta Insignias.
Privacidad en la pantalla de bloqueo. iOS muestra el contenido de la notificación en la pantalla de bloqueo de forma predeterminada — incluyendo la vista previa del mensaje (“Anna: ‘Hey, you around?’”). Para aplicaciones de mensajería con contenido sensible (salud, finanzas, citas, profesional), considera enviar una vista previa genérica (“Nuevo mensaje de Anna”) y deja que los usuarios opten por vistas previas completas a través de la configuración dentro de tu aplicación.

Juegos: alertas competitivas y sociales

Los juegos competitivos se benefician de alertas urgentes que crean sensación de urgencia. Usa custom_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:
Liquid
Mensaje:
Liquid
Guarda la plantilla y anota su template_id.
3

Envía la notificación

Llama a la API Create Message desde el backend de tu juego:
JSON
La 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.
Respeta las horas de silencio para alertas no urgentes. Los pushes de ataque a la base a las 3 AM hora local son un conocido impulsor de bajas. Divide tus alertas de juego en dos niveles:
  • Críticas en el tiempo (guerra de gremios que comienza en 30 minutos, base bajo ataque en este momento) — envía inmediatamente sin importar la hora local.
  • No críticas en el tiempo (las tropas están listas, recompensa diaria disponible, resumen semanal) — usa Entrega inteligente u Hora personalizada por zona horaria para que lleguen en horas de vigilia en la zona horaria local del jugador.
La mayoría de las bajas de alertas de juegos provienen de la segunda categoría enviándose en el momento equivocado, no de la primera categoría siendo demasiado frecuente.
Considera Live Activities para eventos en curso. Para partidas, incursiones o eventos en vivo en curso en iOS 16.1+, una Live Activity en la pantalla de bloqueo y la Dynamic Island suele ser una mejor experiencia que notificaciones push repetidas actualizando el mismo contexto. Usa Live Activities para el estado en vivo (“quedan 23 minutos, vas #4”) y reserva el push para momentos de hitos o de finalización.

Más ejemplos de alertas de juegos

Mensaje de plantilla:
Liquid
Solicitud a la API:
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 de custom_data con una plantilla de Email o SMS.
Actividad socialMejor para acciones de alto valor como menciones y respuestas directas.
JSON
Ejemplo de plantilla de email (asunto):
Liquid
Mensajes directosMejor como un resumen diario de conversaciones no leídas en lugar de alertas por mensaje.
JSON
Ejemplo de plantilla de email (asunto):
Liquid
Ejemplo de plantilla de email (cuerpo, iterando sobre el arreglo de conversaciones):
Liquid
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.
JSON
Ejemplo de plantilla de email (asunto):
Liquid
Da a los usuarios control sobre sus preferencias de respaldo. Un opt-in como “Notifícame por SMS si pierdo un mensaje” ayuda a prevenir mensajes no deseados para usuarios que intencionalmente tienen push deshabilitado.

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 de external_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 campos headings 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.