• 세그먼트
  • 타겟팅

세그먼트로 유저 나누기: SQL 요청 없이 마케터가 직접

캠페인마다 개발자에게 명단을 요청하는 대신, 보낼 유저를 직접 추려내는 방법입니다.

조건을 조합해 발송 대상을 정밀 타겟팅하는 세그먼트 빌더를 보여주는 썸네일

캠페인을 보낼 때마다 비슷한 요청이 오갑니다. 마케터가 "최근에 장바구니만 담고 결제는 안 한 유저에게 보내고 싶다"고 정리하면, 개발자가 그 조건을 SQL로 옮겨 명단을 뽑습니다. 마케터는 그 명단을 받아 발송 도구에 올립니다. 조건을 한 줄 바꾸거나 다른 대상을 보고 싶으면 이 왕복을 처음부터 다시 합니다.

세그먼트는 이 추출 과정을 마케터 화면으로 옮깁니다. 개발자에게 명단을 요청하지 않고, 필터를 클릭해 보낼 유저를 직접 고릅니다.

SQL 한 쿼리를 필터 몇 개로

예를 들어 최근 7일 안에 5만 원 이상 상품을 장바구니에 세 번 이상 담은 유저를 찾는다고 해보겠습니다. 개발자는 보통 이런 쿼리를 씁니다.

SELECT u.id
FROM users u
JOIN events e ON e.user_id = u.id
WHERE e.name = 'add_to_cart'
AND e.created_at >= NOW() - INTERVAL '7 days'
AND (e.properties ->> 'amount')::int >= 50000
GROUP BY u.id
HAVING COUNT(*) >= 3;

쿼리를 짜고 검수해 명단을 뽑아 발송 도구로 넘기는 과정이 캠페인마다 반복됩니다. 기준을 5만 원에서 3만 원으로 내리는 작은 수정도 다시 요청해야 합니다.

세그먼트 필터 빌더에서는 같은 조건을 클릭으로 만듭니다. 이벤트 필터에서 add_to_cart를 고르고, 기간을 최근 7일로, 발생 횟수를 3회 이상으로, 서브 조건에 금액 5만 원 이상을 더하면 끝입니다. 5만 원을 3만 원으로 바꾸는 건 값 하나를 고치는 일입니다.

세그먼트 필터 빌더에서 AND와 OR 조건을 조합하는 화면
세그먼트 필터 빌더

유저를 나누는 기준

나누는 기준은 크게 유저와 기기 두 갈래입니다. 유저 쪽은 유저ID, 생일과 나이, 국가와 언어, 전화번호, 문자 수신 거부 여부, 마지막 접속 시점, 특정 이벤트 수행 여부, 연동한 태그 값을 봅니다. 기기 쪽은 플랫폼, OS 버전, 앱 버전, SDK 버전, 웹 브라우저, 국가, 언어로 나눕니다. 버전은 숫자 비교까지 되어서, '앱 버전 2.5.0 미만'만 골라 구버전에 머문 유저에게 업데이트를 안내하는 식으로도 씁니다.

세그먼트 필터를 자유롭게 겹칩니다. 그리고(AND)로 묶으면 조건이 모두 맞는 유저만 남아 범위가 좁아집니다. 또는(OR)으로 묶으면 어느 하나만 맞아도 들어와 범위가 넓어집니다. 예를 들어 '최근 14일 접속 없음'과 '멤버십 VIP 등급'을 겹치면 한동안 안 들어왔지만 등급은 높은 유저만 남습니다.

시점이 핵심인 대상 거르기

세그먼트가 강해지는 건 태그 연산자 덕분입니다. '같다', '다르다' 수준을 넘어 숫자 비교와 기간 조건을 겁니다. 특히 기간 조건은 시점을 기준으로 대상을 잡을 때 쓸모가 큽니다.

기기와 유저 세그먼트 분류를 위한 태그 필터 연산자 선택 화면
태그 필터 연산자

기간 연산자에는 '지금으로부터 얼마나 남았는지'를 기준으로 잡는 조건이 있습니다. 적립금 소멸일이나 쿠폰 만료일을 태그로 넣어 두면, 만료가 72시간 안으로 들어온 유저를 '~시간 남음'으로 추려 리마인드를 보냅니다. '마지막 접속 시간'을 7일 미접속으로 거르면 한동안 안 들어온 휴면 유저가 잡힙니다. 둘을 겹치면 혜택이 곧 사라지는데 접속은 끊긴 유저, 즉 사라지기 전에 한 번 더 알려야 할 대상만 남습니다.

두 유저군을 한 세그먼트로

AND로 묶은 조건 묶음을 다시 OR로 이을 수 있습니다. 성격이 다른 두 유저군을 한 세그먼트에 담는다는 뜻입니다. 윈백을 예로 들면, VIP 등급은 30일만 접속이 끊겨도 다시 잡아야 하지만 일반 등급은 보통 60일은 지켜봅니다. 이때 '(VIP 등급 그리고 최근 30일 미접속) 또는 (일반 등급 그리고 최근 60일 미접속)'으로 묶으면 기준이 다른 두 휴면군을 한 캠페인으로 보냅니다.

이렇게 나눈 세그먼트는 일회성 발송뿐 아니라 고객 여정 자동화의 진입 조건으로도 씁니다. '최근 7일 미접속' 하나를 여정의 시작점으로 걸어 두면 그 상태가 된 유저가 매번 명단을 새로 뽑지 않아도 자동으로 흐름에 들어옵니다.

대상을 정확히 나눠 보내면 반응률과 전환 성과가 달라질 수 있습니다. McKinsey는 개인화가 보통 매출을 10~15% 끌어올린다고 봤습니다. 이런 개인화도 누구에게 보낼지부터 정해야 효과를 봅니다.

어떤 조합부터 시작할지는 보유한 데이터에 따라 다릅니다. 우선순위가 높은 세그먼트부터 같이 추려보고 싶다면 아래에서 신청할 수 있습니다.

어떤 유저군부터 추려낼지

보유한 유저와 이벤트 데이터를 놓고 우선순위가 높은 세그먼트부터 같이 잡아 드립니다.

도입문의

플레어레인

플레어레인

Contents Team, FlareLane (주식회사 플레어랩스)

CRM 마케팅과 그로스를 직접 만들어 온 사람들이 함께 글을 씁니다. 한국을 선도하는 플레어레인의 경험과 인사이트를 나눕니다.


플레어레인은 고객 행동과 여정에 맞춰 푸시, 문자, 카카오톡, 인앱(모달, 팝업), 이메일 등 다채널 메시지를 자동으로 발송하는 CRM 마케팅 솔루션입니다. 스타트업부터 대기업까지 누구나 초개인화 마케팅과 고객 여정 자동화를 쉽게 설계하고 실행할 수 있도록 돕습니다.

자주 묻는 질문

세그먼트는 한 번 만들면 명단이 고정되나요?

고정되지 않습니다. 세그먼트는 조건을 저장해 두는 방식이라 발송할 때마다 그 시점에 조건을 만족하는 유저를 다시 추립니다. 명단을 새로 뽑지 않아도 새로 조건에 든 유저는 들어오고 벗어난 유저는 빠집니다.

세그먼트에서 말하는 태그는 무엇인가요?

유저에게 붙여 두는 속성 값입니다. 등급, 관심 카테고리, 쿠폰 만료일 같은 값이 태그입니다. 이벤트가 유저의 행동을 기록한다면 태그는 유저의 현재 상태를 나타냅니다. 세그먼트는 이 태그를 숫자나 기간 연산자로 비교해 대상을 거릅니다.