Saltar al contenido principal

Descripción general

Las notificaciones push de Android son esenciales para impulsar la participación sostenida del usuario y la retención en su aplicación de Android. Le permiten entregar actualizaciones en tiempo real, recordatorios y mensajes personalizados directamente a sus usuarios, mejorando la experiencia general del usuario y la adherencia de su aplicación. OneSignal aprovecha Firebase Cloud Messaging (FCM) pero está diseñado para proporcionar aún más flexibilidad y funcionalidad como se muestra en esta guía.

Requisitos

  • Dispositivo o emulador Android 7.0+ con “Google Play Store (Services)” instalado.
  • Android Studio (las instrucciones de configuración usan Android Studio Meerkat).
  • Aplicación y plataforma de OneSignal configuradas.

Configure your OneSignal app and platform

Required setup for push notifications To start sending push notifications with OneSignal, you must first configure your OneSignal app with all the platforms your support—Apple (APNs), Google (FCM), Huawei (HMS), and/or Amazon (ADM).
If your organization already has a OneSignal account, ask to be invited as an admin role to configure the app. Otherwise, sign up for a free account to get started.
You can manage multiple platforms (iOS, Android, Huawei, Amazon, Web) under a single OneSignal app.
1

Create or select your app

  • To add platforms to an existing app, go to Settings > Push & In-App in the OneSignal dashboard.
  • To start fresh, click New App/Website and follow the prompts.

Example shows creating a new app.

2

Set up and activate a platform

  • Choose a clear and recognizable name for your app and organization.
  • Select the platform(s) you want to configure (iOS, Android, etc.).
  • Click Next: Configure Your Platform.

Example setting up your first OneSignal app, org, and channel.

3

Configure platform credentials

Follow the prompts based on your platforms:Click Save & Continue after entering your credentials.
4

Choose target SDK

Select the SDK that matches your development platform (e.g., iOS, Android, React Native, Unity), then click Save & Continue.

Select which SDK you are using to be navigated to the docs.

5

Install SDK and save your App ID

Once your platform is configured, your OneSignal App ID will be displayed. Copy and save this ID—you’ll need it when installing and initializing the SDK.If collaborating with others, use the Invite button to add developers or teammates, then click Done to complete setup.

Save your App ID and invite additional team members.

Once complete, follow the SDK installation guide for your selected platform to finish integrating OneSignal.

Configuración de Android

1. Agregar el SDK de OneSignal

En Android Studio, abra su archivo build.gradle.kts (Module: app) o build.gradle (Module: app) y agregue OneSignal a sus dependencies.
implementation("com.onesignal:OneSignal:[5.4.0, 5.4.99]")

El ejemplo muestra cómo agregar OneSignal al archivo build.gradle.kts de su aplicación.

Sincronizar Gradle

Después de agregar la dependencia, sincronice su proyecto:
  • Haga clic en Sync Now en el banner
  • O vaya a File > Sync Project with Gradle Files

2. Inicializar el SDK en la clase Application

Es una buena práctica inicializar OneSignal en el método onCreate de su clase Application para garantizar la configuración adecuada del SDK en todos los puntos de entrada.
Cree una nueva clase (ejemplo: ApplicationClass) y agregue el siguiente código.
package com.your.package.name // Replace with your package name
import android.app.Application

class ApplicationClass : Application() {
  override fun onCreate() {
    super.onCreate()
    // OneSignal initialization will go here
  }
}

Archivo ApplicationClass.kt de ejemplo.

Abra el archivo AndroidManifest.xml de su aplicaciónEn su etiqueta <application> agregue android:name=".ApplicationClass" (reemplace .ApplicationClass con el nombre de su clase real si lo estableció en algo diferente).
xml
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools">

     <application
          android:name=".ApplicationClass"
          android:icon="@mipmap/ic_launcher"
          android:label="@string/app_name"
          ...
      </application>

  </manifest>

AndroidManifest.xml con el nombre .ApplicationClass.

En su ApplicationClass, inicialice OneSignal con los métodos proporcionados. Reemplace YOUR_APP_ID con su App ID de OneSignal que se encuentra en Settings > Keys & IDs en su panel de OneSignal. Si no tiene acceso a la aplicación de OneSignal, solicite a sus Miembros del equipo que lo inviten.
package com.your.package.name // Replace with your package name

