Descripción general
Configurar notificaciones push para tu aplicación Unity usando OneSignal
Integrar notificaciones push en tu aplicación Unity es una manera poderosa de aumentar el compromiso y retención del usuario. El Unity SDK de OneSignal soporta dispositivos iOS (APNs), Android (FCM), Amazon (ADM) y Huawei, habilitando mensajería en tiempo real con mínimo esfuerzo. Ya sea que estés construyendo juegos móviles o aplicaciones interactivas, esta guía te ayuda a integrar OneSignal rápida y confiablemente.Requisitos
- Unity 2022.3 o más reciente
- Aplicación y plataforma de OneSignal configuradas
- macOS con Xcode 14+ (las instrucciones de configuración usan Xcode 16.2)
- Dispositivo con iOS 12+, iPadOS 12+, o simulador Xcode ejecutando iOS 16.2+
- Dispositivo o emulador Android 7.0+ con Google Play Store (Services) instalado
Configure su aplicación y plataforma de OneSignal
Configure su aplicación de OneSignal con las plataformas que admite — Apple (APNs), Google (FCM), Huawei (HMS) y/o Amazon (ADM).Instrucciones de configuración paso a paso
Instrucciones de configuración paso a paso
Cree o seleccione su aplicación

Configuración de su primera aplicación, organización y canal de OneSignal.
Configure las credenciales de plataforma
- Android: Configure las credenciales de Firebase
- iOS: Token p8 (Recomendado) o Certificado p12
- Amazon: Genere una clave API
- Huawei: Autorice OneSignal
Guarde su ID de aplicación e instale el SDK

Guarde su ID de aplicación e invite a miembros adicionales del equipo.
Configuración
1. Agregar el Unity SDK de OneSignal
Dos métodos de instalación están disponibles:- Unity Asset Store
- Unity Package Manager
- Agrega el SDK a tu cuenta vía Add to My Assets.
- Haz clic en Open in Unity para lanzar Unity Editor y Package Manager.
- Descarga e Import el SDK.

Unity SDK de OneSignal en My Assets
- Acepta la solicitud para importar todos los archivos.
- Ve a Window > OneSignal SDK Setup y sigue la lista de verificación, especialmente Import OneSignal packages.
- Después de la importación, Unity actualizará el registro. Completa los pasos de configuración restantes mostrados en la ventana de configuración.

Ventana de Configuración del SDK de OneSignal
2. Configuración de plataforma
Agrega todas las plataformas que tu aplicación soporta.Configuración iOS
Nuestro SDK auto-configura las configuraciones de Xcode requeridas. Elige tu enfoque de aprovisionamiento:- Automatically Sign (Recomendado)
- Manual Provisioning
- Ve a File > Build Settings > Player Settings.
- Bajo Other Settings, marca Automatically Sign.

