Skip to content

현지화

Braze는 SDK를 통합한 후 사용자 기기에서 로캘 정보를 자동으로 수집합니다. 로캘에는 언어와 지역 식별자가 포함되어 있습니다. 이 정보는 국가언어 아래의 Braze 세분화 도구에서 확인할 수 있습니다.

플랫폼에 따라 로캘이 수신되는 방식에 대한 기술적 세부 사항은 다음 iOSAndroid/FireOS 리소스를 참조하세요.

여러 국가에 고객을 보유한 기업의 경우, Braze 여정 초기에 현지화를 처리하면 시간과 리소스를 절약할 수 있습니다. 다음 문서에서는 캠페인과 캔버스 전반에 걸쳐 다양한 오케스트레이션 접근 방식의 이점을 나열하고 사용자가 메시징에서 개인화를 처리할 수 있는 다양한 방법을 소개합니다.

오케스트레이션

캠페인

“하나의 템플릿으로 모든 것을 처리하는” 접근 방식에서는 Liquid를 사용하여 Braze의 단일 템플릿에 로컬라이제이션을 적용합니다. 전송 후 대시보드에서 집계된 캠페인 분석 정보를 제공합니다. 예를 들어 국가수신된 캠페인 필터를 결합하여 사용자 지정 세그먼트 퍼널을 사용하여 사용자 수준 참여도를 측정할 수 있습니다.

장점 고려 사항  
- 중앙 집중식 접근 방식
- 이메일 작성 시간 단축, 이메일을 여러 번 작성할 필요 없음
- 수동 보고서 작성
- 캠페인 보고서에는 국가별 지표가 아닌 집계된 지표가 표시됩니다.
- 리퀴드가 예상대로 채워지는지 철저히 테스트해야 합니다.
- 국가 값을 가져오는 방법이나 설정한 카운티 수에 따라 각 국가를 테스트하는 것이 까다로울 수 있습니다.
- 여러 시간대에 걸쳐 특정 시간대에 전송 예약하기 어려움
- 국가별로 별도의 콘텐츠를 보내려는 경우 사용하기가 더 어렵습니다.
 
-– -– -–

‘국가당 하나의 템플릿’ 접근 방식은 템플릿을 여러 전송 로캘로 분리합니다. 전송 후에는 대시보드에서 각 국가별로 전송 분석을 개별적으로 보고하며, 모든 다운스트림 사용자 수준의 커런츠 이벤트도 특정 캠페인에 연결됩니다.

장점 고려 사항
- 여러 위치로 확장 가능
- Braze 내 국가별 수익 보고(예: 캠페인별)
- 국가별로 콘텐츠가 크게 다른 경우 유연성 확보
- 전략적 구조화 필요
- 더 많은 빌드 노력 필요(예: 국가별 별도 캠페인)

캔버스

‘모두를 위한 하나의 여정’ 접근 방식에서는 로컬라이제이션이 캔버스 여정과 Liquid 내에서 처리되어 각 사용자에 대한 메시징을 정의합니다.

캔버스가 전송된 후 대시보드는 집계된 캔버스 애널리틱스를 제공하며, 사용자 수준 참여도는 다음과 같은 사용자 지정 세그먼트 퍼널을 통해 측정할 수 있습니다. 국가수신된 캔버스 단계 필터를 결합하는 등의 사용자 지정 세그먼트 퍼널을 통해 측정할 수 있습니다.

장점 고려 사항
- 중앙 집중식 접근 방식
- 이메일 작성 시간 단축 - 이메일을 여러 번 작성할 필요가 없습니다.
- 수동 보고서 작성
- 캔버스 보고서에는 국가별 지표가 아닌 집계된 지표가 표시됩니다.
- 리퀴드가 예상대로 채워지는지 철저히 테스트해야 합니다.
- 국가 값을 가져오는 방법이나 설정한 카운티 수에 따라 각 국가를 테스트하는 것이 까다로울 수 있습니다.
- 여러 시간대에 걸쳐 특정 시간대에 전송 예약하기 어려움
- 국가별로 별도의 콘텐츠를 보내려는 경우 사용하기가 더 어렵습니다.

