Passer au contenu principal

Vue d’ensemble

Le contenu dynamique vous permet de personnaliser les messages à grande échelle, sans créer de versions séparées pour chaque audience. Que vous envoyiez des messages multilingues ou que vous adaptiez le contenu par région ou campagne, le contenu dynamique vous permet de définir un message qui s’ajuste automatiquement pour chaque utilisateur. Vous faites cela en téléchargeant un fichier CSV ou par programmation en utilisant nos API Template avec des données contenant des variations de contenu et en référençant ces valeurs dans votre message en utilisant la syntaxe Liquid. Lorsqu’un message est envoyé, OneSignal extrait le contenu approprié pour chaque utilisateur en fonction de ses balises de données. Le contenu dynamique fonctionne avec Push, Email et SMS, ce qui le rend idéal pour :
  • Flux d’intégration ou marketing multilingues
  • Promotions spécifiques à une région ou un segment
  • Personnalisation pilotée par des données de campagne externes
Avantages clés :
  • Personnalisation à grande échelle – Offrez des expériences personnalisées sans créer et gérer des dizaines de variantes de messages.
  • Support multilingue – Écrivez un message qui s’affiche automatiquement dans la langue préférée de chaque utilisateur.
  • Segmentation dynamique – Modifiez le contenu du message en fonction des propriétés de l’utilisateur comme la langue, la région, le forfait ou des balises personnalisées telles que campaign_id.
  • Collaboration sans friction – Laissez les traducteurs ou les équipes non techniques créer et modifier le contenu des messages directement dans des fichiers CSV, sans connexion OneSignal nécessaire.
  • Compatibilité multicanal – Utilisez la même logique CSV pour les campagnes Push, Email et SMS.
Cas d’utilisation courants :
  • Annonces d’événements par pays ou ville
  • Notifications push personnalisées basées sur l’ID de campagne ou l’historique d’achat
  • Test de plusieurs lignes d’objet ou messages sur des groupes d’utilisateurs
Consultez Personnalisation des messages pour plus d’options de personnalisation de vos messages.

Configuration du contenu dynamique

Créez un nouveau message ou modèle. Depuis le tableau de bord : Sélectionnez Dynamic Content.
  • Téléchargez un fichier CSV qui mappe le contenu du message aux balises de données.
Depuis les API Templates : Utilisez la propriété dynamic_content.
  • Excellente solution si votre contenu dynamique change fréquemment.

Bouton Dynamic Content dans l'éditeur de création de push.

Formatez votre contenu

Vous pouvez commencer avec un fichier vierge ou choisir l’un des modèles fournis :
  • Multi-language
  • Content personalization

Options de modèles CSV fournies par OneSignal.

Pour les détails de l’API, consultez :

Exigences CSV

  • La taille du fichier doit être inférieure à 200 KB
  • En-têtes de colonne :
    • Alphanumériques uniquement
    • Utilisez des underscores (_) au lieu d’espaces
    • Évitez les caractères spéciaux
  • Assurez-vous de l’encodage UTF-8 dans votre éditeur de feuilles de calcul
  • Multi-language Example
  • Content Personalization Example
Mappez la propriété subscription.language à différentes traductions par section.

Similaire à une formule VLOOKUP dans Excel, nous faisons correspondre les attributs utilisateur avec le contenu correspondant du CSV.

Référencer le contenu dynamique dans les messages

Pour afficher du contenu personnalisé depuis dynamic_content, utilisez cette syntaxe Liquid.
{{dynamic_content.file_name.section_name[data_tag_or_property]}}
Remplacez :
  • file_name : Nom du fichier CSV (sans .csv).
  • section_name : Valeur dans la première colonne de la ligne
  • data_tag_or_property : En-tête de colonne correspondant à une balise de données ou une propriété d’abonnement

Contenu de secours

L’ajout de contenu de secours empêchera les utilisateurs de recevoir du contenu vide. Il garantit que votre message s’affiche lorsque :
  • un utilisateur n’a pas de balise ou de propriété correspondante.
  • un utilisateur a une balise ou une propriété qui n’est pas disponible dans dynamic_content.

L’utilisateur n’a pas de balise ou de propriété correspondante

Si subscription.language n’existe pas, référencez plutôt la colonne par défaut de dynamic_content.
{% assign lang = subscription.language | default: "default" %}
{{ dynamic_content.content_personalization_template.title[lang] }}

L’utilisateur a une balise ou une propriété qui n’est pas disponible dans dynamic_content

Si subscription.language existe sur un abonnement, mais pas dans dynamic_content, référencez plutôt la colonne par défaut.
// ajoutez chaque langue disponible dans votre dynamic_content :
{% assign supported_langs = "de,en,es,fr,it,default" | split: "," %}
{% assign lang = subscription.language | default: "default" %}

// vérifiez si la langue d'abonnement est dans vos langues prises en charge, sinon, assignez la langue comme 'default'
{% unless supported_langs contains lang %}
  {% assign lang = "default" %}
{% endunless %}

