# Liquid в in-app

Используйте [Liquid](/ru/product/personalization/liquid-templates/) в контенте in-app, чтобы показать каждому пользователю его собственные данные: значения его тегов, атрибуты события, которое запустило in-app, и его User ID. Например, поприветствуйте пользователя по имени и покажите промокод, переданный в событии.

<Aside type="note">
Liquid в in-app по умолчанию выключен. Чтобы включить его для вашего аккаунта, свяжитесь с вашим Customer Success Manager или службой поддержки.
</Aside>

## Где Liquid работает в in-app

Liquid работает только в in-app, который джорни показывает с помощью [элемента In-App](/ru/product/customer-journey/journey-elements/channels/in-app/). Работают оба режима **Показ in-app**: **При следующем запуске** и **При событии**.

Пишите Liquid в одном из этих мест:

* Текст блока встроенного редактора, например [блока HTML](/ru/product/content/in-apps/no-code-in-app-editor/built-in-editor-blocks-reference/#html) или блока **Text**. Работает текст на любом языке in-app.
* Файл `index.html` загруженного HTML-архива.
* Текстовое поле [нативного in-app](/ru/product/content/in-apps/create-native-in-app-messages/).

## Добавление Liquid в in-app

Чтобы добавить Liquid, напишите его в редакторе in-app, а затем выберите этот in-app в джорни.

1. Откройте in-app во встроенном редакторе.
2. Добавьте блок **HTML** или выберите существующий.
3. В поле **HTML** введите код Liquid вручную.

   <img src="/personalization-liquid-templates-8.webp" alt="Настройки блока HTML в редакторе in-app с кодом Liquid, который приветствует пользователя по firstName, показывает тег loyalty_tier в верхнем регистре, атрибут события promo_code и условие if для уровня gold" width="407"/>

4. Нажмите **Save**.
5. В элементе **In-App** вашего джорни выберите in-app в поле **Media Source**.
6. Если in-app использует атрибуты события, выберите **При событии** в **Показ in-app** и укажите событие.

Предпросмотр в редакторе показывает код Liquid в исходном виде. Каждый пользователь видит свои собственные значения.

<Aside type="note">
Кнопка **Merge tag** вставляет не Liquid, а плейсхолдер динамического контента, например `{firstName|regular|}`. Плейсхолдеры и Liquid работают вместе в одном in-app.
</Aside>

В этом примере `firstName` и `loyalty_tier` — теги, а `promo_code` — атрибут события, которое показывает in-app:

<Tabs>
<TabItem label="Входные данные">

```liquid
<h2>
Hi, {{ firstName | default: "there" }}!
</h2>
<p>
Your {{ loyalty_tier | upcase }} code:
<b>{{ promo_code }}</b>
</p>
{% if loyalty_tier == "gold" %}
<p>Shipping is on us today.</p>
{% endif %}
```

</TabItem>

<TabItem label="Результат">

Hi, Anna!

Your GOLD code: AUTUMN-42

Shipping is on us today.

</TabItem>

</Tabs>

<span id="data-you-can-use" />

## Доступные данные

В Liquid для in-app доступны следующие значения:

| Значение | Что это | Как написать |
|---|---|---|
| [Тег](/ru/product/audience-data-and-segmentation/user-data-tags/tags/) | Данные пользователя, которые хранятся в Pushwoosh, например имя пользователя. In-app показывает значение, которое тег имеет в момент показа in-app. | `{{ loyalty_tier }}` |
| Атрибут события | Атрибут события, выбранного в режиме **При событии** элемента In-App. Если имя атрибута совпадает с именем тега, используется значение атрибута. | `{{ promo_code }}` |
| User ID | ID, который ваше приложение присваивает пользователю. | `{{ userid }}`, строчными буквами |
| HWID | Аппаратный ID устройства пользователя в Pushwoosh. | `{{ hwid }}`, строчными буквами |

## Как писать имена переменных

Соблюдайте эти правила, когда вводите имя переменной:

* Вводите имя точно так, как оно записано в Pushwoosh, с учетом заглавных букв. Несовпадающее имя, например `{{ firstname }}` для тега `firstName`, выводится как пустой текст.
* Пишите имена тегов и атрибутов без пробелов: `{{ LoyaltyTier }}` для тега с именем `Loyalty Tier`.
* Чтобы вместо пустого текста показать запасное значение, добавьте фильтр `default`: `{{ firstName | default: "there" }}`.

## Изменение вида значения

Чтобы изменить вид значения, добавьте [фильтр Liquid](https://shopify.github.io/liquid/filters/abs/). Работают все стандартные фильтры, например `upcase`, `capitalize`, `date` и `truncate`, а также фильтр Pushwoosh `timezone`.

## Ограничения Liquid в in-app

В in-app у Liquid есть следующие ограничения:

* Если вы отправляете in-app через **Кампании** > **In-app коммуникации**, Liquid не применяется, и пользователи видят код в исходном виде. Используйте вместо этого плейсхолдеры [динамического контента](/ru/product/personalization/dynamic-content/).
* `{% include %}` не поддерживается. Пишите весь код прямо в in-app.
* [Подключенный контент](/ru/product/personalization/liquid-templates/connected-content/) не поддерживается. Используйте вместо него значения из раздела [Доступные данные](#data-you-can-use).
* Если архив in-app больше 1 МБ, Liquid не применяется, и пользователь видит код в исходном виде.
* Если в коде Liquid есть ошибка, например незакрытый `{% if %}`, пользователь видит in-app с кодом в исходном виде. Проверьте in-app на своем устройстве перед запуском джорни.