Braze
데이터 타입별 유저 세그멘테이션을 통해 개인화된 CRM 캠페인 설계하기
2023-05-23
By
Subin Kim
Braze
데이터 타입별 유저 세그멘테이션을 통해 개인화된 CRM 캠페인 설계하기
May 23, 2023
By
Subin Kim

유저 그룹 세분화, 즉 세그멘테이션(Segmentation)은 유저의 상황, 마케팅 목표, 혹은 비즈니스 특성에 맞게 유저를 분류하는 것을 의미합니다. 효과적인 CRM 캠페인을 계획할 때는 먼저 메시지를 받을 타겟 유저, 즉 캠페인 타겟 세그먼트를 설정하는 것이 중요합니다. 세그먼트별로 효과적인 메시지를 발송하면 메시지에 대한 유저들의 반응을 극대화하고 리텐션을 향상시키는 데에 도움이 되기 때문입니다.

브레이즈(Braze)는 Standard Attribute, Custom Attribute, Custom Event, Purchase Event 등의 유저 데이터를 활용하여 메시지를 전달할 유저를 추출할 수 있는 ‘Segment’ 기능을 제공합니다. Segment를 활용해 유저의 인구통계학적 정보나 유저의 행동에 따라 캠페인 타겟 유저를 분류하거나, 특정 조건을 만족한 유저에게만 메시지를 보낼 수 있습니다.

정확한 세그멘테이션을 위해서는 전송할 Custom Attribute의 데이터 타입을 결정하는 것이 매우 중요합니다. 데이터 타입에 따라 Segmentation Filter에서 지원되는 세부 필터 옵션, 즉 연산자 유형이 달라지기 때문입니다. 

이번 포스트에서는 데이터 타입에 따라 Segmenation Filter에서 제공되는 연산자 및 사용 시 유의사항에 대해 알아보겠습니다.

데이터 타입별 Segmentation Filter 연산자

브레이즈에서는 Custom Attribute를 Strings, Arrays, Numbers, Booleans, Time(Date), Array of Object를 포함한 총 6개의 데이터 타입으로 전송할 수 있으며, 각 연산자에 따라 다양한 Segmentation Filter를 지원합니다.

1. Strings

문자열 타입의 데이터를 의미합니다. 일반적인 텍스트로 표현되는 데이터나, 숫자로 구성되어 있지만 연산이 필요하지는 않은 데이터를 Strings 타입으로 전송할 수 있습니다.

  • 예시 : 회원 등급, 상품 ID, 전화번호 등

Strings 타입의 데이터에 적용할 수 있는 연산자는 아래와 같습니다.

  • equals / does not equal : 입력한 문자열과 정확히 일치하거나, 혹은 일치하지 않는 유저를 필터링하는 연산자입니다.
  • is blank / is not blank : 해당 데이터가 비어있거나, 혹은 해당 데이터를 가지고 있는 유저를 필터링하는 연산자입니다.
  • matches regex / does not match regex : 정규식 규칙에 맞는 값을 가진 유저를 추출할 수 있는 연산자입니다.
  • is any of / is none of : 복수의 값을 입력할 수 있습니다. 그 중 해당하는 값이 있거나, 혹은 없는 유저를 타겟팅할 수 있는 연산자입니다.
  • contains any of / doesn’t contain any of : 복수의 값을 입력할 수 있습니다. 그 중 입력한 값이 포함된 데이터를 가지고 있거나, 혹은 가지지 않은 유저를 타겟팅할 수 있는 연산자입니다.

위 연산자를 활용하여 자주 사용되는 Segmentation Filter 예시는 아래와 같습니다.

  • External User ID equals {유저 아이디} : 특정 아이디를 가진 유저만 타겟팅할 수 있는 필터입니다.
  • Exteranl User ID is blank : 유저 아이디가 없는 유저를 타겟팅할 수 있는 필터로, 이 경우 비회원 유저들을 타겟팅하는 데에 사용됩니다.
  • membership_level(Custom Attribute) is any of ‘VIP’, ‘VVIP’ : 회원 등급이 VIP이거나 VVIP인 유저를 타겟팅 합니다.

2. Arrays

배열 형태의 데이터를 의미합니다. 목록형으로 저장하고 싶은 유저 데이터가 있는 경우, Arrays 타입으로 전송할 수 있습니다.

  • 예시 : 좋아요 누른 브랜드, 가입한 멤버십 종류 등

