Skip to content

지원되는 개인화 태그

이 참조 문서에서는 지원되는 Liquid 개인화 태그의 전체 목록을 다룹니다.

지원되는 태그 요약

편의를 위해 지원되는 개인화 태그의 요약을 제공합니다. 각 태그 유형 및 모범 사례에 대한 자세한 내용은 계속 읽어보세요.

지원되는 속성

캠페인, 카드 및 캔버스 속성은 해당 메시징 템플릿에서만 지원됩니다(예: dispatch_id는 인앱 메시지 캠페인에서 사용할 수 없음).

Braze에서 이러한 속성 중 일부가 소스마다 어떻게 다른지 자세히 알아보려면 이 도움말 문서를 참조하세요.

캔버스와 캠페인 태그의 차이점

다음 태그의 동작은 캔버스와 캠페인 간에 다릅니다:

  • dispatch_id 동작이 다른 이유는 Braze가 캔버스 단계를 ‘스케줄’된 경우에도 트리거된 이벤트로 취급하기 때문입니다(스케줄 가능한 진입 단계 제외). 자세히 알아보려면 디스패치 ID 동작을 참조하세요.
  • 캔버스에서 {{campaign.${name}}} 태그를 사용하면 캔버스 구성요소 이름이 표시됩니다. 이 태그를 캠페인에서 사용하면 캠페인 이름이 표시됩니다.

가장 최근에 사용한 기기 정보

모든 플랫폼에서 사용자의 가장 최근 기기에 대해 다음 속성을 템플릿화할 수 있습니다. 사용자가 애플리케이션을 사용하지 않은 경우(예: REST API를 통해 사용자를 가져온 경우) 이 값은 모두 null입니다.

기기 통신사, 모델명, 운영체제의 종류가 매우 다양하므로 이러한 값에 조건부로 의존하는 모든 Liquid를 철저하게 테스트하는 것이 좋습니다. 이 값은 특정 기기에서 사용할 수 없는 경우 null이 됩니다.

타겟 앱 정보

인앱 메시지의 경우, Liquid 내에서 다음 앱 속성을 사용할 수 있습니다. 이 값은 앱에서 메시징을 요청하는 데 사용하는 SDK API 키를 기반으로 합니다.

예를 들어, 이 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 %}

타겟 기기 정보

푸시 알림, 인앱 메시지 및 배너의 경우, 메시지를 수신하는 기기에 대한 다음 속성을 템플릿화할 수 있습니다. 푸시 알림, 인앱 메시지 또는 배너에는 사용자가 메시지를 읽는 기기의 속성이 포함될 수 있습니다. 이 속성은 콘텐츠 카드나 이메일에는 작동하지 않습니다. 이메일의 경우, 메시지는 전송 전에 렌더링되므로 사용자가 이메일을 여는 기기는 그 시점에 알 수 없습니다.

기기 통신사, 모델명, 운영체제의 종류가 매우 다양하므로 이러한 값에 조건부로 의존하는 로직을 철저히 테스트하는 것이 좋습니다. 이 값은 특정 기기에서 사용할 수 없는 경우 null이 됩니다.

또한, 푸시 알림의 경우, 푸시 토큰이 API를 통해 가져온 경우와 같은 특정 상황에서는 Braze가 푸시 알림에 연결된 기기를 식별할 수 없을 수 있으며, 이로 인해 해당 메시지의 값이 null이 될 수 있습니다.

푸시 메시지에서 이름 변수를 사용할 때 기본값 "there"를 사용하는 예시입니다.

기본값 대신 조건 로직 사용

경우에 따라 기본값을 설정하는 대신 조건 로직을 사용할 수도 있습니다. 조건 로직을 사용하면 커스텀 속성의 값에 따라 다른 메시지를 보낼 수 있습니다. 또한 조건 로직을 사용하여 속성 값이 null이거나 비어 있는 고객에 대한 메시지를 중단할 수 있습니다.

사용 사례

예를 들어, 고객에게 보상 잔액 알림을 보내고 있다고 가정해 보겠습니다. 기본값을 사용하여 잔액이 낮거나 없는 고객을 적절히 처리하기가 어렵습니다.

이 경우 기본값을 설정하는 것보다 더 효과적일 수 있는 두 가지 옵션이 있습니다:

  1. 잔액이 낮거나, null이거나, 비어 있는 고객에게는 메시지를 중단합니다.

    1
    2
    3
    4
    5
    
    {% if {{custom_attribute.${balance}}} > 0 %}
    Your rewards balance is {{custom_attribute.${balance}}}
    {% else %}
    {% abort_message() %}
    {% endif %}
    
  2. 이러한 고객에게는 완전히 다른 메시지를 보냅니다:

    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 설명서에서 확인할 수 있습니다.

사용 사례

고객이 리워드 포인트 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 %}

언어, 가장 최근 로캘 및 시간대를 기준으로 메시지 보내기

특정 로캘에 맞는 메시지를 보내야 하는 경우가 있습니다. 예를 들어 브라질 포르투갈어는 일반적으로 유럽식 포르투갈어와 다릅니다.

사용 사례: 최근 로캘에 따라 현지화하기

다음은 가장 최근 로캘을 사용하여 국제화된 메시지를 더욱 현지화하는 방법에 대한 사용 사례입니다.

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 스타일 로직, 샘플링 또는 메시지 콘텐츠 변형에 사용할 수 있습니다.

사용 사례: 사용자에게 랜덤 배리언트 보내기

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 %}
New Stuff!