Utilisation des templates Liquid
Les templates Liquid étendent considérablement les capacités de personnalisation de Pushwoosh en implémentant une logique sophistiquée en plus de l’utilisation habituelle du Contenu Dynamique.
La personnalisation des messages dans Pushwoosh est basée sur les Tags (données utilisateur). Pushwoosh propose une variété de Tags par défaut et de Tags personnalisés. En les utilisant, vous pouvez spécifier le prénom de l’utilisateur, sa ville, son historique d’achat, etc., pour envoyer un message plus personnalisé, par exemple : Bonjour {First_name}, merci pour votre commande de {item}.
Les templates Liquid ajoutent plus de logique au contenu dynamique. Par exemple, si le tag d’abonnement d’un utilisateur contient « free », vous pouvez lui envoyer le message : « Profitez de votre réduction de 10 % ».
Modifier le contenu du message en fonction des identifiants, des comportements et des préférences des utilisateurs est le moyen le plus efficace d’augmenter la pertinence et d’obtenir des résultats plus probants pour vos campagnes marketing.
Syntaxe
Anchor link toLes templates de contenu basés sur Liquid de Shopify utilisent une combinaison de balises (tags), d’objets et de filtres pour charger du contenu dynamique. Les templates de contenu permettent d’accéder à certaines variables depuis un template et d’afficher leurs données sans avoir à connaître quoi que ce soit sur les données elles-mêmes.
Objets
Anchor link toLes objets
définissent le contenu qui sera affiché à un utilisateur. Les objets
doivent être entourés de doubles accolades : {{ }}
Par exemple, lors de la personnalisation d’un message, envoyez {{Name}}
dans son corps pour ajouter les noms des utilisateurs au contenu du message. Le nom de l’utilisateur (valeur du tag Name) remplacera l’objet Liquid dans le message que l’utilisateur verra.
Entrée | Sortie |
---|---|
Bonjour {{Name}} ! Nous sommes ravis de vous revoir ! | Bonjour Anna ! Nous sommes ravis de vous revoir ! |
Tags
Anchor link toLes tags
créent la logique et le flux de contrôle pour les templates. Les délimiteurs accolades-pourcentage {%
et %}
et le texte qu’ils entourent ne produisent aucune sortie visible lorsque le template est rendu. Cela vous permet d’assigner des variables et de créer des conditions ou des boucles sans montrer la logique Liquid à un utilisateur.
Par exemple, en utilisant le tag if
, vous pouvez faire varier la langue du message en fonction de la langue définie sur l’appareil de l’utilisateur :
Entrée
{% if Language == 'fr' %}Salut!{% else %}Hello!{% endif %}
Sortie (fr): Salut!
Sortie (es): Hello!
Opérateurs de tags
Anchor link toOpérateur | Description |
---|---|
== | égal à |
!= | différent de |
> | supérieur à |
< | inférieur à |
>= | supérieur ou égal à |
<= | inférieur ou égal à |
or | ou logique |
and | et logique |
contains | vérifie la présence d’une sous-chaîne dans une chaîne ou un tableau de chaînes |
Filtres
Anchor link toLes filtres
modifient la sortie d’un objet ou d’une variable Liquid. Ils sont utilisés à l’intérieur des doubles accolades {{ }}
et de l’assignation de variable, et sont séparés par un caractère pipe |
. Plusieurs filtres peuvent être utilisés sur une même sortie, et sont appliqués de gauche à droite.
Entrée | Sortie |
---|---|
{{ Name | capitalize | prepend:"Hello " }} | Hello Anna |
Contenu connecté
Anchor link toLe Contenu Connecté est une fonctionnalité des templates Liquid qui vous permet de récupérer et d’utiliser dynamiquement des données provenant d’une source externe, telle qu’un service web, directement dans vos templates d’e-mail ou de notification push. Cette fonctionnalité permet une personnalisation en temps réel en récupérant des données JSON à partir d’une URL spécifiée et en les sauvegardant dans une variable qui peut être utilisée dans votre contenu.
Syntaxe
Anchor link to{% connected_content url :save result %}
- url : L’URL à partir de laquelle récupérer les données.
- :save : Une directive indiquant où le JSON récupéré doit être sauvegardé.
- result: Le nom de la variable pour stocker le JSON récupéré.
Une fois les données récupérées et stockées dans la variable spécifiée, vous pouvez utiliser cette variable dans le contenu de votre template.
Exemple d’utilisation
Anchor link toConsidérez un scénario où vous avez un service de coupons qui renvoie une réponse JSON avec un code de coupon. Le service renvoie le JSON suivant :
{ "code": "coupon code"}
Vous pouvez récupérer le code de coupon et l’utiliser dans votre template comme suit :
{% connected_content https://example.com/couponwebservice.json :save result %}
Your coupon code is {% result.code %}
Utilisation des templates Liquid dans les messages envoyés via l’API
Anchor link toUtilisez la syntaxe Liquid dans vos requêtes createMessage
pour implémenter les templates Liquid. Les templates sont disponibles pour le paramètre « content » de la requête createMessage
, ainsi que pour tout autre paramètre supportant le Contenu Dynamique, en particulier les paramètres spécifiques à la plateforme « title », « subtitle » et « image ».
En utilisant les templates de contenu, vous pouvez soit spécifier les données dans vos requêtes API (en passant le paramètre « template_bindings »), soit obtenir les données à partir des valeurs de Tag stockées sur les appareils des utilisateurs (en n’utilisant pas le paramètre « template_bindings »). De cette façon, vous pouvez construire des campagnes push basées sur l’utilisateur contenant un contenu extrêmement pertinent.
Pour définir la logique du template en utilisant des Tags avec des espaces dans leurs noms, utilisez la technique suivante :
Exemple
Anchor link to{% capture my_tag %}{{My Tag}}{% endcapture %}{% if my_tag == 'value' %}Contenu à envoyer dans ce cas{% else %}Contenu à envoyer dans le cas contraire{% endif %}
Cas d’utilisation des templates Liquid
Anchor link toVous trouverez ici plusieurs cas d’utilisation où les templates Liquid sont utiles.
Push multilingue
Anchor link toLes templates Liquid permettent de spécifier précisément dans quelle langue les utilisateurs doivent recevoir vos messages push. Regardez l’exemple simple de requête API et le message reçu en fonction des liaisons de template utilisées dans la requête.
Entrée Liquid
{% if Language == 'es' %}¡Hola!{% else %}Hello!{% endif %}
Requête API
{ "request": { "application": "XXXXX-XXXXX", // Pushwoosh app code "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel "notifications" : [ // push message parameters { "content": "{% raw %}{% if language == 'es' %}¡Hola!{% else %}hello!{% endif %}{% endraw %}", "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used. "language" : "es" } } ] }}
La langue est ‘es’ : ¡Hola!
La langue est ‘en’ : Hello!
Incitation à la mise à niveau de l’abonnement
Anchor link toEncouragez vos clients à mettre à niveau leur abonnement en fonction de leur plan actuel.
Entrée Liquid
{% if Subscription == 'Basic' %} Passez à l'abonnement Silver pour obtenir plus de fonctionnalités et un support 24/7.{% elsif Subscription == 'Silver' %} Passez à l'abonnement Gold pour un support prioritaire et des fonctionnalités avancées.{% else %} Veuillez contacter votre gestionnaire pour renouveler votre abonnement.{% endif %}
Requête API
{ "request": { "application": "XXXXX-XXXXX", // Pushwoosh app code "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel "notifications" : [ // push message parameters { "content": "{% raw %}{% if Subscription == 'Basic' %}Passez à l'abonnement Silver pour obtenir plus de fonctionnalités et un support 24/7.{% elsif Subscription == 'Silver' %}Passez à l'abonnement Gold pour un support prioritaire et des fonctionnalités avancées.{% else %}Veuillez contacter votre gestionnaire pour renouveler votre abonnement. {% endif %}{% endraw %}", "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used. "language" : "es" } } ] }}
Sortie |
---|
Pour les utilisateurs avec un abonnement Basic : Passez à l’abonnement Silver pour obtenir plus de fonctionnalités et un support 24/7. |
Pour les utilisateurs avec un abonnement Silver : Passez à l’abonnement Gold pour un support prioritaire et des fonctionnalités avancées. |
Pour les utilisateurs avec des abonnements autres que Basic ou Silver : Veuillez contacter votre gestionnaire pour renouveler votre abonnement. |
Tags de type Liste
Anchor link toLes templates de contenu sont très utiles pour gérer les Tags de type Liste.
Taille variable
Anchor link toL’un des cas d’utilisation possibles est de fournir un contenu différent en fonction du nombre de valeurs que le Tag contient. Par exemple, vous pouvez offrir différentes réductions à des clients ayant des comportements différents. Disons qu’un client a des articles dans sa WishList - encouragez-le à acheter avec la réduction la plus appropriée en fonction du nombre de produits qu’il va acheter !
Entrée Liquid
{% if WishList.size >= 3 %} Obtenez 20 % de réduction sur votre prochain achat !{% elsif WishList.size == 2 %} Obtenez une réduction de 10 % sur votre prochain achat !{% else %} Hé, jetez un œil aux nouveaux vêtements d'extérieur !{% endif %}
Requête API
{ "request": { "application": "XXXXX-XXXXX", // Pushwoosh app code "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel "notifications" : [ // push message parameters { "content": "{% raw %}{% if WishList.size >= 3 %}Obtenez 20 % de réduction sur votre prochain achat !{% elsif WishList.size == 2 %}Obtenez une réduction de 10 % sur votre prochain achat !{% else %}Hé, jetez un œil aux nouveaux vêtements d'extérieur !{% endif %}{% endraw %}", "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used. "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}
Taille de la WishList >= 3 | ![]() |
Taille de la WishList = 2 | ![]() |
La variable contient
Anchor link toUn autre cas que vous pourriez avoir besoin de couvrir est de traiter les valeurs des Tags de type Liste et de fournir le contenu le plus pertinent en fonction des valeurs que le Tag contient.
Entrée Liquid
{% if WishList contains 'Skinny Low Ankle Jeans' %} Obtenez 20 % de réduction sur les produits de votre wishlist !{% else %} Hé, jetez un œil aux tout nouveaux Skinny Low Ankle Jeans !{% endif %}
Requête API
{ "request": { "application": "C90C0-0E786", "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel "notifications" : [ // push message parameters { "content": "{% raw %}{% if WishList contains 'Skinny Low Ankle Jeans' %}Obtenez 20 % de réduction sur votre prochain achat !{% else %}Hé, jetez un œil aux tout nouveaux Skinny Low Ankle Jeans !{% endif %}{% endraw %}", "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used. "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}
La variable contient des données | ![]() |
La variable ne contient pas de données | ![]() |
Pluriels
Anchor link toEn utilisant les templates de contenu, vous pouvez ajuster le contenu des messages en fonction du comportement des utilisateurs. Par exemple, vous pouvez modifier le texte du message pour qu’il contienne des mots au pluriel si le Tag de type Liste contient plus d’une valeur.
Entrée Liquid
Obtenez 20 % de réduction sur l'article{% if WishList.size > 1 %} s de votre WishList !{% else %} de votre Wishlist !{% endif %}
Requête API
{ "request": { "application": "C90C0-0E786", "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel "notifications" : [ // push message parameters { "content": "Obtenez 20 % de réduction sur l'article{% raw %}{% if WishList.size > 1 %}s de votre WishList !{% else %} de votre Wishlist !{% endif %}{% endraw %}", "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used. "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}
Pluriel | ![]() |
Singulier | ![]() |
Fuseau horaire
Anchor link toLe template pour les fuseaux horaires convertit la date et l’heure en fonction du fuseau horaire spécifié.
{{ MyDate | timezone: MyTimezone | date: \"%Y-%m-%d %H:%M\" }}
{ "request" : { "auth" : "3H9bk8w3.....Acge2RbupTB", // API access token from Pushwoosh Control Panel "application" : "XXXXX-XXXXX", // Pushwoosh app code "notifications" : [ // push message parameters { "content": "Current Date: {{ MyDate | timezone: MyTimezone | date: \"%Y-%m-%d %H:%M\" }}", "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used. "MyDate" : "2019-07-23 15:00", "MyTimezone" : "Asia/Dubai" } } ] }}
Sortie