‘국가당 하나의 여정’ 접근 방식에서 캔버스 여정 빌더는 여러 캔버스 구성 요소를 통해 사용자 여정을 유연하게 생성할 수 있는 기능을 제공합니다. 이러한 구성 요소는 구성 요소 및 전체 여정 수준에서 복제할 수 있습니다.

현지화는 다음 방법을 통해 수행할 수 있습니다:

  • 국가별로 캔버스를 분리하여 오디언스 필터를 사용하여 복잡한 사용자 여정을 퍼널 상단에서 정의할 수 있습니다.
  • 국가별 맞춤형 사용자 여정, 단일 캔버스에서 각 국가별로 별도의 메시지 스레드를 생성하여 각 여정에 대해 대규모로 사용자를 직관적으로 분류할 수 있는 오디언스 경로 구현

전송된 대시보드는 고객의 현재 위치를 기반으로 국가별 및 사용자 수준별 커런츠 이벤트에 대한 동적 분석을 제공합니다.

장점 고려 사항
- Braze 내 국가별 수익 보고(예: 캔버스, 이형 상품 또는 단계별)
- 국가별로 콘텐츠가 크게 다른 경우 유연성 확보
- 향후 여정의 일부로 다른 채널을 추가할 수 있습니다.
- 전략적 구조화 필요
- 더 많은 빌드 작업 필요(예: 각 국가별로 별도의 메시지 단계)
- 하나의 캔버스에 국가별로 복잡한 맞춤형 여정을 넣으면 캔버스가 커지고 읽기 어려워질 수 있습니다.

개인화

옵션 1: 수동 입력

수동 입력은 메시지 본문에 콘텐츠를 수동으로 붙여넣고 Liquid를 사용하여 수신자에게 올바른 언어를 조건부로 표시해야 합니다.

1
2
3
4
5
6
7
8
9
{% if ${language} == 'en' %}
This is a message in English from Braze!
{% elsif ${language} == 'es' %}
Este es un mensaje en español de Braze !
{% elsif ${language} == 'zh' %}
这是一条来自Braze的中文消息。
{% else %}
This is a message from Braze! This will go to anyone who does not match the other specified languages!
{% endif %}

위의 형식을 사용하거나 Braze 대시보드를 통해 이 작업을 수행할 수 있습니다:

  1. 메시지를 작성할 때 언어 버튼을 선택하여 선택한 각 언어에 대한 리퀴드 조건부 로직을 생성합니다.
  2. 템플릿 텍스트를 메시지에 삽입한 후 각 언어별로 다른 변형을 입력합니다. 서식 지정이 있는 각 필드에 대해 괄호로 묶은 서식 지정 세그먼트 뒤에 변형을 입력해야 합니다. 변형은 그 앞의 괄호 안에 참조된 언어 코드와 일치해야 합니다.
  3. 메시지를 보내기 전에 사용자의 ID 또는 이메일을 입력하여 메시지를 테스트하여 언어에 따라 메시지가 개인에게 어떻게 표시되는지 확인합니다.

옵션 2: 콘텐츠 블록

브레이즈 콘텐츠 블록 은 재사용 가능한 콘텐츠 블록입니다. 블록이 변경되면 해당 블록에 대한 모든 참조가 변경됩니다. 예를 들어 이메일 헤더 또는 바닥글에 대한 업데이트는 모든 이메일 또는 하우스 번역에 반영됩니다. 이러한 블록은 REST API를 사용하여 생성업데이트할 수도 있으며, 사용자가 프로그래밍 방식으로 번역을 업로드할 수도 있습니다.

대시보드에서 캠페인을 구축할 때 콘텐츠 블록은 {{content_blocks.${name_of_content_block}}} 태그를 사용하여 참조할 수 있습니다. 이러한 블록에는 옵션 1과 같이 각 언어에 대한 조건부 로직에 포함된 모든 번역을 포함하거나 각 언어에 대해 별도의 블록을 사용할 수 있습니다.