import android.app.Application
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

import com.onesignal.OneSignal
import com.onesignal.debug.LogLevel

class ApplicationClass : Application() {
   override fun onCreate() {
      super.onCreate()

      // Enable verbose logging for debugging (remove in production)
      OneSignal.Debug.logLevel = LogLevel.VERBOSE
      // Initialize with your OneSignal App ID
      OneSignal.initWithContext(this, "YOUR_APP_ID")
      // Use this method to prompt for push notifications.
      // We recommend removing this method after testing and instead use In-App Messages to prompt for notification permission.
      CoroutineScope(Dispatchers.IO).launch {
         OneSignal.Notifications.requestPermission(true)
      }
   }
}

Archivo ApplicationClass.kt con código de OneSignal agregado.

No se recomienda inicializar en una Activity (como MainActivity) porque puede que no se llame en inicios en frío de la aplicación desde enlaces profundos o notificaciones. Siempre inicialice OneSignal en su clase Application para mayor confiabilidad.

3. Personalizar íconos predeterminados

Recomendamos configurar sus íconos de notificación para que coincidan con la marca de su aplicación. De lo contrario, OneSignal usará un ícono de campana predeterminado.

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 al probar las notificaciones push, el registro de suscripción y la mensajería en la aplicación.
Si está probando con un emulador de Android, debe iniciarse con un arranque en frío.
  1. Vaya a Device Manager en Android Studio.
  2. Seleccione su dispositivo emulador y haga clic en Edit.
  3. Vaya a Additional Settings o More.
  4. Establezca la Boot option en Cold Boot.
  5. Guarde los cambios y reinicie el emulador.

Verificar suscripciones móviles

1

Inicie su aplicación en un dispositivo de prueba.

La solicitud de permiso push nativa debería aparecer automáticamente si agregó el método requestPermission durante la inicialización.

Solicitudes de permiso push de iOS y Android

2

Verifique su panel de OneSignal

Antes de aceptar la solicitud, verifique el panel de OneSignal:
  • Vaya a Audience > Subscriptions.
  • Debería ver una nueva entrada con el estado “Never Subscribed”.

Panel que muestra la suscripción con el estado 'Never Subscribed'

3

Regrese a la aplicación y toque Permitir en la solicitud.

4

Actualice la página de Subscriptions del panel de OneSignal.

El estado de la suscripción ahora debería mostrar Subscribed.

Panel que muestra la suscripción con el estado 'Subscribed'

Ha creado exitosamente una suscripción móvil. Las suscripciones móviles se crean cuando los usuarios abren su aplicación por primera vez en un dispositivo o si desinstalan y vuelven a instalar su aplicación en el mismo dispositivo.

Configurar suscripciones de prueba

Las suscripciones de prueba son útiles para probar una notificación push antes de enviar un mensaje.
1

Agregar a Test Subscriptions.

En el panel, junto a la suscripción, haga clic en el botón Options (tres puntos) y seleccione Add to Test Subscriptions.

Agregar un dispositivo a Test Subscriptions

2

Nombre su suscripción.

Asigne un nombre a la suscripción para que pueda identificar fácilmente su dispositivo más adelante en la pestaña Test Subscriptions.

Panel que muestra el campo 'Name your subscription'

3

Crear un segmento de usuarios de prueba.

Vaya a Audience > Segments > New Segment.
4

Asigne un nombre al segmento.

Asigne al segmento el nombre Test Users (el nombre es importante porque se usará más adelante).
5

Agregue el filtro Test Users y haga clic en Create Segment.

Crear un segmento 'Test Users' con el filtro Test Users

Ha creado exitosamente un segmento de usuarios de prueba. Ahora podemos probar el envío de mensajes a este dispositivo individual y grupos de usuarios de prueba.

Enviar push de prueba a través de API

1

Obtenga su App API Key y App ID.

En su panel de OneSignal, vaya a Settings > Keys & IDs.
2

Actualice el código proporcionado.

