Braze
초개인화된 메시지를 전송하기 위한 Connected Content 세팅 방법 A to Z
2023-06-27
By
Damin Oh
Braze
초개인화된 메시지를 전송하기 위한 Connected Content 세팅 방법 A to Z
June 27, 2023
By
Damin Oh

CRM 마케팅에서 개인화는 고객의 요구와 선호에 맞춘 맞춤형 커뮤니케이션을 제공하여 고객과의 관계를 강화하는 핵심 요소입니다. 개인화된 CRM 메시지는 고객들이 보다 개인적이고 의미 있는 경험을 느끼게 하여 브랜드 충성도를 높이고 제품 사용에 긍정적인 영향을 미칩니다.

브레이즈(Braze)에서는 커스텀 어트리뷰트(Custom Attribute) 및 커스텀 이벤트(Custom Event)로 수집하는 데이터를 사용해 유저에게 개인화된 CRM 메시지를 발송할 수 있습니다. 보다 더 고도화된 개인화 CRM 캠페인 운영을 희망한다면, 실시간 데이터 혹은 브레이즈로 수집하지 않는 외부의 데이터를 개인화 메시지에 활용할 수 있도록 하는 ‘커넥티드 콘텐츠(Connected Content)’ 기능을 사용할 수도 있습니다. 

이번 포스트는 브레이즈에서 초개인화된 CRM 마케팅 운영을 가능하게 하는 커넥티드 콘텐츠에 대해 다룰 예정입니다. 순서대로 커넥티드 콘텐츠 기능 설명, 사용 방법 및 예시, 단계별 설정 방법 및 고려해야 하는 사항을 소개하겠습니다.

1. 커넥티드 콘텐츠 기능 설명

커넥티드 콘텐츠(Connected Content)란? 

커넥티드 콘텐츠란, 브레이즈에 저장되지 않은 외부의 데이터를 브레이즈로 불러오는 기능입니다. 커넥티드 콘텐츠를 사용하면 메시지를 보내는 순간에 고객사에서 세팅한 API를 호출(Request)하고, 응답받은 결과(Response)를 메시지에 활용할 수 있습니다.

또한 커넥티드 콘텐츠로 받아온 결과는 Liquid라는 템플릿 언어를 사용하여 메시지 안에서 가공하거나, 브레이즈의 유저 어트리뷰트, 커스텀 어트리뷰트, 이벤트 프로퍼티 등과 조합하여 사용할 수 있습니다.

커넥티드 콘텐츠는 주로 언제 활용하나요?

다음 4가지 목적으로 사용할 수 있습니다.

1)  유저 별로 극대화된 개인화 메시지를 전송하고 싶을 때 사용합니다.

  • 유저 속성이나 행동에 따라 다른 상품을 추천하고 싶을 때

2) 민감한 정보를 브레이즈에 저장하지 않고 메시지를 전송하고 싶을 때 사용합니다.

3) 실시간성이 중요한 정보를 메시지에 반영하고 싶을 때 사용합니다.

  • 유저가 지금 보유하고 있는 포인트나 마일리지를 메시지에 담고 싶을 때
  • 유저가 봤던 상품의 상세 정보(실시간 할인율, 품절 여부 등)를 메시지에 담고 싶을 때 
  • 날씨, 도로 상황, 환율 등 외부 API를 사용하여 실시간 정보를 메시지에 담고 싶을 때

4) 벤더사로 Webhook을 발송하기 위해 필요한 값을 받아야 할 때 사용합니다.

  • SMS, 카카오 친구톡 등을 전송하기 위해 사용하는 벤더사로부터 인증 토큰을 API로 발급받아야 하는 경우, 변경되는 토큰을 자동으로 받아올 때

커넥티드 콘텐츠의 장점

1) 메시지 발송 직전에 API를 호출하기 때문에, 가장 최신의 정보를 얻을 수 있습니다.

2) 불러온 정보는 저장하지 않기 때문에 별도로 Data point가 차감되지 않습니다.

커넥티드 콘텐츠 사용 시 유의사항

1) 커넥티드 콘텐츠를 사용하려면 반드시 활용 가능한 API가 필요합니다. 만약 활용 가능한 API가 없다면 내부 개발팀에 개발 요청이 필요합니다.

2) 브레이즈가 메시지를 빠르게 전송하기 위해서는 API가 단기간에 많은 양의 트래픽을 소화할 수 있어야 합니다. 다만 분당 호출 횟수를 조절할 수 있습니다. 조절 방법은 이 글의 ‘2) 캠페인 제반 설정 및 개발 단계’을 참고해주세요.