콘텐츠 블록은 번역이 필요한 콘텐츠를 콘텐츠 블록 내에 보관하고, 가져오고, 번역한 다음 업데이트하는 번역 관리 프로세스로도 활용할 수 있습니다:

  1. 대시보드에서 ‘번역 필요’ 태그를 사용하여 콘텐츠 블록을 수동으로 생성합니다.
  2. 서비스는 /content_blocks/list 엔드포인트를 사용하여 모든 콘텐츠 블록의 야간 가져오기를 수행합니다.
  3. 서비스에서 /content_blocks/info 엔드포인트를 통해 각 콘텐츠 블록에 대한 세부 정보를 가져와 번역할 태그가 지정된 블록을 확인합니다.
  4. 번역 서비스는 모든 “번역 필요” 콘텐츠 블록의 본문을 번역합니다.
  5. 서비스가 /content_block/update 엔드포인트에 도달하여 번역된 콘텐츠를 업데이트하고 태그를 “번역 완료”로 업데이트합니다.

옵션 3: 카탈로그

카탈로그를 사용하면 API 및 CSV 파일을 통해 가져온 JSON 객체의 데이터에 액세스하여 Liquid를 통해 사용자 지정 속성이나 사용자 지정 이벤트 속성과 유사하게 메시지를 보강할 수 있습니다. 예를 들어, 다음과 같습니다.

다음 API 호출을 통해 카탈로그를 만듭니다:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
curl --location --request POST 'https://your_api_endpoint/catalogs' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
 "catalogs": [
   {
     "name": "translations",
     "description": "My localization samples",
     "fields": [
       {
         "name": "id",
         "type": "string"
       },
       {
         "name": "context",
         "type": "string"
       },
       {
         "name": "language",
         "type": "string"
       },
       {
         "name": "body",
         "type": "string"
       }
     ]
   }
 ]
}'

다음 API 호출을 통해 항목을 추가합니다:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
curl --location --request POST 'https://your_api_endpoint/catalogs/translations/items' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
 "items": [
   {
     "id": "1",
     "context": "1",
     "language": "en",
     "body": "Hey"
   },
   {
     "id": "2",
     "context": "1",
     "language": "es",
     "body": "Hola"
   },
   {
     "id": "3",
     "context": "1",
     "language": "pt",
     "body": "Oi"
   },
   {
     "id": "4",
     "context": "1",
     "language": "de",
     "body": "Hallo"
   }
 ]
}'

다음 형식의 CSV를 만듭니다:

ID 컨텍스트 언어 body
1 1 en Hey
2 1 es Hola
3 1 pt Oi
4 1 de 안녕하세요
5 2 en Hey
6 2 es Hola
7 2 pt Oi
8 2 de 안녕하세요
9 3 en Hey
10 3 es Hola
11 3 pt Oi
12 3 de 안녕하세요

이러한 카탈로그 항목은 아래 표시된 개인화를 사용하여 참조하거나 데이터 그룹을 만들 수 있는 선택 항목을 사용하여 참조할 수 있습니다.

1
2
3
4
{% catalog_items translations 1 %}
{{items[0].body}} 

//returns “Hey”

옵션 4: 로캘 추가

메시지에 로캘을 추가하고 사용하여 단일 이메일 캠페인 또는 캔버스 내에서 다양한 언어의 사용자를 타겟팅할 수 있습니다.

옵션 5: 로컬라이제이션 파트너

트랜시펙스와 크라우딘을 비롯한 많은 Braze 파트너가 현지화 솔루션을 제공합니다. 일반적으로 사용자는 내부 팀 및 번역 에이전시와 함께 플랫폼을 사용합니다. 그런 다음 이러한 번역을 업로드한 다음 REST API를 통해 액세스할 수 있습니다. 또한 이러한 서비스는 종종 커넥티드 콘텐츠를 활용하여 사용자가 API를 통해 번역을 가져올 수 있도록 합니다.