Reemplace YOUR_APP_API_KEY y YOUR_APP_ID en el código a continuación con sus claves reales. Este código utiliza el segmento Test Users que creamos anteriormente.
curl -X \
POST --url 'https://api.onesignal.com/notifications' \
 --header 'content-type: application/json; charset=utf-8' \
 --header 'authorization: Key YOUR_APP_API_KEY' \
 --data \
 '{
  "app_id": "YOUR_APP_ID",
  "target_channel": "push",
  "name": "Testing basic setup",
  "headings": {
  	"en": "👋"
  },
  "contents": {
    "en": "Hello world!"
  },
  "included_segments": [
    "Test Users"
  ],
  "ios_attachments": {
    "onesignal_logo": "https://avatars.githubusercontent.com/u/11823027?s=200&v=4"
  },
  "big_picture": "https://avatars.githubusercontent.com/u/11823027?s=200&v=4"
}'
3

Ejecute el código.

Ejecute el código en su terminal.
4

Verifique las imágenes y la entrega confirmada.

Si todos los pasos de configuración se completaron exitosamente, las suscripciones de prueba deberían recibir una notificación con una imagen incluida:

Notificación push con imagen en iOS y Android

Las imágenes aparecerán pequeñas en la vista de notificación colapsada. Expanda la notificación para ver la imagen completa.
5

Verifique la entrega confirmada.

En su panel, vaya a Delivery > Sent Messages, luego haga clic en el mensaje para ver las estadísticas.Debería ver la estadística confirmed, lo que significa que el dispositivo recibió el push.

Delivery stats showing confirmed delivery

If you’re on a Professional plan or higher, scroll to Audience Activity to see subscription-level confirmation:

Confirmed delivery at the device level in Audience Activity

You have successfully sent a notification via our API to a segment.
  • No confirmed delivery? Review the troubleshooting guide here.
  • Having issues? Copy-paste the api request and a log from start to finish of app launch into a .txt file. Then share both with support@onesignal.com.

Enviar un mensaje en la aplicación

In-app messages let you communicate with users while they are using your app.
1

Close or background your app on the device.

This is because users must meet the in-app audience criteria before a new session starts. In OneSignal, a new session starts when the user opens your app after it has been in the background or closed for at least 30 seconds. For more details, see our guide on how in-app messages are displayed.
2

Create an in-app message.

  • In your OneSignal dashboard, navigate to Messages > In-App > New In-App.
  • Find and select the Welcome message.
  • Set your Audience as the Test Users segment we used previously.

Targeting the 'Test Users' segment with an in-app message

3

Customize the message content if desired.

Example customization of in-app Welcome message

4

Set Trigger to 'On app open'.

5

Schedule frequency.

Under Schedule > How often do you want to show this message? select Every time trigger conditions are satisfied.

In-app message scheduling options

6

Make message live.

Click Make Message Live so it is available to your Test Users each time they open the app.
7

Open the app and see the message.

After the in-app message is live, open your app. You should see it display:

Welcome in-app message shown on devices

Not seeing the message?
  • Start a new session
    • You must close or background the app for at least 30 seconds before reopening. This ensures a new session is started.
    • For more, see how in-app messages are displayed.
  • Still in the Test Users segment?
    • If you reinstalled or switched devices, re-add the device to Test Subscriptions and confirm it’s part of the Test Users segment.
  • Having issues?
    • Follow Getting a Debug Log while reproducing the steps above. This will generate additional logging that you can share with support@onesignal.com and we will help investigate what’s going on.
You have successfully setup the OneSignal SDK and learned important concepts like:Continue with this guide to identify users in your app and setup additional features.

Identificación del usuario

Anteriormente, demostramos cómo crear Subscriptions móviles. Ahora ampliaremos para identificar Usuarios en todas sus suscripciones (incluidas push, correo electrónico y SMS) usando el SDK de OneSignal. Cubriremos External IDs, etiquetas, suscripciones multicanal, privacidad y seguimiento de eventos para ayudarlo a unificar e involucrar usuarios en todas las plataformas.

Asignar External ID

Use un External ID para identificar usuarios de manera consistente en dispositivos, direcciones de correo electrónico y números de teléfono usando el identificador de usuario de su backend. Esto garantiza que su mensajería permanezca unificada en todos los canales y sistemas de terceros (especialmente importante para Integraciones). Establezca el External ID con el método login de nuestro SDK cada vez que sean identificados por su aplicación.
OneSignal genera IDs únicos de solo lectura para suscripciones (Subscription ID) y usuarios (OneSignal ID).A medida que los usuarios descargan su aplicación en diferentes dispositivos, se suscriben a su sitio web y/o le proporcionan direcciones de correo electrónico y números de teléfono fuera de su aplicación, se crearán nuevas suscripciones.Se recomienda encarecidamente establecer el External ID a través de nuestro SDK para identificar usuarios en todas sus suscripciones, independientemente de cómo se creen.

