지원되는 개인화 태그
이 참조 문서에서는 지원되는 Liquid 개인화 태그의 전체 목록을 다룹니다.
지원되는 태그 요약
편의를 위해 지원되는 개인화 태그의 요약을 제공합니다. 각 태그 유형 및 모범 사례에 대한 자세한 내용은 계속 읽어보세요.
| 개인화 태그 유형 | 태그 |
|---|---|
| 표준(기본값) 속성 | {{${city}}} {{${country}}} {{${date_of_birth}}} {{${email_address}}} {{${first_name}}} {{${gender}}} {{${language}}} {{${last_name}}} {{${last_used_app_date}}} {{${most_recent_app_version}}} {{${most_recent_locale}}} {{${most_recent_location}}} {{${phone_number}}} {{${time_zone}}} {{${user_id}}} {{${braze_id}}} {{${random_bucket_number}}} {{subscribed_state.${email_global}}} {{subscribed_state.${subscription_group_id}}} |
| 기기 속성 | {{most_recently_used_device.${carrier}}} {{most_recently_used_device.${id}}} {{most_recently_used_device.${idfa}}} {{most_recently_used_device.${model}}} {{most_recently_used_device.${os}}} {{most_recently_used_device.${platform}}} {{most_recently_used_device.${google_ad_id}}} {{most_recently_used_device.${roku_ad_id}}} {{most_recently_used_device.${foreground_push_enabled}}} |
| 이메일 목록 속성 | {{${set_user_to_unsubscribed_url}}} 이 태그는 이전 {{${unsubscribe_url}}} 태그를 대체합니다. 이전 태그는 기존에 작성한 이메일에서 계속 사용할 수 있지만, 최신 태그를 사용하는 것이 좋습니다. {{${set_user_to_subscribed_url}}} {{${set_user_to_opted_in_url}}} |
| SMS 속성 | {{sms.${inbound_message_body}}} {{sms.${inbound_media_urls}}} |
| WhatsApp 속성 | {{whats_app.${inbound_message_body}}} {{whats_app.${inbound_media_urls}}} {{whats_app.${inbound_flow_response}}} {{whats_app.${inbound_product_id}}} {{whats_app.${inbound_catalog_id}}} |
| 캠페인 속성 및 캔버스 단계 속성 | {{campaign.${api_id}}} {{campaign.${dispatch_id}}} {{campaign.${name}}} {{campaign.${message_name}}} {{campaign.${message_api_id}}} |
| 캔버스 속성 | {{canvas.${name}}} {{canvas.${api_id}}} {{canvas.${variant_name}}} {{canvas.${variant_api_id}}} |
| 카드 속성 | {{card.${api_id}}} {{card.${name}}} |
| 지오펜싱 이벤트 | {{event_properties.${geofence_name}}} {{event_properties.${geofence_set_name}}} |
| 이벤트 등록정보 (워크스페이스에 맞게 커스텀됩니다.) |
{{event_properties.${your_custom_event_property}}} |
| 캔버스 컨텍스트 변수 | {{context}} |
| 커스텀 속성 (워크스페이스에 맞게 커스텀됩니다.) |
{{custom_attribute.${your_custom_attribute}}} |
| API 트리거 등록정보 | {{api_trigger_properties}} |
| 캔버스 진입 등록정보 | {{context.${property_name}}} |
지원되는 속성
캠페인, 카드 및 캔버스 속성은 해당 메시징 템플릿에서만 지원됩니다(예: dispatch_id는 인앱 메시지 캠페인에서 사용할 수 없음).
Braze에서 이러한 속성 중 일부가 소스마다 어떻게 다른지 자세히 알아보려면 이 도움말 문서를 참조하세요.
캔버스와 캠페인 태그의 차이점
다음 태그의 동작은 캔버스와 캠페인 간에 다릅니다:
dispatch_id동작이 다른 이유는 Braze가 캔버스 단계를 ‘스케줄’된 경우에도 트리거된 이벤트로 취급하기 때문입니다(스케줄 가능한 진입 단계 제외). 자세히 알아보려면 디스패치 ID 동작을 참조하세요.- 캔버스에서
{{campaign.${name}}}태그를 사용하면 캔버스 구성요소 이름이 표시됩니다. 이 태그를 캠페인에서 사용하면 캠페인 이름이 표시됩니다.
가장 최근에 사용한 기기 정보
모든 플랫폼에서 사용자의 가장 최근 기기에 대해 다음 속성을 템플릿화할 수 있습니다. 사용자가 애플리케이션을 사용하지 않은 경우(예: REST API를 통해 사용자를 가져온 경우) 이 값은 모두 null입니다.
| 태그 | 설명 |
|---|---|
{{most_recently_used_device.${browser}}} |
사용자 기기에서 가장 최근에 사용한 브라우저입니다. 예를 들어 “Chrome”과 “Safari”가 있습니다. |
{{most_recently_used_device.${id}}} |
Braze 기기 식별자입니다. iOS에서는 공급업체용 Apple 식별자(IDFV) 또는 UUID가 될 수 있습니다. Android 및 기타 플랫폼의 경우 무작위로 생성된 UUID입니다. |
{{most_recently_used_device.${carrier}}} |
가장 최근에 사용한 기기의 전화 서비스 통신사(사용 가능한 경우). 예를 들면 “Verizon” 및 “Orange” 등이 있습니다. |
{{most_recently_used_device.${ad_tracking_enabled}}} |
기기에서 광고 추적이 활성화되어 있는지 여부입니다. 이 값은 부울 값입니다(true 또는 false). |
{{most_recently_used_device.${idfa}}} |
iOS 기기의 경우, 애플리케이션이 선택적 IDFA 수집으로 구성되어 있으면 이 값은 광고용 식별자(IDFA)가 됩니다. iOS가 아닌 기기의 경우 이 값은 null이 됩니다. |
{{most_recently_used_device.${google_ad_id}}} |
Android 기기의 경우, 애플리케이션이 선택적 Google Play 광고 ID 수집으로 구성되어 있으면 이 값은 Google Play 광고 식별자가 됩니다. Android가 아닌 기기의 경우 이 값은 null이 됩니다. |
{{most_recently_used_device.${roku_ad_id}}} |
Roku 기기의 경우, 이 값은 애플리케이션이 Braze로 구성될 때 수집되는 Roku 광고 식별자가 됩니다. Roku가 아닌 기기의 경우 이 값은 null이 됩니다. |
{{most_recently_used_device.${model}}} |
기기의 모델명(사용 가능한 경우). 예를 들어 “iPhone 6S”, “Nexus 6P”, “Firefox”가 있습니다. |
{{most_recently_used_device.${os}}} |
기기의 운영체제(사용 가능한 경우). 예를 들어 “iOS 9.2.1”, “Android (Lollipop)”, “Windows”가 있습니다. |
{{most_recently_used_device.${platform}}} |
기기의 플랫폼(사용 가능한 경우). 설정된 경우 값은 ios, android, kindle, android_china, web 또는 tvos 중 하나가 됩니다. |
기기 통신사, 모델명, 운영체제의 종류가 매우 다양하므로 이러한 값에 조건부로 의존하는 모든 Liquid를 철저하게 테스트하는 것이 좋습니다. 이 값은 특정 기기에서 사용할 수 없는 경우 null이 됩니다.
타겟 앱 정보
인앱 메시지의 경우, Liquid 내에서 다음 앱 속성을 사용할 수 있습니다. 이 값은 앱에서 메시징을 요청하는 데 사용하는 SDK API 키를 기반으로 합니다.
| 태그 | 설명 |
|---|---|
{{app.${api_id}}} |
메시지를 요청하는 앱의 API 키입니다. 예를 들어, 이 키를 abort_message() Liquid와 함께 사용하면 별도의 SDK API 키를 사용하는 TV 플랫폼이나 개발 빌드와 같은 특정 앱에 인앱 메시지를 보내지 않도록 할 수 있습니다. |
{{app.${name}}} |
메시지를 요청하는 앱의 이름(Braze 대시보드에 정의된 대로)입니다. |
예를 들어, 이 Liquid 코드는 요청하는 앱이 목록의 두 API 키 중 하나가 아닌 경우 메시지를 중단합니다:
1
2
3
4
5
6
{% assign allowed_api_keys = 'sdk_api_key_1,sdk_api_key_2' | split: ',' %}
{% if allowed_api_keys contains {{app.${api_id}}} %}
User is in list of apps
{% else %}
{% abort_message("User not in list of apps") %}
{% endif %}
타겟 기기 정보
푸시 알림, 인앱 메시지 및 배너의 경우, 메시지를 수신하는 기기에 대한 다음 속성을 템플릿화할 수 있습니다. 푸시 알림, 인앱 메시지 또는 배너에는 사용자가 메시지를 읽는 기기의 속성이 포함될 수 있습니다. 이 속성은 콘텐츠 카드나 이메일에는 작동하지 않습니다. 이메일의 경우, 메시지는 전송 전에 렌더링되므로 사용자가 이메일을 여는 기기는 그 시점에 알 수 없습니다.
| 태그 | 설명 |
|---|---|
{{targeted_device.${id}}} |
Braze 기기 식별자입니다. iOS에서는 공급업체용 Apple 식별자(IDFV) 또는 UUID가 될 수 있습니다. Android 및 기타 플랫폼의 경우 무작위로 생성된 UUID입니다. 예를 들어, 사용자에게 5개의 기기가 있는 경우 각각 해당 기기 식별자를 사용하여 5개의 기기 모두에 대해 전송 시도가 발생합니다. 사용자가 가장 최근에 사용한 기기로 메시지를 보내도록 설정한 경우, Braze를 통해 식별된 가장 최근에 사용한 기기로 한 번만 전송 시도가 이루어집니다. |
{{targeted_device.${carrier}}} |
가장 최근에 사용한 기기의 전화 서비스 통신사(사용 가능한 경우). 예를 들면 “Verizon” 및 “Orange” 등이 있습니다. |
{{targeted_device.${idfa}}} |
iOS 기기의 경우, 애플리케이션이 선택적 IDFA 수집으로 구성되어 있으면 이 값은 광고용 식별자(IDFA)가 됩니다. iOS가 아닌 기기의 경우 이 값은 null이 됩니다. |
{{targeted_device.${google_ad_id}}} |
Android 기기의 경우, 이 값은 애플리케이션이 [선택적 Google Play 광고 ID 수집]으로 구성되어 있으면 Google Play 광고 식별자가 됩니다. Android가 아닌 기기의 경우 이 값은 null이 됩니다. |
{{targeted_device.${roku_ad_id}}} |
Roku 기기의 경우, 이 값은 애플리케이션이 Braze로 구성될 때 수집되는 Roku 광고 식별자가 됩니다. Roku가 아닌 기기의 경우 이 값은 null이 됩니다. |
{{targeted_device.${model}}} |
기기의 모델명(사용 가능한 경우). 예를 들어 “iPhone 6S”, “Nexus 6P”, “Firefox”가 있습니다. |
{{targeted_device.${os}}} |
기기의 운영체제(사용 가능한 경우). 예를 들어 “iOS 9.2.1”, “Android (Lollipop)”, “Windows”가 있습니다. |
{{targeted_device.${platform}}} |
기기의 플랫폼(사용 가능한 경우). 설정된 경우 값은 ios, android, kindle, android_china, web 또는 tvos 중 하나가 됩니다. most_recently_used_device 개인화 태그를 사용할 수도 있습니다. |
{{targeted_device.${foreground_push_enabled}}} |
이 값은 타겟 기기에서 포그라운드 푸시가 활성화된 경우 true, 그렇지 않은 경우 false입니다. |
기기 통신사, 모델명, 운영체제의 종류가 매우 다양하므로 이러한 값에 조건부로 의존하는 로직을 철저히 테스트하는 것이 좋습니다. 이 값은 특정 기기에서 사용할 수 없는 경우 null이 됩니다.
또한, 푸시 알림의 경우, 푸시 토큰이 API를 통해 가져온 경우와 같은 특정 상황에서는 Braze가 푸시 알림에 연결된 기기를 식별할 수 없을 수 있으며, 이로 인해 해당 메시지의 값이 null이 될 수 있습니다.

