> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Notificaciones de datos y en segundo plano

> Envíe notificaciones push silenciosas para sincronizar datos o activar tareas en segundo plano en iOS y Android sin mostrar un mensaje visible.

## ¿Qué son las notificaciones silenciosas?

Las notificaciones silenciosas le permiten activar su aplicación y realizar tareas en segundo plano—como sincronizar o actualizar datos—sin mostrar un mensaje visible ni reproducir un sonido.

En iOS, estas se llaman **notificaciones en segundo plano**, y en Android, se conocen como **notificaciones de datos**. Juntas, a menudo se denominan pushes silenciosos y se comportan de manera diferente a las notificaciones normales y visibles.

### Limitaciones

* **Las aplicaciones no pueden recibir pushes silenciosos si**:
  * **iOS**: La aplicación ha sido cerrada por el usuario como cuando se desliza desde el selector de aplicaciones. (Consulte [soporte de Apple](https://support.apple.com/en-us/HT201330)).
  * **Android**: La aplicación se ha forzado a cerrar a través de la configuración del dispositivo o automáticamente por algunos fabricantes cuando se desliza. ([Más detalles aquí](./notifications-show-successful-but-are-not-being-shown#android-app-is-force-stopped)).
* **La entrega no está garantizada**:
  * Tanto Apple como Google tratan las notificaciones silenciosas como *mejor esfuerzo*. iOS puede retrasar o eliminar la entrega en modo de bajo consumo, actualización de aplicaciones en segundo plano desactivada o si la aplicación fue cerrada por el usuario. Android puede limitar o agrupar la entrega según las reglas de ahorro de energía de Doze o OEM.
  * Debido a esto, **las notificaciones silenciosas nunca deben usarse para actualizaciones críticas**.
* **Solo usuarios suscritos**: El SDK de OneSignal solo envía notificaciones de datos a [suscripciones](./subscriptions) suscritas. Para llegar a usuarios no suscritos, siga [esta solución alternativa](https://github.com/OneSignal/OneSignal-iOS-SDK/issues/302).
* **Soporte limitado para SDKs multiplataforma**:
  * Las notificaciones silenciosas deben manejarse en código nativo (Java/Kotlin para Android, Swift/Obj-C para iOS).
  * iOS requiere implementación de [`application:didReceiveRemoteNotification:fetchCompletionHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013-application).
  * Android requiere implementación de una [Extensión de servicio de notificación](./service-extensions).

***

## Enviar notificaciones silenciosas desde OneSignal

Siga estos pasos para enviar una notificación silenciosa desde OneSignal:

<Steps>
  <Step title="Omitir contenido visible">
    Elimine cualquier texto o título visible del mensaje. Esto incluye:

    * **API**: `contents`, `headings`, `subtitle` en su solicitud de API [Crear notificación](/reference/create-message).
    * **Panel**: Mensaje, Título, Subtítulo
  </Step>

  <Step title="Establecer content_available">
    * **API**: Establezca `content_available` en `true`.
    * **Panel**: Marque **Content available** en "Send to Apple iOS". Esto se aplica a todas las plataformas y simplemente le dice a nuestro sistema que no se está enviando ningún mensaje.
  </Step>

  <Step title="Agregar datos a la notificación">
    * **API**: Use el parámetro `data`.
    * **Panel**: Use los campos **Additional Data**.
  </Step>
</Steps>

### Ejemplo de payload de API

```bash theme={null}
curl -X POST https://api.onesignal.com/notifications \
  -H "Authorization: Key YOUR_APP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "app_id": "YOUR_APP_ID",
    "include_aliases": { "external_id": ["user-123"] },
    "target_channel": "push",
    "content_available": true,
    "data": {
      "action": "sync_data",
      "version": "2"
    }
  }'
```

***

## Configuración específica de la plataforma

### Configuración de notificaciones en segundo plano de iOS

Para manejar notificaciones en segundo plano, su aplicación iOS debe tener la capacidad **Background Modes > Remote Notifications** habilitada en Xcode. Esto generalmente se agrega si siguió nuestra [configuración del SDK móvil](./mobile-sdk-setup).

Para procesar la notificación, implemente el método `AppDelegate` [`application(_:didReceiveRemoteNotification:fetchCompletionHandler:)`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013-application).

Documentación de Apple:

* [Pushing Background Updates to Your App](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app?language=objc)
* [Generating a Remote Notification](https://developer.apple.com/documentation/usernotifications/generating-a-remote-notification)

<Warning>
  Si el usuario ha cerrado la aplicación (la deslizó del selector de aplicaciones), iOS no entregará la notificación.

  En tales casos, incluya un mensaje `contents` visible y procese los datos en [`UNNotificationServiceExtension.didReceive`](./service-extensions#ios-notification-service-extension).
</Warning>

***

### Configuración de notificaciones de datos de Android

Maneje notificaciones de datos en Android usando la [Extensión de servicio de notificación](./service-extensions).

Esto le permite:

* Procesar notificaciones siempre que la aplicación no haya sido cerrada forzosamente
* Personalizar cómo se muestran o suprimen las notificaciones

Documentación de Android:

* [Mensajes de datos FCM](https://firebase.google.com/docs/cloud-messaging/concept-options#data_messages)
* [Optimizar para Doze y App Standby](https://developer.android.com/training/monitoring-device-state/doze-standby)

<Warning>
  Si la aplicación ha sido forzada a detenerse (a través de la configuración del dispositivo o por alguna optimización de batería del OEM), Android no entregará la notificación. Consulte el [comportamiento de fuerza de detención de Android](./notifications-show-successful-but-are-not-being-shown#android-app-is-force-stopped).
</Warning>

***

## Enviar notificaciones VoIP

Las notificaciones VoIP son compatibles pero requieren configuración adicional fuera de los SDKs estándar de OneSignal. OneSignal no registra tokens VoIP automáticamente.

<Card title="Guía de configuración de notificaciones VoIP" icon="phone" href="./voip-notifications">
  Configure notificaciones push VoIP para llamadas en tiempo real en iOS.
</Card>

***

## Preguntas frecuentes

### ¿Se pueden usar notificaciones silenciosas para detectar desinstalaciones o cancelaciones de suscripción?

Técnicamente sí, pero no es confiable. Como se explica en la sección [Limitaciones](#limitaciones) anterior, no se garantiza que se entreguen las notificaciones silenciosas.

En su lugar:

* Envíe notificaciones visibles (con contenido) a todos sus usuarios al menos una vez al mes.
* Opcionalmente envíe notificaciones silenciosas como una verificación complementaria.

Para más detalles sobre cómo manejar cambios en el estado de suscripción, consulte nuestra guía de [suscripciones](./subscriptions).

### ¿Funcionan las entregas confirmadas con notificaciones silenciosas?

Las entregas confirmadas no funcionan con notificaciones silenciosas.

### ¿Puedo usar notificaciones silenciosas para medir cuántos usuarios son alcanzables?

No, no de manera confiable. Las notificaciones silenciosas no tienen entrega garantizada.

1. **La entrega no está garantizada** — tanto Apple como Google tratan las notificaciones silenciosas como mejor esfuerzo y pueden retrasarlas o descartarlas. Por ejemplo, iOS las descartará si la aplicación está cerrada (fuerza de cierre) y Android e iOS las limitarán bajo reglas de ahorro de energía.

2. **La entrega no está confirmada** — las entregas confirmadas no funcionan con notificaciones silenciosas, por lo que no hay forma de saber qué usuarios realmente recibieron el push.

Para medir los usuarios alcanzables, envíe una notificación visible y realice un seguimiento de las métricas de entrega en [Analytics](./analytics-overview).

***

<Columns cols={2}>
  <Card title="Extensiones de servicio" icon="puzzle-piece" href="./service-extensions">
    Gestione el procesamiento de notificaciones en código nativo en iOS y Android.
  </Card>

  <Card title="Suscripciones" icon="address-book" href="./subscriptions">
    Comprenda los tipos de suscripción y cómo se conectan a los usuarios.
  </Card>

  <Card title="API de creación de mensajes" icon="code" href="/reference/create-message">
    Envíe notificaciones programáticamente, incluidos los pushes silenciosos.
  </Card>
</Columns>