Arrays 타입의 데이터에 적용할 수 있는 연산자는 아래와 같습니다.

  • includes value / doesn’t include value : Array 내 항목 중 특정 값을 포함하고 있거나, 혹은 포함하지 않는 경우를 필터링하는 연산자입니다.
  • is empty / has a value : 해당 array가 비어있거나, 혹은 어떤 값이라도 가지고 있는 유저를 필터링하는 연산자입니다.
  • matches regex : 정규식 규칙에 맞는 값을 가진 유저를 추출할 수 있는 연산자입니다.
  • includes any of / includes none of : 복수의 값을 입력할 수 있습니다. 그 중 하나라도 정확히 맞는 값을 가지고 있거나, 하나도 가지지 않은 유저를 추출할 수 있는 연산자입니다.
  • values contain any of / values don’t contain any of : 복수의 값을 입력할 수 있습니다. 그 중 하나라도 입력한 값을 포함하는 값을 가진 유저나, 입력한 값을 가지지 않은 유저를 추출할 수 있는 연산자입니다.
  • is all of / isn’t all of : 복수의 값을 입력할 수 있습니다. 입력한 값을 정확하게 모두 가지고 있는 유저나, 모두 가지지 않은 유저를 추출할 수 있는 연산자입니다.

Arrays의 연산자를 활용한 Segmentation Filter 예시는 다음과 같습니다.

  • favorite_brand(Custom Attribute) includes value {브랜드명} : 좋아요 누른 브랜드 중 특정 브랜드가 포함된 유저만을 필터링합니다.
  • coupon_no_list(Custom Attribute) matches regex ^2023\d{6}$ : 10자리로 구성된 쿠폰 번호에서, 2023으로 시작하는 쿠폰을 가진 유저만 타겟팅할 수 있습니다.
  • liked_genre(Custom Attribute) includes any of ‘rock’, ‘pop’ : 좋아요 누른 장르 목록 중 ‘rock’과 ‘pop’이 있는 유저를 타겟팅할 수 있습니다. 만약 유저 A가 좋아요를 누른 장르 목록이 ‘rock’, ‘jazz’일 경우 유저 A는 해당 세그먼트에 포함됩니다. 유저 B가 좋아요를누른 장르 목록이 ‘kpop’, ‘hiphop’일 경우 유저 B는 해당 세그먼트에 포함되지 않습니다.
  • viewed_content(Custom Attribute) values contain any of ‘Avengers’, ‘John Wick’ : 시청 콘텐츠 목록 중 제목에 ‘Avengers’나 ‘John Wick’이 포함된 콘텐츠가 있는 유저를 타겟팅할 수 있습니다. 만약 유저 A의 시청 콘텐츠가 ‘Avengers 5’, ‘Joker’일 경우 유저 A는 해당 세그먼트에 포함됩니다. 유저 B의 시청 콘텐츠가 ‘Joker’, ‘Top Gun’일 경우 유저 B는 해당 세그먼트에 포함되지 않습니다.
  • registered_course(Custom Attribute) isn’t all of ‘English’, ‘Chinese’, ‘Japanese’ : 영어, 중국어, 일본어 강좌 모두를 등록하지 않은 유저를 타겟팅할 수 있습니다.

3. Numbers

숫자 타입의 데이터를 의미합니다. Numbers 타입에는 정수(integers)와, 음수를 포함한 소수(floats)를 모두 전송할 수 있습니다.

  • 예시 : 나이, 적립금, 신발 사이즈 등

Numbers 타입의 데이터에 적용할 수 있는 연산자는 아래와 같습니다.

  • exactly / does not equal : 입력한 숫자와 정확히 일치하거나, 혹은 일치하지 않는 유저를 필터링하는 연산자입니다.
  • more than / less than : 입력한 숫자를 기준으로 초과 혹은 미만에 해당하는 경우를 필터링하는 연산자입니다.
  • is blank / is not blank : 해당 데이터가 비어있거나, 혹은 해당 데이터를 가지고 있는 유저를 필터링하는 연산자입니다.

아래와 같은 상황에서 Numbers 타입의 데이터로 Segmentation Filter를 사용할 수 있습니다.

  • Age is more than 19 : 20세 이상의 유저를 타겟팅합니다.
  • reward_points(Custom Attribute) is more than 4999 AND reward_points is less than 10001 : 적립금이 5000원 이상, 10000원 이하인 유저를 타겟팅할 수 있습니다.
유의사항

