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

# Configuration du SDK Web Vue JS

> Intégrez les notifications push Web de OneSignal dans votre application Vue.js en utilisant le plugin onesignal-vue ou @onesignal/onesignal-vue3. Apprenez à installer, configurer et personnaliser les service workers pour une livraison push transparente.

export const SdkReleasesIframe = ({sdkFilter = undefined, viewMode = undefined, height, ...frameProps}) => {
  const baseUrl = 'https://onesignal.github.io/sdk-releases';
  const buildUrl = (theme, sdkFilter, viewMode) => {
    const url = new URL(baseUrl);
    const params = new URLSearchParams();
    if (theme) {
      params.set('theme', theme);
    }
    if (sdkFilter) {
      params.set('sdk', sdkFilter);
    }
    if (viewMode) {
      params.set('viewMode', viewMode);
    }
    if (params.toString()) {
      url.search = params.toString();
    }
    return url.toString();
  };
  const detectTheme = () => {
    if (document.documentElement.classList.contains('dark')) {
      return 'dark';
    }
    return 'light';
  };
  const [theme, setTheme] = useState('light');
  const [iframeSrc, setIframeSrc] = useState(() => {
    const initialTheme = detectTheme();
    return buildUrl(initialTheme, sdkFilter, viewMode);
  });
  useEffect(() => {
    const currentTheme = detectTheme();
    setTheme(currentTheme);
    setIframeSrc(buildUrl(currentTheme, sdkFilter, viewMode));
    const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
    const handleThemeChange = () => {
      const newTheme = detectTheme();
      setTheme(newTheme);
      setIframeSrc(buildUrl(newTheme, sdkFilter, viewMode));
    };
    if (mediaQuery.addEventListener) {
      mediaQuery.addEventListener('change', handleThemeChange);
    } else {
      mediaQuery.addListener(handleThemeChange);
    }
    window.addEventListener('storage', handleThemeChange);
    const observer = new MutationObserver(handleThemeChange);
    observer.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ['class', 'data-theme']
    });
    return () => {
      if (mediaQuery.removeEventListener) {
        mediaQuery.removeEventListener('change', handleThemeChange);
      } else {
        mediaQuery.removeListener(handleThemeChange);
      }
      window.removeEventListener('storage', handleThemeChange);
      observer.disconnect();
    };
  }, [sdkFilter, viewMode]);
  const getIframeHeight = () => {
    if (viewMode === 'table') {
      return '450';
    }
    if (viewMode === 'mini') {
      return '170';
    }
    return '800';
  };
  const iframeHeight = height || getIframeHeight();
  return <Frame {...frameProps}>
      <iframe src={iframeSrc} width="100%" height={iframeHeight} frameBorder="0" style={{
    border: "none"
  }} title="SDK Releases" key={iframeSrc} />
    </Frame>;
};

<SdkReleasesIframe sdkFilter="vue" viewMode="mini" />

## Aperçu

Ce guide explique comment intégrer les notifications push OneSignal dans une application Vue.js. Il couvre à la fois Vue 2 et Vue 3 en utilisant les plugins Vue officiels de OneSignal, ainsi que les considérations clés de configuration, y compris la configuration du service worker et le support TypeScript.

***

## Exigences

* Application et plateforme OneSignal configurées. Voir [Configuration du push Web](./web-push-setup) pour commencer.

### Compatibilité Vue

Assurez-vous d'installer une version de plugin compatible avec votre environnement Vue.