Agregar etiquetas de datos

Las Etiquetas son pares clave-valor de datos de cadena que puede usar para almacenar propiedades de usuario (como username, role o preferencias) y eventos (como purchase_date, game_level o interacciones de usuario). Las etiquetas impulsan 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.

A user profile in OneSignal with a tag called "current_level" set to "6"

We can create a segment of users that have a level of between 5 and 10, and use that to send targeted and personalized messages:

Segment editor showing a segment targeting users with a current_level value of greater than 4 and less than 10


Screenshot showing a push notification targeting the Level 5-10 segment with a personalized message


The push notification is received on an iOS and Android device with the personalized content

Agregar suscripciones de correo electrónico y/o SMS

Earlier we saw how our SDK creates mobile subscriptions to send push and in-app messages. You can also reach users through emails and SMS channels by creating the corresponding subscriptions. If the email address and/or phone number already exist in the OneSignal app, the SDK will add it to the existing user, it will not create duplicates. You can view unified users via Audience > Users in the dashboard or with the View user API.

A user profile with push, email, and SMS subscriptions unified by External ID

Best practices for multi-channel communication
  • Obtain explicit consent before adding email or SMS subscriptions.
  • Explain the benefits of each communication channel to users.
  • Provide channel preferences so users can select which channels they prefer.

Privacidad y consentimiento del usuario

To control when OneSignal collects user data, use the SDK’s consent gating methods: See our Privacy & security docs for more on:

Solicitar permisos de push

Instead of calling requestPermission() immediately on app open, take a more strategic approach. Use an in-app message to explain the value of push notifications before requesting permission. For best practices and implementation details, see our Prompt for push permissions guide.

Escuchar eventos de push, usuario y en la aplicación

Use SDK listeners to react to user actions and state changes. The SDK provides several event listeners for you to hook into. See our SDK reference guide for more details.

Eventos de notificación push

For full customization, see Mobile Service Extensions.

Cambios de estado del usuario

Eventos de mensajes en la aplicación


Configuración avanzada y capacidades

Explore more capabilities to enhance your integration:

Configuración y referencia del SDK móvil

Make sure you’ve enabled all key features by reviewing the Mobile push setup guide. For full details on available methods and configuration options, visit the Mobile SDK reference.

Diseño de notificación personalizado

Android 12 and higher enforce system templates for custom notifications. However, you can still customize your layout using Android’s standard notification styles.
Apps targeting Android 12+ can’t use fully custom layouts due to behavior changes. See Notification.DecoratedCustomViewStyle for available customizations.
To customize your layout:

Deshabilitar el comportamiento de apertura predeterminado

When a notification is clicked, OneSignal will resume your app, or open your launcher Activity if your app was swiped away. To prevent OneSignal from auto-opening your launcher Activity when a notification is clicked, add this to your AndroidManifest.xml:
AndroidManifest.xml
  <application ...>
     <meta-data android:name="com.onesignal.NotificationOpened.DEFAULT" android:value="DISABLE" />
  </application>
You must implement a custom Notification Opened Listener in the onCreate method in your Application class. You will need to call startActivity from this callback to take the user to your intended Activity.

Datos en segundo plano y anulaciones de push

Soporte de idiomas de derecha a izquierda (RTL)

To support RTL languages in notifications and UI, add this to your AndroidManifest.xml:
AndroidManifest.xml
  <application
    android:supportsRtl="true"
    ...
  </application>
Make sure to test all Activities and views to verify correct RTL behavior. See Android’s documentation on localizing your app for more information.

Need help?Chat with our Support team or email support@onesignal.comPlease include:
  • Details of the issue you’re experiencing and steps to reproduce if available
  • Your OneSignal App ID
  • The External ID or Subscription ID if applicable
  • The URL to the message you tested in the OneSignal Dashboard if applicable
  • Any relevant logs or error messages
We’re happy to help!