3) 커넥티드 콘텐츠로 불러온 정보로 세그먼트 생성 등은 불가능합니다. 커넥티드 콘텐츠로 불러온 데이터는 메시지에 활용될 뿐, 저장되지 않기 때문입니다.

4) 커넥티드 콘텐츠는 정보를 받아오는 기능만 수행합니다. 가져온 정보를 바탕으로 조건문(If문, Case문 등)을 사용하는 등의 추가 작업이 필요하다면 Liquid 템플릿 언어를 함께 사용해야 합니다.

5) Liquid로 조건문을 사용하여 유저에게 다른 메시지를 전송하는 경우, 메시지별 성과 분석은 어렵습니다. 따라서 A/B 테스트 용도로는 적합하지 않습니다.

2. 커넥티드 콘텐츠 사용 방법 및 예시

커넥티드 콘텐츠의 필수 구성 요소

커넥티드 콘텐츠의 3가지 필수 구성요소는 다음과 같습니다.

  • connected_content: {% connected_content %} 태그를 넣어 사용 선언을 합니다.
  • URL: 호출할 API Endpoint를 입력합니다.
  • save: ‘:save’를 사용하여 불러온 Response를 로컬 변수에 저장합니다. 변수 이름은 상관 없습니다.

커넥티드 콘텐츠로 메시지에 데이터를 불러오기

샘플 API를 사용해 커넥티드 콘텐츠로 데이터를 불러오는 방법을 알아보겠습니다.

사용할 샘플 API : https://run.mocky.io/v3/cfd6a7ee-260c-4f3e-84ba-bb8674f91eed

참고사항
Mock API로 JSON 형태의 Response만 정의하면 빠르게 샘플 API를 만들어 커넥티드 콘텐츠를 테스트할 수 있습니다. 제가 사용한 Mock API 제작 서비스는 Mocky입니다.

Request 예시

