# 인앱 Liquid

인앱 콘텐츠에 [Liquid](/ko/product/personalization/liquid-templates/)를 작성하면 각 사용자에게 자신의 데이터를 보여 줄 수 있습니다. 사용자의 Tag 값, 인앱을 트리거한 이벤트의 속성, 사용자의 User ID를 사용할 수 있습니다. 예를 들어 사용자 이름으로 인사하고 이벤트로 전달된 프로모션 코드를 표시할 수 있습니다.

<Aside type="note">
인앱 Liquid는 기본적으로 꺼져 있습니다. 계정에서 활성화하려면 담당 Customer Success Manager 또는 지원팀에 문의하세요.
</Aside>

## 인앱에서 Liquid가 작동하는 경우

Liquid는 Journey가 [In-App 요소](/ko/product/customer-journey/journey-elements/channels/in-app/)로 표시하는 인앱에서만 작동합니다. **인앱 표시**의 두 모드인 **다음 앱 실행 시**와 **이벤트 발생 시** 모두 작동합니다.

다음 위치 중 한 곳에 Liquid를 작성하세요.

* [HTML 블록](/ko/product/content/in-apps/no-code-in-app-editor/built-in-editor-blocks-reference/#html)이나 **Text** 블록 같은 기본 제공 편집기 블록의 텍스트. 인앱의 모든 언어로 된 텍스트에서 작동합니다.
* 업로드한 HTML 아카이브의 `index.html` 파일.
* [네이티브 인앱](/ko/product/content/in-apps/create-native-in-app-messages/)의 텍스트 필드.

## 인앱에 Liquid 추가하기

Liquid를 추가하려면 인앱 편집기에서 작성한 다음 Journey에서 해당 인앱을 선택합니다.

1. 기본 제공 편집기에서 인앱을 엽니다.
2. **HTML** 블록을 추가하거나 기존 블록을 선택합니다.
3. **HTML** 필드에 Liquid 코드를 직접 입력합니다.

   <img src="/personalization-liquid-templates-8.webp" alt="인앱 편집기의 HTML 블록 설정. Liquid 코드가 firstName으로 사용자에게 인사하고, loyalty_tier 태그를 대문자로, promo_code 이벤트 속성을 표시하며, gold 등급에 대한 if 조건을 포함합니다" width="407"/>

4. **Save**를 클릭합니다.
5. Journey의 **In-App** 요소에서 **미디어 소스**에 해당 인앱을 선택합니다.
6. 인앱에서 이벤트 속성을 사용하는 경우 **인앱 표시**에서 **이벤트 발생 시**를 선택하고 이벤트를 선택합니다.

편집기 미리보기에는 Liquid 코드가 작성한 그대로 표시됩니다. 각 사용자에게는 자신의 값이 보입니다.

<Aside type="note">
**Merge tag** 버튼은 Liquid를 삽입하지 않습니다. `{firstName|regular|}` 같은 동적 콘텐츠 플레이스홀더를 삽입합니다. 플레이스홀더와 Liquid는 하나의 인앱에서 함께 작동합니다.
</Aside>

이 예에서 `firstName`과 `loyalty_tier`는 Tag이고, `promo_code`는 인앱을 표시하는 이벤트의 속성입니다.

<Tabs>
<TabItem label="Input">

```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="Output">

Hi, Anna!

Your GOLD code: AUTUMN-42

Shipping is on us today.

</TabItem>

</Tabs>

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

## 사용할 수 있는 데이터

인앱의 Liquid에서 다음 값을 사용할 수 있습니다.

| 값 | 설명 | 작성 방법 |
|---|---|---|
| [Tag](/ko/product/audience-data-and-segmentation/user-data-tags/tags/) | Pushwoosh에 저장된 사용자 데이터(예: 사용자 이름). 인앱에는 인앱이 표시되는 시점의 값이 표시됩니다. | `{{ loyalty_tier }}` |
| 이벤트 속성 | In-App 요소의 **이벤트 발생 시** 모드에서 선택한 이벤트의 속성. 속성 이름이 Tag 이름과 같으면 속성 값이 사용됩니다. | `{{ promo_code }}` |
| User ID | 앱이 사용자에게 부여하는 ID. | `{{ userid }}`, 소문자로 |
| HWID | Pushwoosh에 있는 사용자 기기의 하드웨어 ID. | `{{ hwid }}`, 소문자로 |

## 변수 이름 작성하기

변수 이름을 입력할 때 다음 규칙을 따르세요.

* 대문자를 포함해 Pushwoosh에 있는 이름과 정확히 같게 입력합니다. 일치하지 않는 이름(예: Tag `firstName`에 대한 `{{ firstname }}`)은 빈 텍스트로 표시됩니다.
* Tag 이름과 속성 이름은 공백 없이 작성합니다. 예를 들어 `Loyalty Tier`라는 Tag는 `{{ LoyaltyTier }}`로 씁니다.
* 빈 텍스트 대신 대체 값을 표시하려면 `default` 필터를 추가합니다: `{{ firstName | default: "there" }}`.

## 값 표시 방식 변경하기

값이 표시되는 방식을 바꾸려면 [Liquid 필터](https://shopify.github.io/liquid/filters/abs/)를 추가합니다. `upcase`, `capitalize`, `date`, `truncate` 등 모든 표준 필터와 Pushwoosh의 `timezone` 필터를 사용할 수 있습니다.

## 인앱 Liquid의 제한 사항

인앱에서 Liquid에는 다음과 같은 제한이 있습니다.

* 인앱을 즉시 인앱 캠페인(**캠페인** > **즉시 인앱**)으로 보내면 Liquid가 적용되지 않고 사용자에게 코드가 작성한 그대로 보입니다. 대신 [동적 콘텐츠](/ko/product/personalization/dynamic-content/) 플레이스홀더를 사용하세요.
* `{% include %}`는 지원되지 않습니다. 전체 코드를 인앱 자체에 작성하세요.
* [Connected content](/ko/product/personalization/liquid-templates/connected-content/)는 지원되지 않습니다. 대신 [사용할 수 있는 데이터](#data-you-can-use)의 값을 사용하세요.
* 인앱 아카이브가 1MB보다 크면 Liquid가 적용되지 않고, 사용자에게 코드가 작성한 그대로 보입니다.
* Liquid 코드에 오류가 있으면(예: 닫히지 않은 `{% if %}`) 사용자에게 코드가 그대로 포함된 인앱이 보입니다. Journey를 시작하기 전에 자신의 기기에서 인앱을 확인하세요.