> ## 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.

# Notifications de données et en arrière-plan

> Envoyez des notifications push silencieuses pour synchroniser des données ou déclencher des tâches en arrière-plan sur iOS et Android sans afficher de message visible.

## Que sont les notifications silencieuses ?

Les notifications silencieuses vous permettent de réveiller votre application et d'effectuer des tâches en arrière-plan—comme la synchronisation ou l'actualisation de données—sans afficher de message visible ni jouer de son.

Sur iOS, celles-ci sont appelées **Notifications en arrière-plan**, et sur Android, elles sont connues sous le nom de **Notifications de données**. Ensemble, elles sont souvent appelées pushes silencieux et se comportent différemment des notifications normales et visibles.

### Limitations

* **Les applications ne peuvent pas recevoir de pushes silencieux si** :
  * **iOS** : L'application a été fermée par l'utilisateur, par exemple en la faisant glisser depuis le sélecteur d'applications. (Voir [support Apple](https://support.apple.com/en-us/HT201330)).
  * **Android** : L'application a été forcée à s'arrêter via les paramètres de l'appareil ou automatiquement par certains fabricants lors du glissement. ([Comportement de force-stop Android](./notifications-show-successful-but-are-not-being-shown#android-app-is-force-stopped)).
* **La livraison n'est pas garantie** :
  * Apple et Google traitent tous deux les notifications silencieuses comme *meilleur effort*. iOS peut retarder ou supprimer la livraison en mode Économie d'énergie, avec l'actualisation des applications en arrière-plan désactivée ou si l'application a été fermée par l'utilisateur. Android peut limiter ou regrouper la livraison selon les règles Doze ou d'économie d'énergie des OEM.
  * C'est pourquoi **les notifications silencieuses ne doivent jamais être utilisées pour des mises à jour critiques**.
* **Utilisateurs abonnés uniquement** : Le SDK OneSignal envoie des notifications de données uniquement aux [Abonnements](./subscriptions) abonnés. Pour atteindre les utilisateurs non abonnés, consultez [cette solution de contournement iOS SDK](https://github.com/OneSignal/OneSignal-iOS-SDK/issues/302).
* **Support limité pour les SDK multiplateformes** :
  * Les notifications silencieuses doivent être gérées en code natif (Java/Kotlin pour Android, Swift/Obj-C pour iOS).
  * iOS nécessite l'implémentation de [`application:didReceiveRemoteNotification:fetchCompletionHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013-application).
  * Android nécessite l'implémentation d'une [Extension de service de notification](./service-extensions).

***

## Envoi de notifications silencieuses depuis OneSignal

Suivez ces étapes pour envoyer une notification silencieuse depuis OneSignal :

<Steps>
  <Step title="Omettez les contenus">
    Supprimez les contenus visibles du message. Cela inclut :

    * **API** : `contents`, `headings`, `subtitle` dans votre requête API [Create notification](/reference/create-message).
    * **Tableau de bord** : Message, Titre, Sous-titre
  </Step>

  <Step title="Définissez content_available">
    * **API** : Définissez `content_available` sur `true`.
    * **Tableau de bord** : Cochez **Content available** sous "Send to Apple iOS". Ceci est applicable à toutes les plateformes et indique simplement à notre système qu'aucun message n'est envoyé.
  </Step>

  <Step title="Ajoutez des données à la notification">
    * **API** : Utilisez le paramètre `data`.
    * **Tableau de bord** : Utilisez les champs **Additional Data**.
  </Step>
</Steps>

### Exemple de payload 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"
    }
  }'