- ‘more than’과 ‘less than’ 필터의 경우, 이상과 이하가 아닌 초과와 미만임에 유의하여 조건을 설정해야 합니다.
- ‘exactly 0’과 ‘less than’ 필터의 경우, 해당 데이터가 null인 유저도 포함합니다. 따라서 값이 빈 유저를 제외하기 위해서는, ‘is not blank’ 필터를 AND 조건을 활용하여 세그먼트에 포함하여야 합니다.

4. Booleans

참(True) 또는 거짓(False)으로 정의할 수 있는 데이터는 Booleans 타입으로 전송할 수 있습니다.

  • 예시 : 광고성 정보 수신 동의 여부, 야간 마케팅 수신 동의 여부, 구독 여부 등

Booleans 타입의 데이터에 적용할 수 있는 연산자는 아래와 같습니다.

  • is blank / is not blank : 해당 데이터가 비어있거나, 혹은 해당 데이터를 가지고 있는 유저를 필터링하는 연산자입니다.
  • is true / false : 데이터 값이 true이거나, false인 경우만 각각 필터링하는 연산자입니다.
  • true or not set / false or not set : 데이터 값이 true 혹은 비어있는 경우, false 혹은 비어있는 경우를 필터링하는 연산자입니다.

5. Time

날짜 및 시간 형식의 데이터입니다. 생일이나 기념일, 가입일 등의 데이터를 전송할 수 있습니다. Time 타입의 데이터는 아래와 같이 ISO 8601을 준수하는 형태로 전송되어야 합니다.

  • yyyy-MM0ddTHH:mm:ss+timezone
  • yyyy-MM-ddTHH:mm:ss:SSSZ
  • yyyy-MM-ddTHH:mm:ss
  • yyyy-MM-dd HH:mm:ss
  • yyyy-MM-dd

Time 타입의 데이터에 적용할 수 있는 연산자는 아래와 같습니다.

  • before : 설정한 일자 이전의 일자를 필터링하는 연산자이며, 이때 기준이 되는 날짜는 포함하지 않습니다.
  • after : 설정한 일자 이후의 일자를 필터링하는 연산자이며, 이때 기준이 되는 날짜는 포함하지 않습니다.
  • is blank / is not blank : 해당 데이터가 비어있거나, 혹은 해당 데이터를 가지고 있는 유저를 필터링하는 연산자입니다.
  • less than / more than - ago: 설정한 일자보다 더 적게(미만), 혹은 더 많이(초과) 지난 유저의 날짜 데이터를 필터링하는 연산자입니다. 
  • in less than / in more than - in the future : 설정한 일자보다 더 적게(미만), 혹은 더 많이(초과) 남은 유저의 날짜 데이터를 필터링하는 연산자입니다. 
유의사항

- more than, less than, in less than, in more than 연산자에 사용되는 단위인 day 와 week은 모두 시간 단위로 치환되어 계산됩니다. 즉 1 day는 24시간을 의미하며, 1 week은 7일*24시간 =168시간을 의미합니다.
- 예시 : Last Used App more than 1 day ago 필터는, 메시지 발송 시점에 앱을 마지막으로 사용한지 24시간을 초과한 유저를 필터링합니다.

위 연산자를 활용하면 다음과 같이 시간과 관련한 다양한 Segment를 생성할 수 있습니다.

  • Birthday is in less than 7 days in the future : 생일이 7일보다 적게 남은 유저를 타겟팅할 수 있습니다.
  • Last Made Purchase more than 30 days ago : 마지막 구매일로부터 30일이 초과한 유저를 타겟팅할 수 있습니다.메시지 발송 시점을 기준으로, 마지막 구매를 한지 720시간을 초과한 유저를 추출합니다.
  • sign_up(Custom Event) before 2023-01-01 : 2023년 1월 1일 전에 회원가입한 유저를 타겟팅할 수 있습니다. 2023년 1월 1일 0시 이후로 회원가입한 유저는 포함되지 않습니다.

시간과 관련된 연산자가 더 궁금하시다면, 아래 이미지를 참고하실 수 있습니다.

  • Before/After 필터
  • Less than / More than 필터
  • In less than / In more than 필터

6. Array of Objects

배열로 구성된 객체(Object) 형식의 데이터입니다. 객체(Object)란 한 요소가 여러 하위 정보를 갖고 있는 경우를 의미합니다.  

유저가 키우는 여러 마리의 반려동물 정보를 등록할 수 있는 반려동물 서비스를 운영한다고 가정해보겠습니다. 유저가 등록한 각 반려동물의 이름과 나이, 종을 각각의 Array로 수집한다면, 이것이 어떤 반려동물의 이름과 나이, 종인지 파악하기 어려우며 정확한 세그먼트 필터링이 어려울 수 있습니다. 이때 Array of Objects를 활용한다면 각 반려동물의 이름과 나이, 종 등 한 마리의 동물과 관련한 정보를 하나의 세트로 수집할 수 있어 세그먼트에 용이합니다. 