Habilitar firma automática en Unity
Configuración Android
- Ve a Edit > Project Settings > Player > Android.
- Bajo Publishing Settings, habilita:
- Custom Main Gradle Template
- Custom Gradle Properties Template
- Ejecuta Assets > External Dependency Manager > Android Resolver > Force Resolve.
- El nivel de API objetivo debe ser 33+ (v5.0.6+).
- Si Minify está habilitado, ejecuta Copy Android plugin to Assets desde OneSignal SDK Setup para usar
OneSignalConfig.androidlib. - Reemplaza los íconos predeterminados dentro de
Assets/Plugins/Android/OneSignalConfig.androidlib/src/main/rescon los tuyos propios (solo nombres de archivo en minúsculas, guiones bajos permitidos). Consulta Iconos de notificación para más.
Configuración Amazon
Configuración Amazon FireOS (ADM)
Configuración Amazon FireOS (ADM)
- Edita o crea
Plugins/Android/AndroidManifest.xml. - Agrega namespace:
- Agrega permisos:
- Agrega lo siguiente a la etiqueta
<application>:
-
Reemplaza todas las instancias de
COM.YOUR.PACKAGE_NAMEcon tu nombre de paquete real. -
Coloca tu
api_key.txtbajoAssets/Plugins/Android/OneSignalConfig.androidlib/src/main/assets
- Consulta la Guía para Generar una Clave API de Amazon para ayuda creando este archivo.
Configuración Huawei
Opcional: Deshabilitar el módulo de ubicación
A partir de OneSignal Unity SDK 5.3.0, puedes excluir el módulo de ubicación nativo de OneSignal de las compilaciones de iOS y Android cuando tu app no usaOneSignal.Location. De forma predeterminada, el SDK incluye el módulo de ubicación nativo para que las API de ubicación funcionen sin configuración adicional.
Configura el indicador antes de resolver las dependencias de Android o compilar iOS. Hay dos formas de excluirlo:
- Alternancia del Editor (interactiva): En el Unity Editor, ve a Project Settings > OneSignal y habilita Disable Location Module. La configuración se guarda en
ProjectSettings/OneSignalSettings.json. - Variable de entorno (CLI/CI): Exporta
ONESIGNAL_DISABLE_LOCATION=true(o1) en la shell antes de iniciar Unity. La variable de entorno tiene prioridad sobre la alternancia del Editor.
Assets/OneSignal/Editor/OneSignalAndroidDependencies.xml y Assets/OneSignal/Editor/OneSignaliOSDependencies.xml. Después de ejecutar Assets > External Dependency Manager > Android Resolver > Force Resolve, Android resuelve los módulos de OneSignal sin el artefacto de ubicación en Assets/Plugins/Android/mainTemplate.gradle. Las compilaciones de iOS usan pods de OneSignal sin OneSignalLocation.
OneSignal.Location.RequestPermission() y asignar OneSignal.Location.IsShared no hacen nada en compilaciones nativas sin el módulo de ubicación. OneSignal.Location.IsShared devuelve false.
Aplicar el cambio después de que las dependencias nativas estén en caché
Si cambias esta configuración en un proyecto existente, limpia las salidas nativas obsoletas y vuelve a resolver las dependencias con el indicador configurado:- Elimina
Assets/OneSignal/Editor/OneSignalAndroidDependencies.xmlyAssets/OneSignal/Editor/OneSignaliOSDependencies.xml, luego vuelve a abrir el proyecto para que Unity los regenere desdeProjectSettings/OneSignalSettings.json. - Ejecuta Assets > External Dependency Manager > Android Resolver > Force Resolve para que
Assets/Plugins/Android/mainTemplate.gradleuse los paquetes sin ubicación. - Vuelve a exportar el proyecto Xcode de iOS y ejecuta
pod installsi es necesario. - Elimina
Build/y otras salidas generadas antes de volver a compilar.
3. Inicializar el SDK
Agrega este código dentro del métodoStart() de un MonoBehaviour temprano en el ciclo de vida de tu aplicación.
Reemplaza YOUR_APP_ID con tu ID de Aplicación de OneSignal encontrado en tu dashboard de OneSignal Settings > Keys & IDs.
Probar la integración del SDK de OneSignal
Esta guía le ayuda a verificar que su integración del SDK de OneSignal funciona correctamente probando notificaciones push, registro de suscripciones y mensajería in-app.Verificar suscripciones móviles
Inicie su aplicación en un dispositivo de prueba.
requestPermission durante la inicialización.
Mensajes de permiso push de iOS y Android
Verifique su panel de OneSignal
- Vaya a Audiencia > Suscripciones.
- Debería ver una nueva entrada con el estado “Nunca suscrito”.

Panel mostrando suscripción con estado 'Nunca suscrito'
Regrese a la aplicación y toque Permitir en el mensaje.
Actualice la página de suscripciones del panel de OneSignal.

Panel mostrando suscripción con estado 'Suscrito'
Configurar suscripciones de prueba
Las suscripciones de prueba son útiles para probar una notificación push antes de enviar un mensaje.Agregar a suscripciones de prueba.

Agregando un dispositivo a suscripciones de prueba
Nombre su suscripción.
Cree un segmento de usuarios de prueba.
Nombre el segmento.
Test Users (el nombre es importante porque se usará más adelante).Agregue el filtro de usuarios de prueba y haga clic en Crear segmento.

Creando un segmento de 'Usuarios de prueba' con el filtro de usuarios de prueba
Enviar push de prueba mediante API
Obtenga su clave API de aplicación e ID de aplicación.
Actualice el código proporcionado.
YOUR_APP_API_KEY y YOUR_APP_ID en el código a continuación con sus claves reales. Este código usa el segmento Test Users que creamos anteriormente.Ejecute el código.
Verifique imágenes y entrega confirmada.

Notificación push con imagen en iOS y Android
Verifique la entrega confirmada.
Enviar un mensaje in-app
Los mensajes in-app le permiten comunicarse con los usuarios mientras están usando su aplicación.Cierre o ponga en segundo plano su aplicación en el dispositivo.
Cree un mensaje in-app.
- En su panel de OneSignal, navegue a Mensajes > In-App > Nuevo In-App.
- Busque y seleccione el mensaje de Bienvenida.
- Establezca su audiencia como el segmento de usuarios de prueba que usamos anteriormente.

Dirigiéndose al segmento de 'Usuarios de prueba' con un mensaje in-app
Personalice el contenido del mensaje si lo desea.

Ejemplo de personalización del mensaje de bienvenida in-app
Establezca el activador en 'Al abrir la aplicación'.
Programe la frecuencia.

Opciones de programación de mensajes in-app
Active el mensaje.
Abra la aplicación y vea el mensaje.