```

***

## Configuration spécifique à la plateforme

### Configuration des notifications en arrière-plan iOS

Pour gérer les notifications en arrière-plan, votre application iOS doit avoir la capacité **Background Modes > Remote Notifications** activée dans Xcode. Cela est généralement inclus si vous avez suivi la [Configuration du SDK mobile](./mobile-sdk-setup).

Pour traiter la notification, implémentez la méthode `AppDelegate` [`application(_:didReceiveRemoteNotification:fetchCompletionHandler:)`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013-application).

Documentation 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 l'utilisateur a fermé l'application (en la faisant glisser depuis le sélecteur d'applications), iOS ne livrera pas la notification.

  Dans ce cas, incluez un message `contents` visible et traitez les données dans [`UNNotificationServiceExtension.didReceive`](./service-extensions#ios-notification-service-extension).
</Warning>

***

### Configuration des notifications de données Android

Gérez les notifications de données sur Android en utilisant l'[Extension de service de notification](./service-extensions).

Cela vous permet :

* De traiter les notifications tant que l'application n'a pas été forcée à s'arrêter
* De personnaliser la façon dont les notifications sont affichées ou supprimées

Documentation Android :

* [Messages de données FCM](https://firebase.google.com/docs/cloud-messaging/concept-options#data_messages)
* [Optimiser pour Doze et App Standby](https://developer.android.com/training/monitoring-device-state/doze-standby)

<Warning>
  Si l'application a été forcée à s'arrêter (via les paramètres de l'appareil ou par une optimisation de batterie OEM), Android ne livrera pas la notification. Consultez le [comportement de force-stop Android](./notifications-show-successful-but-are-not-being-shown#android-app-is-force-stopped).
</Warning>

***

## Envoi de notifications VoIP

Les notifications VoIP sont prises en charge mais nécessitent une configuration supplémentaire en dehors des SDK OneSignal standard. OneSignal n'enregistre pas automatiquement les jetons VoIP.

<Card title="Guide de configuration des notifications VoIP" icon="phone" href="./voip-notifications">
  Configurez les notifications push VoIP pour les appels en temps réel sur iOS.
</Card>

***

## FAQ

### Les notifications silencieuses peuvent-elles être utilisées pour détecter des désinstallations ou des désabonnements ?

Pas de manière fiable. Les notifications silencieuses sont au mieux-effort et ne sont pas garanties d'être livrées, comme expliqué dans la section [Limitations](#limitations).

À la place :

* Envoyez des notifications visibles (avec contenu) à tous vos utilisateurs au moins une fois par mois.
* Envoyez éventuellement des notifications silencieuses comme vérification supplémentaire.

Pour plus de détails sur la gestion des changements de statut d'abonnement, consultez le guide [Abonnements](./subscriptions).

### Les livraisons confirmées fonctionnent-elles avec les notifications silencieuses ?

Non. Les livraisons confirmées nécessitent l'exécution d'un callback par le SDK lorsque la notification est affichée. Les notifications silencieuses ne sont pas affichées, donc le callback de réception du SDK n'est jamais déclenché.

### Puis-je utiliser des notifications silencieuses pour mesurer combien d'utilisateurs sont joignables ?

Non, pas de manière fiable. Les notifications silencieuses n'ont pas de livraison garantie.

1. **La livraison n'est pas garantie** — Apple et Google traitent tous deux les notifications silencieuses comme meilleur effort et peuvent les retarder ou les supprimer. Par exemple, iOS les supprimera si l'application est fermée (force quit) et Android et iOS les limiteront selon les règles d'économie d'énergie.

2. **La livraison n'est pas confirmée** — les livraisons confirmées ne fonctionnent pas avec les notifications silencieuses, donc il n'y a aucun moyen de savoir quels utilisateurs ont réellement reçu le push.

Pour mesurer les utilisateurs joignables, envoyez une notification visible et suivez les métriques de livraison dans [Analytics](./analytics-overview).

***

<Columns cols={2}>
  <Card title="Extensions de service" icon="puzzle-piece" href="./service-extensions">
    Gérez le traitement des notifications en code natif sur iOS et Android.
  </Card>

  <Card title="Abonnements" icon="address-book" href="./subscriptions">
    Comprendre les types d'abonnements et leur connexion aux utilisateurs.
  </Card>

  <Card title="API de création de message" icon="code" href="/reference/create-message">
    Envoyez des notifications par programmation, y compris les pushes silencieux.
  </Card>
</Columns>