예를 들어, 다음 커넥티드 콘텐츠 호출은 번역을 가져오기 위해 Transifex 및 Crowdin을 호출하고 {{${language}}} 을 활용하여 특정 사용자에 대한 올바른 번역을 식별합니다. 그런 다음 이 번역은 JSON 블록 “문자열”에 저장되고 참조됩니다.

1
2
{% connected_content https://www.transifex.com/api/2/project/example/resource/example/translation/{{${language}}}/strings :basic_auth semc :save strings %}
{{strings[0].translation}}
1
2
{% connected_content https://api.crowdin.com/api/project/braze-test/export-file?key=you_api_key&language={{${language}}}&file=test.json&export_translated_only=1 :save response %}
{{response.value_1}}

옵션 6: 공개 Google 스프레드시트에서 번역

또 다른 번역 옵션으로는 Google 스프레드시트의 주택 번역이 있으며, 번역 에이전시와 협력하여 처리하는 경우가 많습니다. 여기에 저장된 번역은 커넥티드 콘텐츠를 사용하여 쿼리할 수 있습니다. 그러면 사용자의 언어를 기반으로 한 관련 번역이 전송 시 캠페인 본문으로 가져옵니다.

옵션 7: SheetDB를 통해 Google 스프레드시트를 JSON API로 변환하기

이 옵션은 Google 스프레드시트를 연결된 콘텐츠를 통해 쿼리된 JSON 객체로 변환하는 대체 방법을 제공합니다. SheetDB를 통해 스프레드시트를 JSON API로 전환하면 API 호출의 주기에 따라 여러 구독 티어 중에서 선택할 수 있습니다.

스프레드시트 구조는 옵션 4의 단계를 따르지만 SheetDB는 개체를 쿼리할 수 있는 추가 필터도 제공합니다.

일부 사용자는 대규모 조건부 블록을 구축하는 대신 단일 언어에 대한 결과를 자동으로 반환하는 {{${language}}} Liquid 태그를 기반으로 JSON 개체를 필터링하기 위해 GET 요청 호출에서 SheetDB의 검색 방법을 구현하여 Liquid 및 연결된 블록 종속성이 적은 SheetDB를 구현하는 것을 선호할 수 있습니다.

1단계: Google 시트 서식 지정

먼저, 언어가 서로 다른 개체가 되도록 Google 시트를 작성합니다:

언어 제목1 본문1 본문2 제목2 본문2
  en Hey 1 Hey2 5
  es Hola 2 Hola2 6
  pt Oi 3 Oi2 7
  안녕하세요 4 안녕하세요2 8

2단계: 커넥티드 콘텐츠 호출에서 언어 Liquid 태그 사용

다음으로, 커넥티드 콘텐츠 호출 내에 {{${language}}} Liquid 태그를 구현합니다. 스프레드시트를 만들면 SheetDB가 sheet_id 을 자동으로 생성합니다.

1
{% connected_content https://sheetdb.io/api/v1/[sheet_id]/search?language={{${language}}} :save result%}

3단계: 메시지 템플릿

마지막으로 Liquid를 사용하여 메시지를 템플릿화하세요:

1
2
{{result[0].title1}} //returns “Hey”
{{result[0].title2}} //returns “Hey2”
고려 사항
  • {{${language}}} 필드는 모든 사용자에 대해 정의되어야 하며, 그렇지 않으면 언어가 없는 사용자를 위해 Liquid 조건부 블록을 폴백 처리기로 제공해야 합니다.
  • Google 스프레드시트 내의 데이터 모델링은 메시지 개체를 사용하는 것과는 다른 언어 중심의 수직적 방식을 따라야 합니다.
  • SheetDB는 제한된 무료 계정과 캠페인 전략에 따라 고려해야 하는 여러 가지 유료 옵션을 제공합니다.
  • 연결된 콘텐츠 호출을 캐시할 수 있습니다. API 호출의 예상 케이던스를 측정하고 검색 방법을 사용하는 대신 기본 SheetDB 엔드포인트를 호출하는 대체 접근 방식을 조사하는 것이 좋습니다.
이 페이지가 얼마나 도움이 되었나요?
New Stuff!