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

# URLs, liens et liens profonds

> Configurez les URL de lancement, les liens profonds, les URL dynamiques, le suivi UTM et le suivi des clics dans les messages push, e-mail, in-app, SMS et RCS.

## Comment fonctionnent les liens

Chaque message OneSignal — push, e-mail, in-app, SMS ou RCS — peut inclure une URL qui amène l'User vers une destination lorsqu'il clique. Cette destination peut être une page web qui s'ouvre dans un navigateur ou un [lien profond](#liens-profonds) qui s'ouvre directement dans votre application.

La façon dont vous définissez l'URL dépend du canal :

* **Push** : Utilisez le champ **Launch URL** dans le tableau de bord ou le paramètre `url` dans l'API.
* **E-mail** : Ajoutez des liens via l'éditeur d'e-mail ou en HTML. OneSignal suit automatiquement les clics.
* **In-app** : Configurez les [Click Actions](./iam-click-actions) sur les boutons, images ou arrière-plans.
* **SMS/RCS** : Ajoutez des liens directement dans le message. Utilisez **Insert Trackable Link** dans le tableau de bord pour le raccourcissement et le suivi automatiques. Voir [Liens SMS/RCS traçables](#sms%2Frcs-trackable-links).

### Liens profonds

Pour ouvrir du contenu directement dans votre application plutôt que dans un navigateur, utilisez un lien profond. La prise en charge des liens profonds varie selon le canal :

* **Push et in-app** : Prennent en charge les schémas d'URL personnalisés comme `votre-app://produit/123` et les universal links / App Links en `https://`.
* **E-mail et SMS** : Seuls les universal links / App Links en `https://` sont pris en charge. Les schémas d'URL personnalisés ne fonctionnent pas car les clients de messagerie et les applications SMS ne les gèrent pas.

<Card title="Deep Linking" icon="link" href="./deep-linking">
  Guide complet pour configurer les schémas d'URL personnalisés, les universal links et le routage spécifique à l'application.
</Card>

### Push

#### Launch URL

La **Launch URL** s'ouvre lorsque l'User clique sur une notification push. Elle doit commencer par `https://`.

<Info>
  Pour utiliser des URL `http://` sur les appareils Apple, configurez la propriété [NSAppTransportSecurity](https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity) dans le fichier `Info.plist` de votre application.
</Info>

Si vous envoyez un seul message aux Users web et mobiles, utilisez les champs d'URL spécifiques à chaque plateforme :

* `url` — cible toutes les plateformes
* `web_url` — cible uniquement les Subscriptions web push
* `app_url` — cible uniquement les Subscriptions mobiles

<Frame caption="Champ Launch URL dans le tableau de bord OneSignal">
  <img src="https://mintcdn.com/onesignal/KudGm9GSZy-rIRO3/images/dashboard/push-launch-url.png?fit=max&auto=format&n=KudGm9GSZy-rIRO3&q=85&s=5b5687b99e1bc2ab8c3afd9e1780c1a5" alt="Tableau de bord OneSignal affichant le champ de saisie Launch URL pour les notifications push" width="1066" height="440" data-path="images/dashboard/push-launch-url.png" />
</Frame>

<Tip>
  Pour ignorer une notification web push sans ouvrir aucune page, ajoutez `?_osp=do_not_open` à la launch URL, par exemple `https://yoursite.com/page?_osp=do_not_open`. Cela fonctionne uniquement pour le web push.
</Tip>

#### Additional data

Au lieu d'une Launch URL, vous pouvez envoyer des paires clé-valeur personnalisées via le champ **Additional Data** (`data` dans l'API). Votre application lit ces données via le [SDK's Notification Click Listener](./mobile-sdk-reference#push-notification-events) grâce à la propriété `additionalData` — utile lorsque vous avez besoin de plus de flexibilité qu'une simple URL.

<Frame caption="Envoyez une URL via le champ Additional Data pour que votre application la traite">
  <img src="https://mintcdn.com/onesignal/KudGm9GSZy-rIRO3/images/dashboard/push-additional-data.png?fit=max&auto=format&n=KudGm9GSZy-rIRO3&q=85&s=9c00048fd23586de1e3e70a82fcd1db7" alt="Tableau de bord OneSignal affichant le champ Additional Data avec une paire clé-valeur personnalisée" width="1034" height="378" data-path="images/dashboard/push-additional-data.png" />
</Frame>

### Suivi des liens dans les e-mails

OneSignal suit automatiquement les clics sur les liens dans les e-mails lorsque **Track link clicks** est activé pour l'e-mail ou le template (activé par défaut). OneSignal suit le nombre total de clics et les clics uniques par e-mail et par lien individuel (jusqu'à 30 liens par e-mail). Consultez ces statistiques dans les [Email Message Reports](./email-message-reports).