Mensaje de bienvenida in-app mostrado en dispositivos
- Recopilar suscripciones, configurar suscripciones de prueba y crear segmentos.
- Enviar push con imágenes y entrega confirmada usando segmentos y nuestra API de crear mensaje.
- Enviar mensajes in-app.
Identificación de usuarios
Anteriormente, demostramos cómo crear suscripciones móviles. Ahora ampliaremos la identificación de usuarios en todas sus suscripciones (incluidas push, email y SMS) usando el SDK de OneSignal. Cubriremos IDs externos, etiquetas, suscripciones multicanal, privacidad y seguimiento de eventos para ayudarle a unificar e involucrar a los usuarios en todas las plataformas.Asignar ID externo
Use un ID externo para identificar a los usuarios de manera consistente en todos los dispositivos, direcciones de correo electrónico y números de teléfono utilizando el identificador de usuario de su backend. Esto asegura que su mensajería permanezca unificada entre canales y sistemas de terceros (especialmente importante para integraciones). Establezca el ID externo con el métodologin de nuestro SDK cada vez que sean identificados por su aplicación.
Agregar etiquetas de datos
Las etiquetas son pares clave-valor de datos de cadena que puede usar para almacenar propiedades de usuario (comousername, role o preferencias) y eventos (como purchase_date, game_level o interacciones de usuario). Las etiquetas potencian la personalización de mensajes avanzada y la segmentación, permitiendo casos de uso más avanzados.
Establezca etiquetas con los métodos addTag y addTags de nuestro SDK a medida que ocurren eventos en su aplicación.
En este ejemplo, el usuario alcanzó el nivel 6 identificable por la etiqueta llamada current_level establecida en un valor de 6.

Un perfil de usuario en OneSignal con una etiqueta llamada "current_level" establecida en "6"

Editor de segmentos mostrando un segmento dirigido a usuarios con un valor de current_level mayor que 4 y menor que 10

Captura de pantalla mostrando una notificación push dirigida al segmento Nivel 5-10 con un mensaje personalizado

La notificación push se recibe en un dispositivo iOS y Android con el contenido personalizado
Agregar suscripciones de email y/o SMS
Anteriormente vimos cómo nuestro SDK crea suscripciones móviles para enviar mensajes push e in-app. También puede llegar a los usuarios a través de canales de email y SMS creando las suscripciones correspondientes.- Use el método
addEmailpara crear suscripciones de email. - Use el método
addSmspara crear suscripciones de SMS.

Un perfil de usuario con suscripciones push, email y SMS unificadas por ID externo
- Obtenga consentimiento explícito antes de agregar suscripciones de email o SMS.
- Explique los beneficios de cada canal de comunicación a los usuarios.
- Proporcione preferencias de canal para que los usuarios puedan seleccionar qué canales prefieren.
Privacidad y consentimiento del usuario
Para controlar cuándo OneSignal recopila datos de usuario, use los métodos de control de consentimiento del SDK:setConsentRequired(true): Previene la recopilación de datos hasta que se otorgue el consentimiento.setConsentGiven(true): Habilita la recopilación de datos una vez que se otorga el consentimiento.
Solicitar permisos push
En lugar de llamar arequestPermission() inmediatamente al abrir la aplicación, adopte un enfoque más estratégico. Use un mensaje in-app para explicar el valor de las notificaciones push antes de solicitar permiso.
Para mejores prácticas y detalles de implementación, consulte nuestra guía Solicitar permisos push.
Escuchar eventos push, de usuario e in-app
Use los oyentes del SDK para reaccionar a las acciones del usuario y cambios de estado. El SDK proporciona varios oyentes de eventos a los que puede conectarse. Consulte nuestra guía de referencia del SDK para obtener más detalles.Eventos de notificación push
addClickListener(): Detecte cuándo se toca una notificación. Útil para enlaces profundos.addForegroundLifecycleListener(): Controle cómo se comportan las notificaciones en primer plano.
Cambios de estado del usuario
addObserver()para estado del usuario: Detecte cuándo se establece el ID externo.addPermissionObserver(): Rastree la interacción específica del usuario con el mensaje de permiso push nativo.addObserver()para suscripción push: Rastree cuándo cambia el estado de la suscripción push.
Eventos de mensajes in-app
addClickListener(): Maneje acciones de clic in-app. Ideal para enlaces profundos o seguimiento de eventos.addLifecycleListener(): Rastree el ciclo de vida completo de los mensajes in-app (mostrados, clicados, descartados, etc.).
Configuración y capacidades avanzadas
Explore más capacidades para mejorar su integración:- 🔁 Migración a OneSignal desde otro servicio
- 🌍 Seguimiento de ubicación
- 🔗 Enlaces profundos
- 🔌 Integraciones
- 🧩 Extensiones de servicio móvil
- 🛎️ Botones de acción
- 🌐 Mensajería multiidioma
- 🛡️ Verificación de identidad
- 📊 Resultados personalizados
- 📲 Actividades en vivo
Configuración y referencia del SDK móvil
Asegúrese de haber habilitado todas las características clave revisando la guía de configuración de push móvil. Para obtener detalles completos sobre los métodos disponibles y opciones de configuración, visite la referencia del SDK móvil.support@onesignal.comPor favor incluya:- Detalles del problema que está experimentando y pasos para reproducir si están disponibles
- Su ID de aplicación de OneSignal
- El ID externo o ID de suscripción si corresponde
- La URL del mensaje que probó en el panel de OneSignal si corresponde
- Cualquier registro o mensaje de error relevante

