개요
사람인에서는 사용자를 대상으로 한 체계적인 CRM 도입을 위해 2022년 8월부터 올해 2월까지 약 7개월간 CRM TFT 를 구성하여 다양한 CRM 솔루션을 도입하였고 도입 과정에서의 이슈들과 참고할 만한 내용들을 공유드리겠습니다.
도입 배경
도입전 문제점
- 앱/웹 전환율 및 성과분석 : GA와 Firebase를 사용하여 웹과 앱 데이터를 각각 분류하여 보는 것이 번거롭고, 모바일 웹에서 앱으로 전환 시 측정이 어려움
- 데이터 분석 및 메일 타겟 추출 : GA 데이터의 샘플링 이슈로 인해 정확한 수치 확인이 어려웠고, 특정 메일 타겟팅을 위해 내부적으로 대상을 추출해야 했음
💡 GA 샘플링이란? GA가 데이터 분석시 전체데이터가 아닌 일부분을 추출하여 분석하는 방법
- 메일 컨텐츠 구성 : 메일 컨텐츠의 구성이나 변경이 필요 할 시 개발단 작업이 필요하였고 간단한 변경 작업에도 개발공수가 필요하여 즉각적인 대응이 어려움
- 사용자 행동 트래킹 : 사용자 단위 행동 분석이 어려웠고, 세션이나 페이지뷰 단위로 분석을 진행하다보니 로그인 N명/이력서 N명 등 특정한 행동으로만 봐야 했으며, 사용자마다 행동 흐름을 파악하기 어려웠음
도입 목표
위와 같은 문제점들의 해결과 CRM 고도화를 통해 고객 경험을 개선하고 유입과 전환 기여를 목표로 CRM TFT가 신설되었습니다.
도입 솔루션
마케팅 자동화 및 개인화 메세지에 강점을 가진 브레이즈(Braze)
와 사용자 행동을 분석하고 다양한 차트를 제공하는 앰플리튜드(Amplitude)
를 도입하였고, 앱/웹 성과를 동시 분석이 가능하다는 장점을 가진 에어브릿지(Airbridge)
까지 세 가지 솔루션을 도입하였습니다.
에어브릿지(Airbridge)
Airbridge
는 웹과 앱에 대한 데이터 수집 및 분석을 간편하게 처리할 수 있는 데이터 플랫폼으로, 사용자의 유입을 정확하게 파악하고 광고 채널 및 캠페인별 성과를 측정할 수 있습니다. 다양한 데이터를 통합하여 분석이 가능하며, 다양한 데이터 시각화 기능을 제공합니다.
Standard Event 와 Custom Event 를 통한 트래킹
Airbridge
에서는 정의된 Event 들을 통해 주요 포인트에서 사용자의 행동과 패턴을 파악합니다. Event Category 는 미리 정의된 Standard Event
와 Custom Event
로 나뉩니다. 다양한 Standard Event
가 존재하고 필요시 Custom Event
를 사용합니다. Standard Event
사용시에는 카테고리 및 값에 대한 지표를 제공하는 등 여러가지 이점이 있습니다.
✔️사람인에서의 활용
광고매체를 활용한 펀더멘탈 향상
기존에 사용중이던 GA 전환 데이터로는 GA데이터의 샘플링 이슈로 정확한 데이터를 분석하기 어려웠으나,Airbridge
를 통한 정확한 데이터를 기반으로 광고 직/간접 성과를 확인하여 이를 통해 펀더멘탈에 기여하는 유효한 매체를 발굴하고 효율을 개선하고 있습니다.
웹투앱 전환
내부적인 개발 처리로 앱설치 사용자를 모바일웹에서 사람인앱으로 연결 시키던 기존 방식은 모바일웹 광고 성과가 유실되는 단점이 있었습니다. 이에Airbridge
의 딥링크(앱 설치 유무에 따른 맞춤링크) 를 활용하여 모바일웹 성과 유실을 방지하고 모바일웹 사용자를 앱사용자로 전환하고 있습니다.
Airbridge 도입간 이슈 및 참고사항
Client SDK 와 Airbridge API
Airbridge
에서 Event 의 전달은 SDK 와 API 모두 사용 가능합니다. 다만 기본적으로 브라우저 Cookie 를 활용하고 SDK 에 치중되어 있는만큼 API 를 사용시에는 SDK 에서 활성화된 Cookie 파라미터들을 함께 전달해야합니다. 누락되는 파라미터가 있을 시 데이터 불일치로 올바른 트래킹이 되지 않을 수 있습니다.
Naming Convention 유의사항
Category 는 영문과 숫자, Action 및 Label 은 영문과 국문, 숫자로 작성이 가능하며 Underscore(_) 사용을 권장합니다. 띄어쓰기 또는 마침표가 포함된 경우 전송 시 오류가 발생할 수 있습니다.
Custom Event
의 Category 값은 airbridge.
로 시작하면 안됩니다. airbridge.
는 Standard Event
에서 정의되어 사용됩니다.
Validation Spec
Event 전송시 각 필드 및 파라미터의 타입에 맞춰 전달해야 합니다. 올바르지 않은 타입으로 전송시 정상적으로 기록되지 않을 수 있습니다. 이벤트별 타입 링크
데이터 보관 관련
Airbridge
에 기록되는 raw data 는 최대 6개월의 보관 주기를 가집니다. 6개월 이상의 데이터가 필요한 경우 해당 raw data 를 별도 데이터 스토리지로 이관 연동하여야 합니다. 아마존 S3, 구글 클라우드 스토리지, 애저 블롭 스토리지 연동을 제공합니다.
브레이즈(Braze)
Braze
는 모바일 앱 및 웹 애플리케이션의 고객 관리와 마케팅 자동화를 위한 통합 플랫폼으로, 다양한 채널을 통해 맞춤형 메시지를 전송할 수 있습니다. 또한, A/B 테스트와 데이터 시각화 기능을 제공합니다.
이벤트(Event)와 어트리뷰트(Attribute)
기본적으로 Braze
는 앱 및 웹 전반에 설치됩니다. 각 사용자별로 고유한 External_id
를 가지게되며 사용자의 행동에 따라 어트리뷰트(Attribute)
및 이벤트(Event)
를 적재할 수 있습니다.
캠페인 구성
Braze
에 적재된 어트리뷰트(Attribute)
및 이벤트(Event)
를 바탕으로 다양한 캠페인을 구성 할 수 있습니다. 캠페인의 종류로는 대표적으로 이메일, 앱푸시, 인앱 메세지 등으로 다양하게 구성할 수 있으며 각 캠페인의 발송 시나리오에 따라 대상에게 발송됩니다.
✔️사람인에서의 활용
메일 캠페인 구성 / 관리
사람인에서는 내부적으로 메일 솔루션이 존재하고 이를 통해 메일을 발송하고 있습니다. 다만 어떤 메일이 어떻게 발송되고 있는지 관리가 어렵고 메일의 시나리오 및 컨텐츠 구성마다 개발공수가 필요로 하여 기존의 캠페인을Braze
로 이관하는 작업을 진행하였습니다.
이를통해Braze
내에서 메일을 관리하기가 수월했고 구성에 소요되는 시간을 줄일 수 있었습니다. 물론 모든 메일을 이관하지는 않았습니다. 이는 메일의 성격과 사용처에 따라 달라집니다.
개인화 메세지 발송 (푸시 및 인앱 메세지)
사람인에서 사용자들에게 적절한 알림을 제공하기 위해 앱 푸시를 전송하거나 웹 어플리케이션에서 특정한 이벤트요소 발생시 인앱 메세지를 노출하는 등 개인화된 메세지를 발송 하고 있습니다.
A/B 테스트
Braze
의 장점으로 다양한 캠페인 구성과 대상에 대해 빠르게 A/B 테스트를 구현할 수 있습니다. 특정 대상군을 타겟으로한 템플릿 및 컨텐츠 구성시 A/B 테스트를 구현하여 보다 효과적으로 캠페인 발송이 가능합니다.
Braze 도입간 이슈 및 참고사항
Connected Content API
Braze
에 모든 데이터를 적재하고 동기화 하는것은 비효율적입니다. 또한 별도의 시스템에 의해 생성되는 데이터도 있을 것이고 내부적으로만 존재하는 데이터도 있습니다. 이를 해결하기 위해 사람인에서는 Braze
의 Connected Content API 를 통해 메일 컨텐츠를 구성하였습니다.
쉽게말하자면, 사람인의 공고 추천 메일 등 메일 컨텐츠에 필요한 데이터를 API 로 구성하고 Braze
캠페인에서는 해당 API 를 호출함으로써 컨텐츠를 구성할 수 있게 됩니다.
또한 Connected Content API 를 구성하여 대량메일 발송시에는 반드시 타겟 모수와 발송량, 스케쥴을 예상하여 API 호출 한계점을 파악해두고 스케쥴링 되어야 합니다. connected content API
Custom Event / Custom Attribute
앞서 말씀드렸던 어트리뷰트(Attribute)
와 이벤트(Event)
는 Default 타입과 Custom 타입으로 나뉩니다. Default 타입은 말그대로 정해진 표준 이벤트 및 어트리뷰트이며 Default 타입만으로는 모든 이벤트 및 어트리뷰트를 전달하기 어렵기에 Custom Event / Custom Attribute 를 구성하여 사용합니다. 다만 Custom Event / Custom Attribute 는 사용 빈도에 따라 과금이 될 수 있으니 작업 시 고려해야 합니다. (물론 과금 모델에 따라 달라집니다.)
Client SDK / Braze API
Braze
로 특정 어트리뷰트(Attribute)
및 이벤트(Event)
전송시 Client단에서 SDK 를 통해 전달하거나 Server단에서 Braze API 를 활용하여 전송이 가능합니다.
5xx error handling
사이트에서 Braze
로 전송하는 요청은 항상 성공을 보장하기는 어렵습니다. 간혹 Braze
의 endpoint 서버 상태 및 트래픽에 따라 5xx error 를 반환 할 수 있으니 필요에 따라 실패한 호출을 재시도 하는 등의 프로세스가 필요할 것입니다. 재시도 처리가 어렵다면 별도의 동기화 방안을 마련해야 합니다.
Rate limit
Braze
API 를 통한 배치 및 대량의 데이터 호출 진행시 각 요청 유형별 Rate limit 을 확인 해야합니다. 저희가 주로 사용한 /users/track 의 경우 한번의 request 에 75개를 넘는 이벤트(Event)
및 어트리뷰트(Attribute)
를 포함하여 전달시 429 Rate Limited 를 반환하오니 체크해야합니다. Rate limits
엠플리튜드(Amplitude)
Amplitude
는 사용자 행동 분석과 데이터 시각화에 강점을 둔 분석 플랫폼으로, 사용자들의 행동을 파악하여 맞춤형 레포팅, 이탈 방지, A/B 테스트, 데이터 시각화 등 다양한 기능을 제공합니다.
이벤트(Event)와 사용자 속성(Identify 또는 User Property)
Amplitude
또한 앱 및 웹 전반에 설치됩니다. 각 사용자별로 고유한 User_id
를 가지게되며 사용자의 행동흐름에 따라 이벤트(Event)
와 사용자속성(Identify)
을 전달할 수 있습니다.
사용자 행동 트래킹
고유한 사용자의 User_id
기준으로 필요한 영역에 이벤트(Event)
를 삽입합니다. 이렇게 삽입된 이벤트(Event)
들은 사용자의 행동에 따라 순차적으로 Amplitude
에 적재됩니다. 이를 통해 특정 이벤트(Event)
에 진입한 사용자가 어떤 행동을 하는지 파악이 가능하고 시각적인 차트 구성을 통해 사용자의 니즈를 분석할 수 있습니다.
✔️사람인에서의 활용
사용자 행동 트래킹
사람인에서는 여러 영역에이벤트(Event)
를 삽입하고 사용자의 행동을 순차적인 시간의 흐름에 따라 적재합니다. 이를 바탕으로 사용자가 공고를 비롯한 여러 채용정보로부터 이력서 작성, 입사지원이 발생하기 까지의 과정을 분석함으로써 접근성 및 사용자의 경험에 맞춘 UI를 구성하고 있습니다.
지표 및 유입 분석과 리포팅
컨텐츠의 주요한 포인트들에 삽입된 이벤트를 통해 유입률 및 전환률 등 주요한 지표들을 다양한 시각적인 차트 구성과 리포팅으로 분석합니다. 신규로 생성되거나 개선된 컨텐츠 및 상품, 회원들을 대상으로 한 이벤트등 다양한 영역에 사용함으로써 서비스의 품질 향상에 기여하고 있습니다.
Amplitude 도입간 이슈 및 참고사항
Identify(User Property) / Event 의 사용
이벤트(Event)
와 사용자속성(Identify)
은 비슷해 보일 수 있으나 다소 다릅니다. 이벤트(Event)
는 주로 주요한 행동에 대한 트래킹을 위해 삽입하고 사용자속성(Identify)
은 기본적인 정보 또는 상태값 등 변화가 잦지 않은 형태를 지정할 때 사용합니다.
Client SDK를 통해 사용자속성(Identify)
전달시에는 Amplitude
에 바로 전달되지는 않고. 뒤이은 이벤트(Event)
발생시 함께 반영됩니다. 또한 한번의 요청에 이벤트(Event)
와 사용자속성(Identify)
을 포함하여 함께 전달도 가능합니다.
Client SDK / Amplitude API 와 session_id
Amplitude
에서 이벤트(Event)
와 사용자속성(Identify)
을 전달하는 방식에는 Client SDK 를 사용하거나 Amplitude API 를 통해 전달 할 수 있습니다. 전송하려는 시점의 상황에 따라 어느 방식을 사용해도 상관없습니다만, 연속되는 이벤트의 흐름을 추적하기 위해서는 session_id 라는 것을 일치시켜야 합니다. session_id 는 최초 SDK init 시 자동생성되는 timestamp 값이며 브라우저 세션이 살아있는 동안 동일한 값으로 유지됩니다.
Client SDK 를 통한 전달은 SDK 상의 session_id 가 사용되지만, Server to Server 통신을 하는 API 경우 별도로 session_id 를 지정하지 않으면 -1
이 전달됩니다. 따라서, Client SDK 만을 이용하거나 Client 상의 데이터를 Server 까지 전달을 하여야 하는데 이는 다소 비효율적입니다.
이를 해결하기 위해 사람인에서는 로그인 기준시점 timestamp 값을 사용자의 속성값에 할당하고 Amplitude
에서 해당 속성값을 session_id 를 대신하여 사용합니다.
하이브리드 앱에서의 SDK 사용
사람인의 브랜드앱은 하이브리드앱 방식으로 구동됩니다. 사용자의 행동 트래킹에 있어 디바이스 환경 정보는 구분되어야하므로 모바일 웹에서의 호출과 브랜드앱에서의 호출이 분리되어야 했습니다.
사람인에서는 모바일웹은 기존대로 웹 SDK 를 사용하여 전달하였고, 브랜드앱에서의 호출인 경우에는 javascript 형태의 interface 를 구성하여 네이티브앱의 SDK 를 호출 할 수 있도록 처리했습니다.
도입 후
CRM TFT 에서 도입된 솔루션들과 확립된 정책들을 통해 CRM 에 필요한 개발업무를 최소화하면서도 관리가 용이해졌습니다. 각 솔루션 도입의 효과를 정리해보자면 아래와 같습니다.
Airbridge
를 통해 딥링크 기능의 활용으로 앱으로의 전환과 웹/앱 전환 트래킹 성과가 통합되어 정확한 추적이 가능해졌습니다. 그리고 Fraud 방지기능(어뷰징 및 광고 사기 판별)을 활용과 광고성과를 바탕으로 잠재고객을 확보할 수 있는 기조를 마련 하였습니다.
Braze
로 간편하게 A/B 테스트를 할 수 있는 부분은 큰 장점이었습니다. 타겟군에게 쉽고 빠르게 A/B 테스트를 진행하여 보다 더 효과적인 컨텐츠와 메세지는 무엇인지 판단이 가능하였고 보다 명확하고 목적성이 있는 개인화 메세징을 할 수 있었습니다. 이를 통해 유입률과 전환률에 기여하게 되었습니다.
Amplitude
의 사용으로 사용자 단위의 행동 분석이 용이해졌고, 내부 데이터와 연결성도 개선되어 특정 그룹으로 나누어 분석이 가능해졌습니다. 그리고 사용자 행동 분석을 통해 특정 사용자들을 그룹화 하여 그룹별 행동 흐름과 원인/결과를 분석할 수 있게 되었습니다.
마치며
서드파티 CRM 솔루션들을 서비스단에 적용시 우선적으로 생각한 부분은 기존 사람인 서비스 영향도 입니다. 특정 데이터 전달을 위해 리소스를 더 소비하거나 실시간성 처리간의 처리속도 등 사용자의 경험을 해칠 수 있는 요소를 확인하고 보완했습니다.
또한, 사람인 주요 서비스를 포함한 전반에 적용되는 만큼 전체적인 서비스 도메인에 대한 이해도를 향상 시킬 수 있었고 서비스에서 CRM 마케팅의 필요성을 느낄 수 있었습니다.
사람인 개발팀 김종성, 박금주