<Note>
  Pour les liens de désinscription, consultez [Unsubscribe Links & Email Subscriptions](./unsubscribe-links-email-subscriptions).
</Note>

<Frame caption="Tableau Click Activity affichant les statistiques de suivi par lien">
  <img src="https://mintcdn.com/onesignal/3PUtCumasMeFG2p0/images/docs/link_tracking.png?fit=max&auto=format&n=3PUtCumasMeFG2p0&q=85&s=318dab483003dac8e1203ab75b5c2756" alt="Rapport de message e-mail OneSignal affichant l'activité des clics avec le nombre total et unique de clics par lien" width="957" height="312" data-path="images/docs/link_tracking.png" />
</Frame>

<Accordion title="Comment le suivi des clics dans les e-mails réécrit les URL">
  Le suivi fonctionne en réécrivant les URL pour capturer l'événement de clic, puis en redirigeant l'User vers la destination d'origine. Cela se produit presque instantanément mais peut entraîner un comportement inattendu avec les [liens profonds](./deep-linking). Par exemple :

  `https://some-domain.com/the-page`

  devient quelque chose comme :

  `https://some-domain/c/eJxU0D2uGzEMBODTrDoZJPW3...`

  L'User est immédiatement redirigé vers l'URL cible.
</Accordion>

Si vous construisez des liens avec la syntaxe Liquid, OneSignal peut ne pas les détecter automatiquement. Marquez explicitement un lien comme traçable :

```liquid theme={null}
{{ 'https://some-domain.com/the-page' | track_link }}
```

Pour désactiver le suivi pour tout un e-mail, décochez **Track link clicks** dans l'éditeur d'e-mail du tableau de bord ou définissez `disable_email_click_tracking: true` dans l'API.

<Frame caption="La case Track link clicks est décochée pour désactiver le suivi">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/onesignal/images/docs/8d3292a5cb0b24a4b5bc8f9ae1074f513c3fed310045a6b6c534b94e344a401b-Screenshot_2025-02-14_at_11.50.38_AM.png" alt="Paramètres d'e-mail du tableau de bord OneSignal avec Track link clicks décoché" />
</Frame>

Pour désactiver le suivi pour un lien spécifique tout en le conservant pour les autres, ajoutez l'attribut `disable-tracking=true` à sa balise d'ancrage :

```html theme={null}
<a href="https://some-domain.com/the-page" disable-tracking=true>Voir la page</a>
```

<Warning>
  Désactiver le suivi pour tout un e-mail signifie qu'aucune donnée de clic n'est collectée — le CTR affiche « N/A » dans les [Email Message Reports](./email-message-reports).
</Warning>

### Liens SMS/RCS traçables

