Использование шаблонов Liquid
Шаблоны Liquid значительно расширяют возможности персонализации Pushwoosh, реализуя сложную логику в дополнение к обычному использованию Dynamic Content.
Персонализация сообщений в Pushwoosh основана на Tags (данные пользователя). Pushwoosh предлагает множество стандартных Tags и пользовательских Tags. Используя их, вы можете указать имя пользователя, город, историю покупок и т.д., чтобы отправить более персонализированное сообщение, например: Привет, {First_name}, спасибо за заказ {item}.
Шаблоны Liquid добавляют больше логики в динамический контент. Например, если тег подписки пользователя содержит «free», вы можете отправить ему сообщение: «Получите скидку 10%».
Изменение содержимого сообщения в соответствии с ID, поведением и предпочтениями пользователей — это наиболее эффективный способ повысить релевантность и получить более впечатляющие результаты от ваших маркетинговых кампаний.
Синтаксис
Anchor link toШаблоны контента, основанные на Liquid от Shopify, используют комбинацию тегов (tags), объектов (objects) и фильтров (filters) для загрузки динамического контента. Шаблоны контента позволяют вам получать доступ к определенным переменным из шаблона и выводить их данные, не зная ничего о самих данных.
Объекты
Anchor link toobjects определяют контент, который будет отображаться пользователю. objects должны быть заключены в двойные фигурные скобки: {{ }}
Например, при персонализации сообщения отправьте {{Name}} в его теле, чтобы добавить имена пользователей в содержимое сообщения. Имя пользователя (значение тега Name) заменит объект Liquid в сообщении, которое увидит пользователь.
Hi {{Name}}! We're glad you're back!Hi Anna! We’re glad you’re back!
Теги
Anchor link totags создают логику и управляют потоком для шаблонов. Разделители в виде фигурных скобок и процентов {% и %} и текст, который они окружают, не создают видимого вывода при рендеринге шаблона. Это позволяет вам назначать переменные и создавать условия или циклы, не показывая пользователю никакой логики Liquid.
Например, используя тег if, вы можете изменять язык сообщения в зависимости от того, какой язык установлен на устройстве пользователя:
{% if Language == 'fr' %}Salut!{% else %}Hello!{% endif %}Salut!
Hello!
Операторы тегов
Anchor link to| Оператор | Описание |
|---|---|
== | равно |
!= | не равно |
> | больше чем |
< | меньше чем |
>= | больше или равно |
<= | меньше или равно |
or | логическое или |
and | логическое и |
contains | проверяет наличие подстроки в строке или массиве строк |
Фильтры
Anchor link tofilters изменяют вывод объекта или переменной Liquid. Они используются внутри двойных фигурных скобок {{ }} и при присваивании переменных и разделяются символом вертикальной черты |. К одному выводу можно применить несколько фильтров, и они применяются слева направо.
{{ Name | capitalize | prepend:"Hello " }}Hello Anna
Использование шаблонов Liquid в сообщениях, отправляемых через API
Anchor link toИспользуйте синтаксис Liquid в ваших запросах createMessage для реализации шаблонов Liquid. Шаблоны доступны для параметра «content» запроса createMessage, а также для любого другого параметра, поддерживающего Dynamic Content, в частности, для специфичных для платформы параметров «title», «subtitle» и «image».
Используя шаблоны контента, вы можете либо указать данные в своих API-запросах (передавая параметр «template_bindings»), либо получить данные из значений Tag, хранящихся на устройствах пользователей (не используя параметр «template_bindings»). Таким образом, вы можете создавать push-кампании на основе пользователей, содержащие чрезвычайно релевантный контент.
Чтобы определить логику шаблона с использованием Tags с пробелами в их именах, используйте следующий метод:
Пример
{% capture my_tag %}{{My Tag}}{% endcapture %}{% if my_tag == 'value' %}Content to send in this case{% else %}Content to send otherwise{% endif %}Примеры использования шаблонов Liquid
Anchor link toЗдесь вы найдете несколько примеров использования, когда шаблоны Liquid могут быть полезны.
Многоязычные push-уведомления
Anchor link toШаблоны Liquid позволяют точно указать, на каком языке пользователи должны получать ваши push-сообщения. Посмотрите на простой пример API-запроса и полученного сообщения в зависимости от привязок шаблона, используемых в запросе.
{% if Language == 'es' %}¡Hola!{% else %}Hello!{% endif %}{ "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" } } ] }}Язык ‘es’: ¡Hola!
Язык ‘en’: Hello!
Призыв к обновлению подписки
Anchor link toПоощряйте своих клиентов обновлять подписку в зависимости от их текущего плана.
{% if Subscription == 'Basic' %} Upgrade to Silver for getting more product features and 24/7 support.{% elsif Subscription == 'Silver' %} Upgrade to Gold for priority support and advanced features.{% else %} Please contact your manager to renew your subscription.{% endif %}{ "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' %}Upgrade to Silver for getting more product features and 24/7 support.{% elsif Subscription == 'Silver' %}Upgrade to Gold for priority support and advanced features.{% else %}Please contact your manager to renew your subscription. {% endif %}{% endraw %}", "template_bindings": { // optional. When no template_bindings are passed in a request, Tag values from the device are used. "language" : "es" } } ] }}Для пользователей с планом подписки Basic: Upgrade to Silver for getting more product features and 24/7 support.
Для пользователей с планом подписки Silver: Upgrade to Gold for priority support and advanced features.
Для пользователей с другими планами: Please contact your manager to renew your subscription.
Теги типа List
Anchor link toШаблоны контента очень полезны для обработки Tags типа List.
Размер переменной
Anchor link toОдин из возможных вариантов использования — доставка разного контента в зависимости от количества значений, содержащихся в Tag. Например, вы можете предоставлять разные скидки клиентам с разным поведением. Допустим, у клиента есть несколько товаров в списке желаний (WishList) — поощряйте их к покупке с наиболее подходящей скидкой в зависимости от того, сколько товаров они собираются купить!
{% if WishList.size >= 3 %}Get 20% off your next purchase!{% elsif WishList.size == 2 %}Get a 10% discount on your next purchase!{% else %}Hey, take a look at new outwears!{% endif %}{ "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 %}Get 20% off your next purchase!{% elsif WishList.size == 2 %}Get a 10% discount on your next purchase!{% else %}Hey, take a look at new outwears!{% endif %}{% endraw %}", "template_bindings": { "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}

Переменная содержит
Anchor link toЕще один случай, который вам может понадобиться, — это работа со значениями List Tags и доставка наиболее релевантного контента в зависимости от того, какие значения содержит Tag.
{% if WishList contains 'Skinny Low Ankle Jeans' %}Get 20% off products in your wishlist!{% else %}Hey, take a look at the brand new Skinny Low Ankle Jeans!{% endif %}{ "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' %}Get 20% off your next purchase!{% else %}Hey, take a look at the brand new Skinny Low Ankle Jeans!{% endif %}{% endraw %}", "template_bindings": { "WishList" : ["Skinny Low Ankle Jeans", "Linen Trenchcoat", "High Waisted Denim Skirt", "Strappy Tiered Maxi Dress"] } } ] }}

Множественное число
Anchor link toИспользуя шаблоны контента, вы можете настраивать содержимое сообщения в соответствии с поведением пользователей. Например, вы можете изменять текст сообщения, чтобы он содержал слова во множественном числе, если List Tag содержит более одного значения.
Get 20% off item{% if WishList.size > 1 %} s in your WishList!{% else %} in your Wishlist!{% endif %}{ "request": { "application": "C90C0-0E786", "auth": "yxoPUlw.....IyEX4H", // API access token from Pushwoosh Control Panel "notifications" : [ // push message parameters { "content": "Get 20% off item{% raw %}{% if WishList.size > 1 %}s in your WishList!{% else %} in your 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"] } } ] }}

Часовой пояс
Anchor link toШаблон для часовых поясов преобразует дату и время в соответствии с указанным часовым поясом.
{{ 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" } } ] }}
Связанный контент
Anchor link toСвязанный контент (Connected content) — это функция в шаблонах Liquid, которая позволяет динамически извлекать и использовать данные из внешнего источника, например, веб-сервиса, непосредственно в ваших email-сообщениях или push-уведомлениях. Эта функция обеспечивает персонализацию в реальном времени, извлекая данные JSON по указанному URL и сохраняя их в переменную, которую можно использовать в вашем контенте.
Ключевые сценарии использования
Anchor link to-
Рекомендации продуктов: Отображение персонализированных списков продуктов, адаптированных для каждого пользователя.
-
Промокоды: Вставка уникальных промокодов, сгенерированных бэкенд-сервисом.
Предварительные условия
Anchor link to- Для использования Connected Content у вас должен быть собственный бэкенд-сервис, который генерирует и предоставляет необходимые данные (например, промокоды, рекомендации продуктов) на основе User ID, HWID или пользовательских тегов. Pushwoosh затем извлекает эти данные перед отправкой сообщения.
Пошаговое руководство по внедрению
Anchor link toШаг 1. Настройте бэкенд-сервис
Anchor link toБэкенд-сервис должен:
- Принимать запрос, содержащий параметры, специфичные для пользователя (например,
userId). Connected Content поддерживаетUserID,HWIDили любые пользовательские теги, которые вы настроили в своем проекте. - Возвращать JSON-ответ с необходимыми данными. Этот контент затем можно динамически вставлять в сообщения.
Шаг 2. Создайте пресет со связанным контентом в Pushwoosh
Anchor link to- В редакторе Push-контента или редакторе Email-контента вставьте синтаксис Connected Content в поле сообщения.
Пример
{% connected_content http://your-backend-url.com?userId={{ ${userid} }} :save result %}Разбор синтаксиса
connected_content | Извлекает данные JSON с указанного URL-адреса бэкенда. |
http://your-backend-url.com | Конечная точка бэкенда, которая возвращает необходимые данные в формате JSON. |
userId={{ ${userid} }} | Динамический параметр запроса, который передает ID пользователя на бэкенд. |
:save result | Сохраняет полученный JSON-ответ в переменной result для использования в шаблонах Liquid. |

Аутентификация (необязательно)
Если ваш бэкенд-сервис требует аутентификации, вы можете включить API-ключ или токен в запрос Connected Content для обеспечения безопасного доступа.
{% connected_content http://your-backend-url.com?userId={{ ${userid} }}&auth=YOUR_API_KEY :save result %}Использование тегов в Connected Content
Чтобы включить пользовательские теги, вставьте их в качестве параметров запроса в запросе Connected Content ({{ tag_name }}).
{% connected_content http://your-backend-url.com?userId={{ ${userid} }}{{ Language }} :save result %}- Далее добавьте текст сообщения, включающий полученные данные, вот так:
Hey, {{userid}}, grab your personal promo code - {{result.code}}
- После завершения работы с содержимым сообщения и настройки параметров пресета сохраните его для повторного использования в кампаниях.
Шаг 3. Отправьте сообщение, используя настроенный пресет
Anchor link toОтправьте сообщение с этим пресетом, используя форму разовой push-отправки или форму email, или через customer journey.