| Vue | Plugin OneSignal                                              |
| --- | ------------------------------------------------------------- |
| 2   | [onesignal-vue](https://github.com/OneSignal/onesignal-vue)   |
| 3   | [onesignal-vue3](https://github.com/OneSignal/onesignal-vue3) |

***

## Installation

Installez via votre gestionnaire de paquets préféré :

<CodeGroup>
  ```bash yarn theme={null}
  yarn add onesignal-vue
  # ou yarn add @onesignal/onesignal-vue3
  ```

  ```bash npm theme={null}
  npm install --save onesignal-vue
  # ou npm install --save @onesignal/onesignal-vue3
  ```
</CodeGroup>

***

## Initialisation

Importez le service OneSignal et initialisez-le dans votre composant racine. La fonction `init` renvoie une promesse qui se résout lorsque OneSignal est chargé.

Remplacez `YOUR_APP_ID` par votre ID d'application OneSignal trouvé dans [Clés et ID](./keys-and-ids).

<CodeGroup>
  ```javascript Vue2 theme={null}
  import Vue from 'vue'
  import OneSignalVue from 'onesignal-vue'

  Vue.use(OneSignalVue);

  new Vue({
    render: h => h(App),
    beforeMount() {
      this.$OneSignal.init({ appId: 'YOUR_APP_ID' });
    }
  }).$mount('#app')
  //Exemple 1
  await this.$OneSignal.init({ appId: 'YOUR_APP_ID' });
  // faire d'autres choses

  //Exemple 2
  this.$OneSignal.init({ appId: 'YOUR_APP_ID' }).then(() => {
    // faire d'autres choses
  });
  ```

  ```javascript Vue3 theme={null}
  /*
  Dans Vue 3, vous pouvez passer les options d'initialisation OneSignal directement comme argument à la fonction `use`. Vous pouvez toujours initialiser séparément si vous préférez les avantages de l'éditeur comme la complétion de code.
  */
  import { createApp } from 'vue'
  import OneSignalVuePlugin from '@onesignal/onesignal-vue3'

  createApp(App).use(OneSignalVuePlugin, {
    appId: 'YOUR_APP_ID',
  }).mount('#app');

  // OU

  import { createApp } from 'vue'
  import OneSignalVuePlugin from '@onesignal/onesignal-vue3'

  createApp(App).use(OneSignalVuePlugin).mount('#app');

  // composant
  this.$OneSignal.init({
    appId: "YOUR_APP_ID"
  });
  ```
</CodeGroup>

Le plugin OneSignal expose automatiquement une propriété globale `$OneSignal` accessible à l'intérieur de l'application.

### API de composition

Vous pouvez également exploiter l'[API de composition](https://vuejs.org/guide/extras/composition-api-faq.html) de Vue via le hook `useOneSignal()` qui peut être appelé depuis [`setup`](https://vuejs.org/api/composition-api-setup.html#basic-usage).

### Personnalisation des options d'initialisation

Vous pouvez personnaliser votre initialisation avec des [paramètres `init` supplémentaires](./web-sdk-reference#init).

### Paramètres du service worker

Si vous ne l'avez pas encore fait, vous devrez [télécharger le fichier Service Worker OneSignal](https://github.com/OneSignal/OneSignal-Website-SDK/files/11480764/OneSignalSDK-v16-ServiceWorker.zip) pour l'ajouter à votre site.

Le fichier `OneSignalSDKWorker.js` doit être accessible publiquement. Vous pouvez le placer dans votre répertoire `public`, à la racine de niveau supérieur ou dans un sous-répertoire. Cependant, si vous placez le fichier dans un sous-répertoire et/ou avez un autre service worker pour votre site, assurez-vous de spécifier le chemin. Voir [Service Worker OneSignal](./onesignal-service-worker) pour plus de détails.

| Option               | Description                                                                                                                                  |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `serviceWorkerParam` | Portée contrôlée par le worker OneSignal. **Recommandation :** Utilisez un sous-chemin personnalisé (par ex. `"/onesignal/"`).               |
| `serviceWorkerPath`  | Chemin vers votre fichier service worker OneSignal hébergé (par ex. `"onesignal/OneSignalSDKWorker.js"`). Doit être accessible publiquement. |

**Exemple :**

```javascript theme={null}
this.$OneSignal.init({
  appId: 'YOUR-ONESIGNAL-APP-ID',
  serviceWorkerParam: {
    scope: '/onesignal/'
  },
  serviceWorkerPath: 'onesignal/OneSignalSDKWorker.js'
});
```

#### Hébergement du worker

* Racine publique (par défaut) : `/OneSignalSDKWorker.js`
* Dossier personnalisé (recommandé) : par ex. `/onesignal/OneSignalSDKWorker.js` comme défini à l'étape précédente.

#### Vérifier l'hébergement du service worker

Visitez le chemin dans votre navigateur pour confirmer qu'il est accessible.

Si vous avez utilisé la racine :

```
https://your-site.com/OneSignalSDKWorker.js
```

Si vous utilisez l'exemple de chemin :

```
https://your-site.com/onesignal/OneSignalSDKWorker.js
```

Il devrait renvoyer du JavaScript valide.

### Notes importantes

* Évitez l'initialisation en double en développement
  * Lors des tests dans un environnement de développement, vous pourriez voir le SDK OneSignal s'initialiser deux fois, ce qui peut provoquer des erreurs de console.
  * Cela se produit en raison de `<React.StrictMode>` qui fait s'exécuter les effets deux fois en développement. Pour le résoudre, supprimez `<React.StrictMode>` de votre composant racine pendant le développement.

<Warning>
  Le mode strict n'affecte que le développement—il n'impacte pas les builds de production.
</Warning>

***

## Tester l'intégration du SDK OneSignal

Ce guide vous aide à vérifier que votre intégration du SDK OneSignal fonctionne correctement en testant les notifications push et l'enregistrement des abonnements.

### Vérifier les abonnements web push

<Steps>
  <Step title="Lancez votre site sur un appareil de test.">
    * Utilisez Chrome, Firefox, Edge ou Safari pendant les tests.
    * **N'utilisez pas le mode Navigation privée ou Incognito.** Les utilisateurs ne peuvent pas s'abonner aux notifications push dans ces modes.
    * Les invites devraient apparaître en fonction de votre configuration des [invites de permission](/docs/en/permission-requests).
    * Cliquez sur **Autoriser** dans l'invite native pour vous abonner aux notifications push.

    <Frame caption="Invite de permission native web push">
      <img src="https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/push/web-push-native-permission-prompt.png?fit=max&auto=format&n=FXJz6yFfOqztaEND&q=85&s=91c15dd6677de6a0ba37da20449ccca1" alt="Invite de permission native du navigateur demandant à l'utilisateur d'autoriser ou bloquer les notifications" width="1724" height="974" data-path="images/push/web-push-native-permission-prompt.png" />
    </Frame>
  </Step>

  <Step title="Vérifiez votre tableau de bord OneSignal">
    * Allez dans **Audience > Subscriptions**.
    * Vous devriez voir une nouvelle entrée avec le statut **Subscribed**.

    <Frame caption="Tableau de bord affichant un abonnement avec le statut 'Subscribed'">
      <img src="https://mintcdn.com/onesignal/KPVdijCt4_xCbkO8/images/dashboard/web-push-subscription-status.png?fit=max&auto=format&n=KPVdijCt4_xCbkO8&q=85&s=786e9c5e4131f01fef20d11bebd1a3d0" alt="Page Abonnements du tableau de bord OneSignal affichant un abonnement web push avec le statut Subscribed" width="1188" height="742" data-path="images/dashboard/web-push-subscription-status.png" />
    </Frame>

    <Check>Vous avez créé avec succès un [abonnement web push](/docs/en/subscriptions).
    Les abonnements web push sont créés lorsque les utilisateurs s'abonnent pour la première fois aux notifications push sur votre site.</Check>
  </Step>
</Steps>

### Configurer les abonnements de test

Les abonnements de test sont utiles pour tester une notification push avant d'envoyer un message.

<Steps>
  <Step title="Ajouter aux abonnements de test.">
    Dans le tableau de bord, à côté de l'abonnement, cliquez sur le bouton **Options (trois points)** et sélectionnez **Add to Test Users**.

    <Frame caption="Ajout d'un appareil aux abonnements de test">
      <img src="https://mintcdn.com/onesignal/NCUI56Tiw7V-s0dT/images/dashboard/add-to-test-subscriptions.png?fit=max&auto=format&n=NCUI56Tiw7V-s0dT&q=85&s=2455d4cd74ea4ad686f76730cd95bbaa" alt="Menu d'options sur un abonnement affichant l'option Ajouter aux abonnements de test" width="1188" height="742" data-path="images/dashboard/add-to-test-subscriptions.png" />
    </Frame>
  </Step>

  <Step title="Nommez votre abonnement.">
    Nommez l'abonnement afin de pouvoir identifier facilement votre appareil plus tard dans l'**onglet Test Users**.
  </Step>

  <Step title="Créer un segment d'utilisateurs de test.">
    Allez dans **Audience > Segments > New Segment**.
  </Step>

  <Step title="Nommez le segment.">
    Nommez le segment `Test Users` (le nom est important car il sera utilisé plus tard).
  </Step>

  <Step title="Ajoutez le filtre Test Users et cliquez sur Create Segment.">
    <Frame caption="Création d'un segment 'Test Users' avec le filtre Test Users">
      <img src="https://mintcdn.com/onesignal/NCUI56Tiw7V-s0dT/images/dashboard/create-test-users-segment.png?fit=max&auto=format&n=NCUI56Tiw7V-s0dT&q=85&s=91b8a021be6e83662854e68ec3e1da04" alt="Éditeur de segment avec le filtre Test Users sélectionné et le segment nommé Test Users" width="1188" height="742" data-path="images/dashboard/create-test-users-segment.png" />
    </Frame>

    <Check>Vous avez créé avec succès un segment d'utilisateurs de test.
    Nous pouvons maintenant tester l'envoi de messages à cet appareil individuel et à des groupes d'utilisateurs de test.</Check>
  </Step>
</Steps>

### Envoyer un push de test via l'API

<Steps>
  <Step title="Obtenez votre clé API d'application et votre ID d'application.">
    Dans votre tableau de bord OneSignal, allez dans **Settings > [Keys & IDs](/docs/en/keys-and-ids)**.
  </Step>

  <Step title="Mettez à jour le code fourni.">
    Remplacez `YOUR_APP_API_KEY` et `YOUR_APP_ID` dans le code ci-dessous par vos clés réelles. Ce code utilise le segment `Test Users` que nous avons créé plus tôt.

    ```curl theme={null}
    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"
      ],
      "chrome_web_image": "https://avatars.githubusercontent.com/u/11823027?s=200&v=4"
    }'
    ```
  </Step>

  <Step title="Exécutez le code.">
    Exécutez le code dans votre terminal.
  </Step>

  <Step title="Vérifiez les images et la livraison confirmée.">
    Si toutes les étapes de configuration ont été complétées avec succès, les abonnements de test devraient recevoir une notification.

    <Warning>Seul Chrome prend en charge les images. Les images apparaîtront petites dans la vue de notification réduite. Développez la notification pour voir l'image complète.</Warning>

    <Frame caption="Notification push développée avec image sur Chrome macOS">
      <img src="https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/push/web-push-image.png?fit=max&auto=format&n=FXJz6yFfOqztaEND&q=85&s=8dd90279daff9e24d3fd281e73aa1e74" alt="Notification push développée sur Chrome macOS affichant une image personnalisée" width="740" height="896" data-path="images/push/web-push-image.png" />
    </Frame>
  </Step>

  <Step title="Vérifiez la livraison confirmée.">
    Dans votre tableau de bord, allez dans **Delivery > Sent Messages**, puis cliquez sur le message pour afficher les statistiques. Vous devriez voir la statistique **confirmed**, ce qui signifie que l'appareil a reçu la push.

    <Note>Safari ne prend pas en charge la Livraison confirmée.</Note>

    <Card title="Rapports de messages de notifications push" icon="chart-bar" href="/docs/en/push-notification-message-reports">
      Consultez les statistiques de livraison, de clics et de conversion pour vos notifications push.
    </Card>
  </Step>
</Steps>

<Check>Vous avez envoyé avec succès une notification via l'API à un segment.</Check>

Si les notifications n'arrivent pas, contactez `support@onesignal.com` avec les éléments suivants :

* La requête et la réponse API (copiez-collez dans un fichier `.txt`)
* Votre Subscription ID
* L'URL de votre site Web avec le code OneSignal

***

## Identification des utilisateurs

La section précédente a couvert la création d'[Abonnements](/docs/en/subscriptions) web push. Cette section s'étend à l'identification des [Utilisateurs](/docs/en/users) sur tous leurs abonnements (y compris push, email et SMS) en utilisant le SDK OneSignal. Elle couvre les External IDs, les tags, les abonnements multicanaux, la confidentialité et le suivi des événements pour vous aider à unifier et engager les utilisateurs sur toutes les plateformes.

### Attribuer un External ID

Utilisez un External ID pour identifier les utilisateurs de manière cohérente sur tous les appareils, adresses e-mail et numéros de téléphone en utilisant l'identifiant utilisateur de votre backend. Cela garantit que votre messagerie reste unifiée sur tous les canaux et systèmes tiers (particulièrement important pour les [Intégrations](/docs/en/integrations)).

Définissez l'External ID avec la [méthode `login`](/docs/en/web-sdk-reference#login-external-id) du SDK chaque fois qu'un utilisateur est identifié par votre application.

<Note>
  OneSignal génère des ID uniques en lecture seule pour les abonnements (Subscription ID) et les utilisateurs (OneSignal ID).

  Lorsque les utilisateurs téléchargent votre application sur différents appareils, s'abonnent à votre site Web et/ou vous fournissent des adresses e-mail et des numéros de téléphone en dehors de votre application, de nouveaux abonnements seront créés.

  La définition de l'External ID via le SDK est fortement recommandée pour identifier les utilisateurs sur tous leurs abonnements, quelle que soit la façon dont ils sont créés.
</Note>

### Ajouter des tags de données

Les [Tags](/docs/en/add-user-data-tags) sont des paires clé-valeur de données chaîne que vous pouvez utiliser pour stocker les propriétés des utilisateurs (comme `username`, `role` ou les préférences) et les événements (comme `purchase_date`, `game_level` ou les interactions utilisateur). Les tags alimentent la [Personnalisation des messages](/docs/en/message-personalization) et la [Segmentation](/docs/en/segmentation) avancées permettant des cas d'utilisation plus avancés.

Définissez les tags avec les [méthodes `addTag` et `addTags`](/docs/en/web-sdk-reference#addtag-%2C-addtags) du SDK au fur et à mesure que les événements se produisent dans votre application.

Dans cet exemple, l'utilisateur a atteint le niveau 6 identifiable par le tag appelé `current_level` défini sur une valeur de `6`.

<Frame caption="Un profil utilisateur dans OneSignal avec un tag appelé &#x22;current_level&#x22; défini sur &#x22;6&#x22;">
  <img src="https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/d4674261847231079fecc176ba88065409c90943e3854b9df200457325a0aed4-Screenshot_2025-03-18_at_14.47.25.png?fit=max&auto=format&n=4HyuQPBpu-4xjmQC&q=85&s=91083bf83a4c03ea40d485b23f072259" width="1380" height="941" data-path="images/docs/d4674261847231079fecc176ba88065409c90943e3854b9df200457325a0aed4-Screenshot_2025-03-18_at_14.47.25.png" />
</Frame>

Nous pouvons créer un segment d'utilisateurs ayant un niveau entre 5 et 10, et l'utiliser pour envoyer des messages ciblés et personnalisés :

<Frame caption="Éditeur de segment montrant un segment ciblant les utilisateurs avec une valeur current_level supérieure à 4 et inférieure à 10">
  <img src="https://mintcdn.com/onesignal/3zq1PvSaqvUE2bIx/images/docs/300d36b632a6f6d7017780457bbe2610b71767fd0db093c7611e59714dcbda5b-Screenshot_2025-03-18_at_14.49.56.png?fit=max&auto=format&n=3zq1PvSaqvUE2bIx&q=85&s=b84ab0d2c6eedbd6d4e7a2bf15afe103" width="1380" height="941" data-path="images/docs/300d36b632a6f6d7017780457bbe2610b71767fd0db093c7611e59714dcbda5b-Screenshot_2025-03-18_at_14.49.56.png" />
</Frame>

<br />

<Frame caption="Capture d'écran montrant une notification push ciblant le segment Niveau 5-10 avec un message personnalisé">
  <img src="https://mintcdn.com/onesignal/tc0EvmtSSX56SX0c/images/docs/97e09b42d25c6d3f4c7cb0a6fff4dfb8893cbb4b283f7ff1f77977c33113319c-Screenshot_2025-03-18_at_14.55.47.png?fit=max&auto=format&n=tc0EvmtSSX56SX0c&q=85&s=c7839b12057d65a12a4eaddce6e2c11f" width="2764" height="2286" data-path="images/docs/97e09b42d25c6d3f4c7cb0a6fff4dfb8893cbb4b283f7ff1f77977c33113319c-Screenshot_2025-03-18_at_14.55.47.png" />
</Frame>

### Ajouter des abonnements email et/ou SMS

Le SDK OneSignal crée automatiquement des abonnements web push lorsque les utilisateurs optent pour les recevoir. Vous pouvez également atteindre les utilisateurs via les canaux email et SMS en créant les abonnements correspondants.

* Utilisez la [méthode `addEmail`](/docs/en/web-sdk-reference#addemail-%2C-removeemail) pour créer des abonnements email.
* Utilisez la [méthode `addSms`](/docs/en/web-sdk-reference#addsms-%2C-removesms) pour créer des abonnements SMS.

Si l'adresse e-mail et/ou le numéro de téléphone existent déjà dans l'application OneSignal, le SDK l'ajoutera à l'utilisateur existant, il ne créera pas de doublons.

Vous pouvez afficher les utilisateurs unifiés via **Audience > Users** dans le tableau de bord ou avec l'[API View user](/reference/view-user).

<Frame caption="Un profil utilisateur avec des abonnements push, email et SMS unifiés par External ID">
  <img src="https://mintcdn.com/onesignal/56ctKxZSV4m5VEkn/images/docs/b1cf9999d41da6e4ce333e1126612529b85eac47447bb0b434418d082f595acd-Screenshot_2025-03-18_at_14.43.46.png?fit=max&auto=format&n=56ctKxZSV4m5VEkn&q=85&s=7c3885b66e44e097fa0ed7c47f27c911" width="1506" height="848" data-path="images/docs/b1cf9999d41da6e4ce333e1126612529b85eac47447bb0b434418d082f595acd-Screenshot_2025-03-18_at_14.43.46.png" />
</Frame>

<Note>
  Meilleures pratiques pour la communication multicanale

  * Obtenez un consentement explicite avant d'ajouter des abonnements email ou SMS.
  * Expliquez les avantages de chaque canal de communication aux utilisateurs.
  * Fournissez des préférences de canal afin que les utilisateurs puissent sélectionner les canaux qu'ils préfèrent.
</Note>

***

### Confidentialité et consentement de l'utilisateur

Pour contrôler quand OneSignal collecte les données utilisateur, utilisez les méthodes de contrôle du consentement du SDK :

* [`setConsentRequired(true)`](/docs/en/web-sdk-reference#setconsentrequired) : Empêche la collecte de données jusqu'à ce que le consentement soit donné.
* [`setConsentGiven(true)`](/docs/en/web-sdk-reference#setconsentgiven) : Active la collecte de données une fois le consentement accordé.

Pour en savoir plus sur la confidentialité et la sécurité :

<Columns cols={2}>
  <Card title="Données collectées par le SDK" icon="database" href="/docs/en/data-collected-by-the-onesignal-sdk">
    Examinez les données que le SDK OneSignal collecte auprès des utilisateurs.
  </Card>

  <Card title="Gestion des données personnelles" icon="shield-halved" href="/docs/en/handling-personal-data">
    Gérez et protégez les données utilisateur conformément aux réglementations sur la confidentialité.
  </Card>
</Columns>

***

## Écouter les événements push, utilisateur et in-app

Utilisez les écouteurs du SDK pour réagir aux actions des utilisateurs et aux changements d'état.

Le SDK fournit plusieurs écouteurs d'événements auxquels vous pouvez vous connecter. Consultez notre [guide de référence du SDK](/docs/en/web-sdk-reference) pour plus de détails.

### Événements de notification push

* [Écouteur d'événement de clic](/docs/en/web-sdk-reference#click) : Détecter quand une notification est tapée.
* [Écouteur du cycle de vie au premier plan](/docs/en/web-sdk-reference#foregroundwilldisplay) : Contrôler comment les notifications se comportent au premier plan.

### Changements d'état de l'utilisateur

* [Écouteur d'événement de changement d'état utilisateur](/docs/en/web-sdk-reference#addeventlistener-user-state) : Détecter quand l'External ID est défini.
* [Observateur de permission](/docs/en/web-sdk-reference#permissionchange) : Suivre l'interaction spécifique de l'utilisateur avec l'invite d'autorisation push native.
* [Observateur de changement d'abonnement push](/docs/en/web-sdk-reference#addeventlistener-push-subscription-changes) : Suivre quand le statut de l'abonnement push change.

***

## Configuration avancée et capacités

Explorez davantage de capacités pour améliorer votre intégration :

<Columns cols={3}>
  <Card title="Migrer vers OneSignal" icon="rotate" href="/docs/en/migrating-to-onesignal">
    Passez d'un autre fournisseur de push à OneSignal.
  </Card>

  <Card title="Intégrations" icon="plug" href="/docs/en/integrations">
    Connectez OneSignal avec des outils et plateformes tiers.
  </Card>

  <Card title="Boutons d'action" icon="bell" href="/docs/en/action-buttons">
    Ajoutez des boutons interactifs aux notifications push.
  </Card>

  <Card title="Messagerie multilingue" icon="globe" href="/docs/en/multi-language-messaging">
    Envoyez des messages localisés aux utilisateurs dans leur langue préférée.
  </Card>

  <Card title="Vérification d'identité" icon="shield-check" href="/docs/en/identity-verification">
    Sécurisez votre intégration SDK avec la vérification d'identité côté serveur.
  </Card>

  <Card title="Résultats personnalisés" icon="chart-line" href="/docs/en/custom-outcomes">
    Suivez les événements de conversion personnalisés liés à vos messages.
  </Card>
</Columns>

### Configuration et référence du SDK Web

<Columns cols={2}>
  <Card title="Configuration web push" icon="gear" href="/docs/en/web-push-setup">
    Activez toutes les fonctionnalités clés de web push pour votre intégration.
  </Card>

  <Card title="Référence du SDK Web" icon="code" href="/docs/en/web-sdk-reference">
    Détails complets sur les méthodes disponibles et les options de configuration.
  </Card>
</Columns>

<Check>Félicitations ! Vous avez terminé avec succès le guide de configuration du SDK Web.</Check>

***

<Info>
  Besoin d'aide ?

  Discutez avec notre équipe d'assistance ou envoyez un e-mail à `support@onesignal.com`

  Veuillez inclure :

  * Les détails du problème que vous rencontrez et les étapes de reproduction si disponibles
  * Votre OneSignal App ID
  * L'External ID ou le Subscription ID le cas échéant
  * L'URL du message que vous avez testé dans le OneSignal Dashboard le cas échéant
  * Tous les [journaux ou messages d'erreur](/docs/en/capturing-a-debug-log) pertinents

  Nous serons ravis de vous aider !
</Info>