OneSignal fournit des liens raccourcis et traçables pour les messages SMS/RCS en utilisant le domaine `1sgnl.co`. Il suffit d'envelopper votre URL dans `{{ "https://your-url.com" | track_link }}` et le lien sera remplacé par un lien traçable lors de l'envoi du message. Pour l'utilisation via l'API, consultez la [référence de l'API de création de message SMS/RCS](/reference/sms).

Un seul lien traçable est autorisé par message SMS/RCS.

Depuis le tableau de bord, vous pouvez également cliquer sur le bouton **Insert Trackable Link** sous la zone de saisie du message et entrer votre URL :

<Frame caption="Modal pour saisir un lien SMS traçable">
  <img src="https://mintcdn.com/onesignal/bUViEhbP9-TaIZwH/images/docs/trackable_sms_1.png?fit=max&auto=format&n=bUViEhbP9-TaIZwH&q=85&s=c1cd72dbf1cd7e3be05460bd4958ecff" alt="Modal du tableau de bord OneSignal pour insérer un lien raccourci traçable dans un message SMS" width="2570" height="1232" data-path="images/docs/trackable_sms_1.png" />
</Frame>

Cliquez sur **Insert trackable link** pour ajouter le lien court à votre message :

```liquid theme={null}
Your order is on its way!
Track it here: {{ "https://your-url.com" | track_link }}
```

Lors de l'envoi du message, les doubles accolades et leur contenu seront remplacés par un lien traçable `1sgnl.co/XXXX` :

<Frame caption="Le lien traçable tel qu'il apparaît sur un appareil">
  <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/trackable_sms_3.png?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=627e22caedd413d193a403aef6070b68" alt="Notification SMS sur un appareil mobile affichant un lien raccourci traçable" width="1242" height="1044" data-path="images/docs/trackable_sms_3.png" />
</Frame>

***

## URL dynamiques

Vous pouvez créer des URL personnalisées et spécifiques à chaque utilisateur avec la [syntaxe Liquid](./using-liquid-syntax). Par exemple, incluez l'identifiant d'un User dans l'URL afin que chaque personne arrive sur sa propre page de profil, ou insérez un identifiant de produit d'un événement récent pour pointer directement vers un article pertinent.

Les URL dynamiques peuvent extraire des données de :

* Propriétés utilisateur (par exemple, `external_id`, `email`)
* Tags stockés dans OneSignal
* `custom_data` envoyées via l'API
* Custom Events (dans les Journeys)

<Tabs>
  <Tab title="User properties">
    Injectez des valeurs telles que `external_id` ou `email` directement dans les URL.

    ```text theme={null}
    https://yourdomain.com/profile/user={{subscription.external_id}}
    ```

    Si le `external_id` de l'User est `12345`, l'URL finale est :

    ```text theme={null}
    https://yourdomain.com/profile/user=12345
    ```

    De même :

    ```text theme={null}
    https://yourdomain.com/profile/email={{subscription.email}}
    ```

    Si l'e-mail de l'User est `john@example.com`, l'URL finale est :

    ```text theme={null}
    https://yourdomain.com/profile/email=john@example.com
    ```
  </Tab>

  <Tab title="Tags">
    Référencez les tags utilisateur stockés dans OneSignal.

    ```text theme={null}
    https://yourdomain.com/topic/{{tag_key}}
    ```

    Si l'User a un tag `tag_key` avec la valeur `technology`, l'URL finale est :

    ```text theme={null}
    https://yourdomain.com/topic/technology
    ```

    Si `tag_key` n'est pas défini, l'URL devient :

    ```text theme={null}
    https://yourdomain.com/topic/
    ```

    Utilisez le filtre `default` pour définir une valeur de repli :

    ```text theme={null}
    https://yourdomain.com/topic/{{tag_key | default: 'unknown'}}
    ```
  </Tab>

  <Tab title="custom_data">
    Utilisez l'API de création de message avec des Templates. Définissez l'URL dans le template avec une syntaxe Liquid qui référence l'objet `custom_data`.

    URL du template :

    ```text theme={null}
    https://yourdomain.com/invoice={{message.custom_data.invoice_number}}
    ```

    Requête API avec `custom_data` :

    ```json theme={null}
    {
        "template_id": "YOUR_TEMPLATE_ID",
        "custom_data": {
            "invoice_number": "12345"
        }
    }
    ```

    URL finale :

    ```text theme={null}
    https://yourdomain.com/invoice=12345
    ```
  </Tab>

  <Tab title="Custom Events">
    Personnalisez les URL en utilisant les Custom Events capturés dans les Journeys. Référencez les propriétés d'événement directement ou assignez l'événement à une variable pour une syntaxe plus lisible.

    **Référencer les propriétés d'événement directement :**

    ```text theme={null}
    https://yourdomain.com/order/{{ journey.event.purchase.properties.order_id }}
    ```

    Si le dernier événement `purchase` inclut `"order_id": "98765"`, l'URL finale est :

    ```text theme={null}
    https://yourdomain.com/order/98765
    ```

    **Assigner l'événement pour plus de lisibilité :**

    ```liquid theme={null}
    {% assign event = journey.event.purchase %}
    https://yourdomain.com/order/{{ event.properties.order_id }}
    ```

    **Accéder à l'événement le plus récent stocké :**

    ```text theme={null}
    https://yourdomain.com/product/{{ journey.last_event.properties.product_id | default: 'unknown' }}
    ```

    **Noms d'événements avec espaces ou caractères spéciaux (notation avec crochets) :**

    ```text theme={null}
    https://yourdomain.com/status/{{ journey.event["order status"].properties.current_status }}
    ```

    <Note>
      Les Custom Events ne peuvent être référencés que dans des Templates utilisés au sein de Journeys. Utilisez `journey.first_event`, `journey.last_event` ou `journey.event.<name>` pour accéder aux données d'événement en Liquid.
    </Note>
  </Tab>
</Tabs>

<Tip>
  N'injectez des données que dans des parties de l'URL — gardez le protocole (`https://`) et le domaine comme texte statique. Utilisez le filtre `default` pour définir une valeur de repli si une valeur est absente.
</Tip>

***

## Paramètres UTM

Les paramètres UTM permettent de suivre les performances des campagnes en ajoutant des informations de `source`, `medium` et `campaign` aux URL. Ajoutez les paramètres UTM directement aux URL dans vos messages.

Pour les notifications push envoyées depuis le tableau de bord, OneSignal peut ajouter automatiquement les UTM.

<Accordion title="Automatic UTMs for push notifications" icon="circle-chevron-down">
  Accédez à **Settings > Push & In-app > UTM Settings** et activez **Turn on automated UTM tagging**.

  Une fois activé, OneSignal ajoute ces valeurs (modifiables) :

  * **Source** = `utm_source` — par défaut `onesignal`
  * **Medium** = `utm_medium` — par défaut `push`
  * **Campaign** = `utm_campaign` — par défaut `{{ sendDate }}-{{ title }}`
    * `sendDate` : Date d'envoi
    * `title` : Les 15 premiers caractères alphanumériques, tirets bas ou tirets du titre du message

  Exemple :

  ```text theme={null}
  https://test.com?utm_source=onesignal&utm_medium=push&utm_campaign=2020-06-03-sale-today
  ```

  <Warning>
    Le balisage UTM automatique s'applique uniquement aux notifications push envoyées depuis le tableau de bord. Il ne fonctionne pas avec :

    * Les e-mails, SMS ou messages in-app
    * Les Journeys, Templates ou messages automatisés
    * Les requêtes API
    * Le bouton « Send Test Message »
    * Les champs Additional data

    Pour ces cas, ajoutez manuellement les paramètres UTM dans vos templates ou charges utiles API.
  </Warning>

  #### Gestion des URL et substitutions

  Si vous ajoutez manuellement des paramètres UTM à une launch URL alors que le balisage automatique est activé, vos UTM manuels remplacent les valeurs automatiques.
</Accordion>

***

## FAQ

### Comment créer un lien vers l'app store ?

Utilisez l'URL de la boutique comme launch URL :

* **Android** : Utilisez le lien Google Play, par exemple `https://play.google.com/store/apps/details?id=com.example.app`. Voir [Linking to Google Play](https://developer.android.com/distribute/marketing-tools/linking-to-google-play.html).
* **iOS** : Utilisez le lien App Store mais remplacez `https://` par `itms-apps://` pour ouvrir directement l'application App Store, par exemple `itms-apps://apps.apple.com/app/id123456789`.

### Puis-je créer un lien vers une autre application ?

Pour les messages push et in-app, vous pouvez utiliser un schéma d'URL pour créer un lien profond vers une autre application. Par exemple, pour [créer un lien profond vers WhatsApp](https://faq.whatsapp.com/425247423114725) : `whatsapp://wa.me/15551234567`.

Pour les e-mails et les SMS, utilisez des liens `https://` à la place — les schémas d'URL personnalisés ne sont pas pris en charge.

### Pourquoi ma launch URL ne fonctionne-t-elle pas ?

Causes courantes :

* **URL incorrecte** : L'URL doit commencer par `https://`. Si vous utilisez `http://` sur des appareils Apple, vous devez configurer [NSAppTransportSecurity](https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity).
* **Schémas personnalisés sur mobile** : Les liens profonds comme `votre-app://chemin` peuvent ne pas fonctionner comme launch URL sur toutes les plateformes. Utilisez le champ **Additional Data** ou consultez [Deep Linking](./deep-linking) pour un routage fiable dans l'application.
* **Comportement par défaut du web push** : Si aucune launch URL n'est définie, le web push ouvre votre page d'accueil. Définissez une launch URL explicitement pour contrôler la destination.
* **Interférence du suivi des clics** : Dans les e-mails, la réécriture des liens pour le suivi des clics peut casser les liens profonds. Essayez de [désactiver le suivi des clics](#suivi-des-liens-dans-les-e-mails) pour ce lien spécifique.

### Les paramètres UTM fonctionnent-ils avec les e-mails et les SMS ?

Non. Le balisage UTM automatique s'applique uniquement aux notifications push envoyées depuis le tableau de bord. Pour les e-mails et les SMS, ajoutez manuellement les paramètres UTM aux URL dans vos templates ou charges utiles API. Consultez [Paramètres UTM](#paramètres-utm) pour la liste complète des limitations.

### Puis-je empêcher une notification push d'ouvrir une URL ?

Sur mobile, cliquer sur une notification push ouvre toujours l'application.

Sur le web, ajoutez `?_osp=do_not_open` à la launch URL pour ignorer la notification sans ouvrir aucune page. Voir le [conseil Launch URL](#launch-url) pour un exemple.

***

<Columns cols={2}>
  <Card title="Deep Linking" icon="link" href="./deep-linking">
    Configurez les schémas d'URL personnalisés et le routage spécifique à l'application pour les messages push et in-app.
  </Card>

  <Card title="Personalization" icon="wand-magic-sparkles" href="./message-personalization">
    Insérez des données utilisateur dynamiques dans les messages grâce à la syntaxe Liquid et aux tags.
  </Card>

  <Card title="Using Liquid syntax" icon="code" href="./using-liquid-syntax">
    Guide de référence pour les filtres, balises et variables Liquid dans les templates OneSignal.
  </Card>

  <Card title="Email message reports" icon="chart-line" href="./email-message-reports">
    Consultez les métriques de livraison, d'ouverture et de taux de clics pour vos campagnes e-mail.
  </Card>

  <Card title="Action buttons" icon="hand-pointer" href="./action-buttons">
    Ajoutez des boutons d'appel à l'action aux notifications push avec des URL personnalisées.
  </Card>
</Columns>