이와 같이 Custom Attribute가 여러 정보가 종합된 하나의 세트와 같은 경우라면 Array of Objects를 활용할 수 있습니다. Array of Object를 활용한 예시는 아래와 같습니다.

  • 예시 : 유저가 좋아요 누른 콘텐츠의 하위 정보(콘텐츠 ID, 제목, 장르, 작가 등), 유저가 키우는 반려동물에 대한 하위 정보(이름, 나이, 종 등), 유저가 등록한 차량(모델명, 차량번호, 등록일 등) 등

객체별 구성요소 데이터는 위에서 설명한 String, Number, Boolean, Time 타입 중에서 설정할 수 있으며, 각 데이터 타입에 맞는 연산자를 활용할 수 있습니다. 

Array of Objects 타입으로 수집되는 Custom Attribute는 ‘Nested Custom Attributes’ 필터를 활용할 수 있습니다. 아래와 같은 상황에서 Array of Objects 타입의 데이터를 활용한 Segmentation Filter를 사용할 수 있습니다.

  • liked_content(Custom Attribute) [].title(String) equals ‘Pride and Prejudice’: 좋아요 누른 콘텐츠들의 하위 구성요소 중 ‘제목’ 항목의 값이 ‘Pride and Prejudice’인 콘텐츠가 하나 이상 있는 유저를 타겟팅합니다.

위 예시를 보면, 콘텐츠 항목 중 ‘title’이 String 타입으로 수집되었지만 앞서 살펴본 String 타입 데이터에 대한 세그먼트 필터 사용 방식과 차이가 있음이 드러납니다. Nested Custom Attributes 필터를 사용할 때는 대괄호([])를 통해 Array of Objects 내 찾으려는 항목을 선언하고, 그 뒤 온점(.)과 찾고자 하는 항목의 값을 입력해야 합니다.

한 Array of Objects 안에서 여러 항목을 필터링하기 위해서는 아래 예시 이미지와 같이 ‘Multi-Criteria Segmentation’ 옵션을 활용할 수 있습니다.

유의사항

Array of Objects 타입의 데이터는 API를 통해서만 수집할 수 있습니다.

마무리하며

CRM 캠페인의 목표에 맞는 정확한 세그먼트 설정은 개인화 마케팅의 출발점입니다. 브레이즈는 데이터 타입에 맞는 다양한 연산자를 제공하여, 마케터의 의도에 맞는 다양한 세그먼트 생성이 가능하도록 지원하고 있습니다. 

브레이즈를 통해 원하는 세그먼트를 생성하여 유저 리텐션을 향상하고 싶으시다면 AB180으로 문의해주세요.

Subin Kim
Customer Success Manager
더 알아보기
후야호, 글로벌 알파 세대를 사로잡은 틱톡 바이럴 전략
후야호에서 운영하는 모바일 게임 말랑이 온라인은 ‘Fidget Town’이라는 이름으로 글로벌 시장에 진출해 전 세계 유저들에게 큰 사랑을 받고 있습니다. 말랑이 온라인의 글로벌 진출 전략과 틱톡을 활용한 성공적인 유저 획득 전략을 소개합니다.
성공 사례 보러가기
클래스101, 전 직원이 데이터 기반으로 소통하기 - 앰플리튜드 & 브레이즈와 함께라면 가능합니다.
‘모두가 사랑하는 일을 하며 살 수 있는’ 세상을 만들어가고 있는 클래스101의 마케팅 팀을 인터뷰했습니다. 브레이즈 및 앰플리튜드를 통해 CRM 마케팅을 자동화하고 전사적으로 데이터를 기반으로 소통하는 문화를 구축한 솔루션 활용기를 소개합니다.
성공 사례 보러가기
15,000명 이상의 업계 관계자들이 구독하고 있는 뉴스레터를 통해 업계 최신 트렌드를 가장 먼저 만나보세요.
응답이 제출되었습니다. 감사합니다.
잘못된 메일주소입니다.
주식회사 에이비일팔공
서울특별시 서초구 강남대로 61길 17, 3층, 4층 (서초동)
사업자등록번호: 550-88-00196
대표이사: 남성필
Copyright ⓒ 2023 AB180 Inc. All Rights Reserved.
개인정보 처리방침