기본값 대신 조건 로직 사용
경우에 따라 기본값을 설정하는 대신 조건 로직을 사용할 수도 있습니다. 조건 로직을 사용하면 커스텀 속성의 값에 따라 다른 메시지를 보낼 수 있습니다. 또한 조건 로직을 사용하여 속성 값이 null이거나 비어 있는 고객에 대한 메시지를 중단할 수 있습니다.
사용 사례
예를 들어, 고객에게 보상 잔액 알림을 보내고 있다고 가정해 보겠습니다. 기본값을 사용하여 잔액이 낮거나 없는 고객을 적절히 처리하기가 어렵습니다.
이 경우 기본값을 설정하는 것보다 더 효과적일 수 있는 두 가지 옵션이 있습니다:
-
잔액이 낮거나, null이거나, 비어 있는 고객에게는 메시지를 중단합니다.
1 2 3 4 5
{% if {{custom_attribute.${balance}}} > 0 %} Your rewards balance is {{custom_attribute.${balance}}} {% else %} {% abort_message() %} {% endif %}
-
이러한 고객에게는 완전히 다른 메시지를 보냅니다:
1 2 3 4 5
{% if ${first_name} != blank and ${first_name} != null %} Hello {{${first_name} | default: 'there'}}, thanks for downloading! {% else %} Thanks for downloading! {% endif %}
이 사용 사례에서는 이름이 비어 있거나 null인 사용자가 “Thanks for downloading!”이라는 메시지를 받습니다. 실수로 고객에게 Liquid 코드가 표시되지 않도록 이름에 대한 기본값을 포함하는 것이 좋습니다.
변수 태그
assign 태그를 사용하여 메시지 작성기에서 변수를 만들 수 있습니다. 변수에 고유한 이름을 사용하는 것이 좋습니다. 지원되는 개인화 태그와 유사한 이름의 변수(예: language)를 만들면 메시징 로직에 영향을 줄 수 있습니다.
변수를 만든 후에는 메시징 로직이나 메시지에서 해당 변수를 참조할 수 있습니다. 이 태그는 연결된 콘텐츠 기능에서 반환된 콘텐츠의 형식을 다시 지정하려는 경우에 유용합니다. 변수 태그에 대한 자세한 내용은 Shopify 설명서에서 확인할 수 있습니다.
모든 메시지에 동일한 변수를 할당하고 계신가요? assign 태그를 반복해서 작성하는 대신 해당 태그를 콘텐츠 블록으로 저장하여 메시지 상단에 넣을 수 있습니다.
- 콘텐츠 블록을 생성합니다.
- 콘텐츠 블록에 이름을 지정합니다(공백이나 특수 문자 제외).
- 페이지 하단에서 편집을 선택합니다.
assign태그를 입력합니다.
콘텐츠 블록이 메시지 상단에 있는 한, 변수가 오브젝트로 메시지에 삽입될 때마다 선택한 커스텀 속성을 참조합니다!
사용 사례
고객이 리워드 포인트 100점을 적립한 후 리워드 포인트를 경품으로 교환할 수 있도록 허용한다고 가정해 보겠습니다. 따라서 추가 구매를 하면 포인트 잔액이 100 이상이 되는 고객에게만 메시지를 보내려고 합니다:
1
2
3
4
5
6
{% assign new_points_balance = {{custom_attribute.${current_rewards_balance} | plus: 50}} %}
{% if new_points_balance >= 100 %}
Make a purchase to bring your rewards points to {{new_points_balance}} and cash in today!
{% else %}
{% abort_message('not enough points') %}
{% endif %}
반복 태그
반복 태그는 코드 블록을 반복적으로 실행하는 데 사용할 수 있습니다. 아래 사용 사례에서는 for 태그를 사용합니다.
사용 사례
나이키 운동화 세일을 진행하면서 나이키에 관심을 표명한 고객에게 메시지를 보내고 싶다고 가정해 보겠습니다. 각 고객의 프로필에 조회한 제품 브랜드 배열이 있습니다. 이 배열에는 최대 25개의 제품 브랜드가 포함될 수 있지만, 가장 최근 5개 제품 조회 중 하나로 나이키 제품을 조회한 고객에게만 메시지를 보내려고 합니다.
1
2
3
4
5
6
7
8
9
10
{% for items in {{custom_attribute.${Brands Viewed}}} limit:5 %}
{% if {{items}} contains 'Converse' %}
{% assign converse_viewer = true %}
{% endif %}
{% endfor %}
{% if converse_viewer == true %}
Sale on Converse!
{% else %}
{% abort_message() %}
{% endif %}
이 사용 사례에서는 스니커즈 브랜드 조회 배열의 처음 다섯 항목을 확인합니다. 그 항목 중 하나가 Converse인 경우, converse_viewer 변수를 생성하고 true로 설정합니다.
그런 다음, converse_viewer가 true일 때 세일 메시지를 보냅니다. 그렇지 않으면 메시지를 중단합니다.
이것은 Braze 메시지 작성기에서 반복 태그를 사용하는 간단한 예시입니다. 자세한 내용은 Shopify의 반복 태그 관련 설명서에서 확인할 수 있습니다.
구문 태그
구문 태그를 사용하여 Liquid가 렌더링되는 방식을 제어할 수 있습니다. echo 태그를 사용하여 표현식을 반환할 수 있습니다. 이는 중괄호로 표현식을 감싸는 것과 동일하지만, Liquid 태그 내에서 사용할 수 있다는 점이 다릅니다. liquid 태그를 사용하면 각 태그에 구분 기호 없이 Liquid 블록을 만들 수도 있습니다. liquid 태그를 사용할 때는 각 태그가 별도의 줄에 있어야 합니다. 자세한 내용과 예제는 구문 태그에 대한 Shopify 설명서를 확인하세요.
공백 제어 기능을 사용하면 태그 주변의 공백을 제거하여 Liquid 출력물의 모양을 더욱 세밀하게 제어할 수 있습니다.
HTTP 상태 코드
연결된 콘텐츠 호출의 HTTP 상태를 먼저 로컬 변수로 저장한 다음 __http_status_code__ 키를 사용하여 활용할 수 있습니다. 예를 들어:
1
2
3
4
{% connected_content https://example.com/api/endpoint :save connected %}
{% if connected.__http_status_code__ != 200 %}
{% abort_message('Connected Content returned a non-200 status code') %}
{% endif %}
이 키는 엔드포인트가 JSON 오브젝트를 반환하는 경우에만 연결된 콘텐츠 오브젝트에 자동으로 추가됩니다. 엔드포인트가 배열 또는 다른 유형을 반환하는 경우, 해당 키는 응답에서 자동으로 설정될 수 없습니다.
언어, 가장 최근 로캘 및 시간대를 기준으로 메시지 보내기
특정 로캘에 맞는 메시지를 보내야 하는 경우가 있습니다. 예를 들어 브라질 포르투갈어는 일반적으로 유럽식 포르투갈어와 다릅니다.
사용 사례: 최근 로캘에 따라 현지화하기
다음은 가장 최근 로캘을 사용하여 국제화된 메시지를 더욱 현지화하는 방법에 대한 사용 사례입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{% if ${language} == 'en' %}
Message in English
{% elsif ${language} == 'fr' %}
Message in French
{% elsif ${language} == 'ja' %}
Message in Japanese
{% elsif ${language} == 'ko' %}
Message in Korean
{% elsif ${language} == 'ru' %}
Message in Russian
{% elsif ${most_recent_locale} == 'pt_BR' %}
Message in Brazilian Portuguese
{% elsif ${most_recent_locale} == 'pt_PT' %}
Message in European Portuguese
{% elsif ${language} == 'pt' %}
Message in default Portuguese
{% else %}
Message in default language
{% endif %}
이 사용 사례에서는 가장 최근 로캘이 pt_BR인 고객에게 브라질 포르투갈어로 메시지가 전송되고, 가장 최근 로캘이 pt_PT인 고객에게는 유럽 포르투갈어로 메시지가 전송됩니다. 앞의 두 조건을 충족하지 않지만 언어를 포르투갈어로 설정한 고객에게는 기본 포르투갈어 유형으로 설정한 메시지가 전송됩니다.
사용 사례: 시간대별로 사용자 타겟팅하기
시간대별로 사용자를 타겟팅할 수도 있습니다. 예를 들어, 동부 표준시(EST) 기준인 경우 한 메시지를 보내고 태평양 표준시(PST)인 경우 다른 메시지를 보냅니다. 이를 위해 현재 시간을 UTC로 저장하고, 사용자의 현재 시간과 if/else 문을 비교하여 올바른 시간대에 맞는 메시지를 전송합니다. 사용자의 로컬 시간대에 맞춰 캠페인을 설정하여 적절한 시간에 캠페인을 전달해야 합니다.
오후 2시에서 3시 사이에 전송될 메시지를 작성하는 방법에 대한 다음 사용 사례를 참조하세요. 각 시간대에 맞는 특정 메시지가 포함되어 있습니다.
1
2
3
4
5
6
7
8
{% assign hour_in_utc = 'now' | date: '%H' | plus:0 %}
{% if hour_in_utc >= 19 && hour_in_utc < 20 %}
It is between 2:00:00 pm and 2:59:59 pm ET!
{% elsif hour_in_utc >= 22 && hour_in_utc < 23 %}
It is between 2:00:00 pm and 2:59:59 pm PT!
{% else %}
{% abort_message %}
{% endif %}
랜덤 숫자로 메시지 보내기
{% random %} 태그는 랜덤 숫자를 반환합니다. A/B 스타일 로직, 샘플링 또는 메시지 콘텐츠 변형에 사용할 수 있습니다.
| 태그 | 설명 |
|---|---|
{% random %} |
0과 1 사이의 플로트(0 포함, 1 미포함). |
{% random 10 %} (정수 인수) |
0부터 지정된 정수 미만까지의 정수. 예를 들어, {% random 10 %}은 0에서 9 사이의 정수를 반환합니다. |
사용 사례: 사용자에게 랜덤 배리언트 보내기
1
2
3
4
5
6
7
{% capture roll_str %}{% random %}{% endcapture %}
{% assign roll = roll_str | plus: 0 %}
{% if roll < 0.5 %}
Show variant A
{% else %}
Show variant B
{% endif %}
GitHub 에서 이 페이지를 편집합니다.