{{ dynamic_content.content_personalization_template.title[lang] }}

Exemples

E-mail multilingue

Utilisez translations.csv pour localiser votre e-mail :
  • {{dynamic_content.translations.section_1[subscription.language]}}
  • {{dynamic_content.translations.section_2[subscription.language]}}

L'exemple montre comment ajouter la syntaxe Liquid pour l'exemple multilingue.

Mettez à jour les lignes d’objet, les pré-en-têtes, les étiquettes de boutons et les URL en utilisant Liquid.

Message push personnalisé

Utilisez content_personalization_template.csv pour les messages push spécifiques à l’utilisateur. La balise campaign_id de chaque utilisateur détermine quelle ligne utiliser.
Prérequis : Chaque utilisateur doit avoir une balise de données nommée campaign_id. Au moment de l’envoi, OneSignal utilise la valeur campaign_id de l’utilisateur pour sélectionner la ligne correspondante dans votre CSV.

Format CSV (lignes indexées par campaign_id)

campaign_id,title,message,url
campaign_123,Flash deal for you,Tap to claim,https://example.com/flash
campaign_456,Weekend picks are here,See what's trending,https://example.com/weekend
default,Our latest offers,See what's new,https://example.com
  • La première colonne (campaign_id) est la clé de ligne qui doit correspondre à la valeur de la balise campaign_id de l’utilisateur.
  • Les autres colonnes (title, message, url) sont les champs que vous insérerez dans le push.
  • Incluez une ligne default afin que les valeurs non balisées ou inconnues affichent toujours du contenu valide.

Comment le Liquid se mappe au CSV

{{ dynamic_content.content_personalization_template[campaign_id].title }}
{{ dynamic_content.content_personalization_template[campaign_id].message }}
{{ dynamic_content.content_personalization_template[campaign_id].url }}
  • content_personalization_template → le nom du fichier CSV (omettez .csv).
  • [campaign_id] → sélectionne la ligne dont la valeur de la première colonne est égale à la balise campaign_id de l’utilisateur.
  • .title / .message / .url → retourne la colonne choisie de cette ligne.

Exemple de secours (recommandé)

{% assign cid = campaign_id | default: "default" %}

{% unless dynamic_content.content_personalization_template[cid] %}
  {% assign cid = "default" %}
{% endunless %}

{{ dynamic_content.content_personalization_template[cid].title }}
{{ dynamic_content.content_personalization_template[cid].message }}
{{ dynamic_content.content_personalization_template[cid].url }}
Règles d’en-tête : Préférez alphanumériques/underscores (par ex., campaign_id, title). Si vous devez utiliser des espaces ou des caractères spéciaux, accédez avec la notation hash :
{{ dynamic_content.file_name["row key"]["column key"] }}
Exemple Liquid de personnalisation de contenu dynamique

L'exemple montre comment ajouter la syntaxe Liquid pour l'exemple de personnalisation de contenu.


Tester et prévisualiser

1

Créer un CSV de test

Test multilingue :
  • Colonnes : email, language
Test de personnalisation :
  • Colonnes : external_id, campaign_id

Exemple de CSV à télécharger et créer un segment de testeurs d'e-mails.


Utilisez l’adressage + dans les e-mails pour tester plusieurs variations : username+test@example.com

Exemple de CSV à télécharger et créer un segment de testeurs avec external_id et la balise campaign_id.

2

Télécharger votre segment de test

Accédez à Subscriptions ou Segments > Upload/Import Users.Définissez la première colonne comme identifiant. Toutes les autres colonnes sont traitées comme des propriétés utilisateur ou des balises de données.

Créez un segment de vos testeurs à répéter selon vos besoins.

Consultez Import pour plus d’informations sur le téléchargement des données utilisateur.
3

Visualiser le message

Après l’envoi de vos messages de test, vérifiez vos boîtes de réception ou appareils pour vérifier l’affichage.
Si dynamic_content ne s’affiche pas, référencez Contenu de secours

L'exemple montre l'e-mail envoyé avec du contenu dynamique.

L'exemple montre le push envoyé avec du contenu dynamique.

Vous pouvez maintenant dimensionner la messagerie personnalisée en utilisant ces modèles et CSV.

Considérations d’utilisation

Quand utiliser le contenu dynamique ou les données personnalisées

  • Utilisez le contenu dynamique pour des langues diverses ou des blocs de messages personnalisés.
  • Utilisez les données personnalisées pour une personnalisation simple et en ligne dans une seule langue.

Modification des modèles

Retéléchargez les CSV ou utilisez la propriété dynamic_content de l’API Update Template pour mettre à jour.

Caractères spéciaux dans les clés

Utilisez la notation hash si les clés contiennent des caractères non alphanumériques :
{{ dynamic_content.file_name["!the_row!"]["&the_column&"] }}
Utilisez la notation par points pour les clés alphanumériques standard :
{{ dynamic_content.file_name.the_row.the_column }}

Articles connexes