{% connected_content https://run.mocky.io/v3/cfd6a7ee-260c-4f3e-84ba-bb8674f91eed :save info %} → URL 정보를 불러와 info 라는 변수에 저장합니다.
{{info}} → 저장한 info 를 메시지에 불러옵니다.

Response 예시

{"user_id"=>"AB180-01", "recommended_item"=>[{"item_id"=>"1028017781",
"item_name"=>"막스스튜디오 프렌치린넨블렌드 카라니트 3종", "item_category"=>"패션의류",
"item_image_url"=>"https://asset.m-gs.kr/prod/1028017781/1/550",
"item_landing_url"=>"https://www.gsshop.com/prd/prd.gs?prdid=1028017781&lsectid=1378781&
rank=4&lseq=403259"}], "__http_status_code__"=>200}

아래 연산자를 사용하여 Response에서 필요한 값만 선택할 수 있습니다.

  • . (= 점): 하위 속성을 선택할 때 사용합니다. (예: {{info.recommended_item}} )
  • [ ] (= 대괄호): 배열의 n번째 요소를 가져올 때 사용합니다. (예: {{info[0]}} )

예를 들어, Response에서 첫번째 상품의 item_name만 가져오고 싶다면 아래와 같이 작성할 수 있습니다.

{{info.recommended_item[0].item_name}} 
→ info의 recommened_item의 첫번째 값에서 item_name을 선택합니다.

불러온 데이터를 메시지에 활용하기

앞서 불러온 메시지는 Liquid 템플릿 언어를 활용해 조건문을 작성하여 유저마다 다른 메시지를 전송하거나, 조건에 부합하지 않은 유저에게는 {% abort_message %} 태그를 사용해 메시지를 전송하지 않을 수도 있습니다. 또한 {% abort_message %} 에 String 문구를 추가하면 메시지가 전송되지 않은 이유를 Settings > Message Activity Log 에 남길 수도 있습니다.

기타 Liquid 를 활용한 다양한 조건문 예시는 브레이즈의 Liquid Use Case Library를 참고해주세요.

3. 커넥티드 콘텐츠를 활용한 캠페인, 어떻게 준비하나요?

커넥티드 콘텐츠를 처음 사용하는 분들은 설정 과정에서 가장 어려움을 많이 겪습니다. AB180은 다양한 고객사들을 지원드리면서 커넥티드 콘텐츠를 성공적으로 구축하는 경험을 쌓았습니다. 이를 바탕으로 커넥티드 콘텐츠를 설정할 때 필요한 단계별 준비 방법을 소개합니다.

크게 ‘캠페인 기획 → 캠페인 제반 설정 및 개발 → 캠페인 운영 → 캠페인 관리’ 단계로 이루어져 있습니다.

1) 캠페인 기획 단계: 마케터

마케터가 캠페인을 기획할 때 커넥티드 콘텐츠 기능의 필요성을 인지하고, 캠페인에 필요한 정보를 구체화합니다.

마케터의 체크리스트

(1) 캠페인을 기획하고, 캠페인 운영에 커넥티드 콘텐츠가 필요한지 판단합니다.

캠페인에 커넥티드 콘텐츠를 사용해야 하는지 판단할 수 있는 일반적인 기준 몇가지를 소개합니다:

  • 캠페인 운영에 정말 필요한 정보인가?
  • 이미 브레이즈에 수집된 유저/커스텀 어트리뷰트, 커스텀 이벤트 프로퍼티로는 대체할 수 없는 정보인가?
참고사항
브레이즈는 커넥티드 콘텐츠로 불러온 데이터를 저장하지는 않으나, 처리합니다. 따라서 커넥티드 콘텐츠를 통해 브레이즈로 불러오는 정보가 개인정보인 경우, 사내 법무팀과 개인정보 활용 가능 여부를 검토하시길 권장드립니다.

(2) 캠페인 운영에 필요한 사항들을 정리합니다.

⓵ 메시지에 필요한 정보 구체화

메시지에 필요한 모든 정보를 API에서 제공하는지 확인하기 위한 사전 작업입니다.
예를 들어, 포인트 정보를 캠페인에 활용하고 싶다면 ‘포인트(예시 값: 500)’ 으로 정리합니다.

필요한 정보를 구체화하는 팁

임시 메시지를 작성해보면서 필요한 정보를 정리하시길 추천드립니다. 동일한 목적의 캠페인을 기획하더라도 메시지별로 활용하려는 정보는 다를 수 있습니다. Compose Messages 단계에서 메시지 문구를 정리하면 필요한 정보를 정의하는 데 도움이 됩니다.

커넥티드 콘텐츠는 파란색 ‘+’ 버튼이 있는 Title, Message, Button, Image, Web URL, Deeplink 영역 등에 모두 활용 가능합니다.

② 예상 API 호출량(Request 수)을 산정합니다.

API를 안정적으로 사용하려면 API가 호출될 예상 호출량을 산정해야 합니다. 커넥티드 콘텐츠는 기본적으로 타겟 유저 당 한 번의 리퀘스트를 전송합니다. 하지만 Validation/Retry 로직 등으로 동일한 유저 대상으로 여러 번의 리퀘스트가 전송될 수 있습니다. (브레이즈 가이드 Performance 영역) 

따라서 Target Audiences의 ‘Reachable Users’를 사용해서 호출량을 예측하되, 캠페인 목표 유저 수보다 여유있게 산정하시는 것을 권장드립니다.

위 2가지 정보를 파악했다면, 캠페인 운영에 필요한 정보를 제공하는 API가 있는지 개발자와 함께 확인합니다.

2) 캠페인 제반 설정 및 개발 단계: 개발자

커넥티드 콘텐츠를 활용하기 위해 사전에 제반 사항을 논의하고 설정하는 단계입니다. 개발자가 마케터의 요청을 확인하고 내부에 활용 가능한 API가 존재하는지 확인합니다. 적합한 API가 없을 경우 개발이 필요합니다.

개발자의 체크리스트

(1) API가 사용 가능한지 검토합니다. 아래 검토 사항은 브레이즈 공식 가이드인 Making an API call 과, Local Connected Content variables 가이드에 기반하고 있습니다.

⓵ Request 검토 사항

  • 커넥티드 콘텐츠는 GET과 POST Method만 지원합니다.
  • Endpoint 는 포트 80(HTTP) 및 443(HTTPS)를 통해 통신하는 URL만 허용합니다.
  • Default 값과 다를 경우, Header 나 Content-Type을 명시적으로 지정해야 하는지 확인해주세요. (Default: application/json with Accept: */*, 가이드)
  • 외부 IP가 내부 API에 접근 가능한 환경인지 확인해주세요. IP Allowlisting이 필요하다면, Connected Content IP whitelisting 가이드의 IP 리스트에 있는 IP를 모두 허용해주세요.
  • 추천 상품 API와 같이 유저 별로 다른 값을 내려주는 경우, API에서 User ID를 받아 해당 User ID에 속한 값들을 내려주도록 설계하는 것이 좋습니다. 브레이즈는 디폴트 어트리뷰트 중 하나로 User ID를 지원하고 있습니다. (개인화 태그를 사용한 URL 예시: https://ab180.co/recommend/{{$user_id}}} )

② Response 검토 사항

  • 권장 Response 용량은 1MB 미만입니다.
  • 브레이즈는 성능상의 이유로 서버의 응답 시간이 2초 미만이어야 합니다. 서버가 응답하는 데 2초 이상 걸리면 Response는 메시지에 포함되지 않습니다.
  • Response는 JSON Object 형식을 준수해야 합니다. 그 외의 형식은 활용할 수 없습니다.

(2) 예상 호출량을 정합니다.

API의 처리량을 고려하여 마케터가 요청한 호출량을 받아들일 수 있는지 확인해주세요. 브레이즈는 타겟 유저 당 여러 건의 리퀘스트를 호출할 수 있으므로 예상 호출량을 여유있게 계산할 것을 권장합니다. 브레이즈는 분당 Rate Limit 과 데이터 캐싱 방식으로 호출량을 조절하는 옵션을 제공합니다. 필요에 따라 마케터와 아래 옵션을 사용하는 방안에 대해 논의할 수 있습니다.

⓵ 옵션1: 분당 Rate Limit

  • 캠페인/캔버스 설정 시 Target Audiences 단계에서 분당 최대 발송량을 제한할 수 있습니다.
  • 최소 50건~최대 50만 건으로 구간을 지정할 수 있습니다.

② 옵션2: 데이터 캐싱 방식 (cache_max_age)

동일한(Identical) 리퀘스트 발생 시, 브레이즈가 API를 추가로 호출하지 않고 캐싱해둔 데이터를 재사용하는 최대 시간을 의미합니다.

  • Response가 1MB 미만인 경우에만 캐싱할 수 있으며, 캐싱 시간은 5분~4시간 사이로 조절할 수 있습니다. (Configurable caching 가이드)
  • 환율 API, 상품 재고 정보 API와 같이 동일한 정보를 여러 번 호출할 가능성이 높은 상황에서 유용하게 사용할 수 있습니다. 반대로 회원별 추천 상품 정보, 회원 정보 API와 같이 서로 다른 유저 정보를 호출하는 상황에서는 호출량을 줄이기 어렵습니다.
  • GET Method를 사용할 때는 기본 5분으로 설정되어 있으며, POST Method를 사용할 때는 기본적으로 설정이 적용되어 있지 않습니다.

3) 캠페인 운영 단계: 마케터 & 개발자

커넥티드 콘텐츠를 사용한 개인화 캠페인을 운영할 준비를 완료한 후, 운영할 캠페인을 설정하는 단계입니다.

마케터의 체크리스트

(1) 발송 시점, 발송 타겟, 목표 전환(Conversion) 등 캠페인 운영을 위한 다른 단계들을 설정해주세요.

(2) 커넥티드 콘텐츠가 적용된 Liquid 코드를 메시지에 입력한 다음, 개인화된 정보나 조건문의 조건이 메시지에 의도대로 반영되는지 점검해주세요.

개발자의 체크리스트

(1) 개발한 API를 가지고 Compose Messages에서 커넥티드 콘텐츠 코드를 작성해주세요.

(2) 메시지에서 조건문 등을 활용할 경우 Liquid 구문을 함께 작성해주세요.

완성도를 높은 커넥티드 콘텐츠 캠페인을 세팅하는 방법

(1) 커넥티드 콘텐츠 코드 작성 팁

  • 기본적으로 GET HTTP Request의 Content-Type은 application/json, Accept: */* 입니다. 명시적으로 Content-Type을 입력해야 한다면 URL 뒤에 :content_type 태그를 추가하고, Content-Type을 지정해주세요.(JSON parsing 가이드)
  • Header에 Authentication을 사용하는 경우 보안을 위해  Header를 추가해주세요. Header는 :headers {} 를 사용하여 선언할 수 있습니다. (Authentication types 가이드)
  • :retry 를 추가하면, 통신이 원활하지 않은 경우 다시 정상적인 Connection이 발생할 때까지 최대 5번의 호출을 재시도합니다. :retry는 인앱메시지에선 동작하지 않습니다. (Connected Content retries 가이드)

(2) 메시지 예외 처리 방법

  • Response 값이 없는 경우 메시지를 보내지 않도록 예외 처리를 할 수 있습니다.
  • 자세한 사항 및 예시 코드는 Aborting Connected Content 가이드를 참고 부탁드립니다.

(3) 테스트 및 디버깅 방법

  • 테스트 캠페인을 제작하여 Compose Messages 영역에서 커넥티드 콘텐츠 Request 및 Liquid문을 작성합니다.
  • ‘Test’ 를 클릭하면 API를 호출하여 값을 가져옵니다. 받은 값에 오류가 있거나 API가 400~500 Response Error를 내려주는 경우 ‘Message Activity Log’에서 ‘View Error Details’를 클릭해 에러 로그를 확인할 수 있습니다.


4) 캠페인 관리 단계: 마케터 & 개발자

마케터의 체크리스트

(1) 동일한 API를 다른 캠페인에서 사용할 경우 호출량이 증가하므로, 사전에 개발팀에 예상 증가량을 공유해주세요.

개발자의 체크리스트

(1) 초반에는 일별 및 주별로 호출량을 모니터링하면서 호출량을 최적화할 것을 권장드립니다.

(2) API Key 변경 등 API 스펙이 바뀌는 경우, 브레이즈가 Response를 가져오지 못할 수 있습니다. 스펙이 바뀐다면 브레이즈 커넥티드 콘텐츠 코드도 수정해주시길 바랍니다.

(3) ‘Content Block’ 기능을 사용하면 코드 관리가 용이합니다. 브레이즈에서는 자주 사용하는 HTML 및 TEXT 데이터를 하나의 블록으로 만들어서 저장하는 Content Block 기능을 제공합니다. 이에 자주 사용하는 커넥티드 콘텐츠와 Liquid 문을 Block으로 저장하고, 한번에 관리하시는 것을 권장드립니다. (Content Blocks 가이드)

커넥티드 콘텐츠를 사용해 CRM 마케팅의 개인화를 극대화해 보세요.

지금까지 커넥티드 콘텐츠 기능, 사용 방법 및 실제 캠페인에 반영되기까지의 절차에 대해 알아보았습니다. 여기까지 읽으신 여러분들은 이제 커넥티드 콘텐츠를 사용한 개인화된 캠페인을 운영할 준비가 모두 완료되었습니다! 커넥티드 콘텐츠를 사용해, 맞춤화된 개인화 정보를 활용하여 유저의 메시지 반응률을 향상시키는데 성공하기를 바랍니다. :)

AB180 블로그의 ‘Braze, Connected Content 활용하여 버려진 장바구니 캠페인 만들기(심화편)’ 글에서 구체적인 구현 실습과 함께 커넥티드 콘텐츠를 실제로 어떻게 활용할 수 있는지 알아볼 수 있습니다. 타사의 커넥티드 콘텐츠 활용 사례가 궁금하시다면 Success Case에 수록된 아래 인터뷰를 참고해보시길 추천드립니다.

카카오스타일, CRM 개인화 캠페인으로 2배 이상의 성과를 거두고 있습니다.

크몽, 휴먼 클라우드를 만들기 위한 빠른 액션과 분석을 브레이즈와 앰플리튜드에서 구현하고 있습니다.

원티드랩, “데이터가 흐르는 원티드, 누구나 직접 데이터를 확인하고 분석하며 일해요”

브레이즈를 사용하고 계시다면 커넥티드 콘텐츠와 관련된 추가 문의사항은 담당 CSM에게 문의주시길 바라며, 커넥티드 콘텐츠를 비롯한 브레이즈의 개인화 기능에 관심 있으시다면, 아래 도입 문의하기를 클릭하여 AB180에 연락주세요!

👉도입 문의하기👈

Damin Oh
Customer Success Manager
더 알아보기
크몽, 휴먼 클라우드를 만들기 위한 빠른 액션과 분석을 브레이즈와 앰플리튜드에서 구현하고 있습니다.
직장과 직업의 경계를 허물며 누구나 'work happy'하는 세상을 만들어가는 프리랜서 플랫폼, 크몽을 인터뷰했습니다. 누적 거래 수 250만 건을 돌파하며 빠르게 성장하고 있는 크몽이 브레이즈와 앰플리튜드를 어떻게 사용하고 있는지 알아보세요!
성공 사례 보러가기
짐싸, 이사 O2O 플랫폼의 앱 스토어 최적화 전략과 효율적인 광고 매체를 찾는 방법은?
짐싸(Zimssa)의 마케팅팀을 인터뷰했습니다. 이사 중개를 시작으로 토탈 무빙 테크 플랫폼으로 나아가고 있는 짐싸의 앱 마케팅 전략 및 에어브릿지 활용 인사이트를 확인해보세요!
성공 사례 보러가기
15,000명 이상의 업계 관계자들이 구독하고 있는 뉴스레터를 통해 업계 최신 트렌드를 가장 먼저 만나보세요.
응답이 제출되었습니다. 감사합니다.
잘못된 메일주소입니다.
주식회사 에이비일팔공
서울특별시 서초구 강남대로 61길 17, 3층, 4층 (서초동)
사업자등록번호: 550-88-00196
대표이사: 남성필
Copyright ⓒ 2023 AB180 Inc. All Rights Reserved.
개인정보 처리방침