신규 유저 획득 비용(CAC)을 쏟아부어 앱 설치와 회원 가입까지 이끌었습니다. 웰컴 쿠폰도 발급했습니다. 그런데 대시보드를 열면 첫 주문 전환율이 3~4%대에서 꼼짝을 안 합니다.
이 상황에서 많은 그로스 마케터가 하는 실수가 있습니다. 쿠폰 금액을 올리거나, 발송 채널을 하나 더 추가하는 것입니다. 하지만 문제는 혜택의 크기가 아닙니다. 유저가 앱 안에서 '멈추는 지점'을 실시간으로 포착하지 못하고 있는 것이 진짜 원인입니다.
배달·생활 서비스·매칭 O2O 플랫폼에서 흔히 관찰되는 패턴은 이렇습니다. 유저는 쿠폰을 받고, 매장 리스트를 훑고, 장바구니에 메뉴를 담습니다. 그리고 결제 화면 직전에서 앱을 닫습니다. 이 '10분의 침묵'을 아무도 건드리지 않으면, 유저는 그냥 잊어버립니다.
일반적인 웰컴 푸시 시나리오는 이렇게 생겼습니다.
"가입을 환영합니다! 첫 주문 1만 원 할인 쿠폰을 사용해 보세요."
이 메시지의 문제는 두 가지입니다.
첫째, 타이밍이 맞지 않습니다. 유저가 이미 앱을 켜고 장바구니를 보고 있는 순간이 아닌, 가입 직후 또는 정해진 시간에 일괄 발송됩니다. 유저 입장에서는 '지금 뭘 하려던 참인데 갑자기 온 알림'이 됩니다.
둘째, 링크가 엉뚱한 곳으로 데려갑니다. 푸시를 클릭하면 앱 홈 화면으로 이동합니다. 유저는 다시 매장을 찾고, 메뉴를 담는 과정을 반복해야 합니다. 이 마찰이 이탈을 만듭니다.
이 두 가지를 동시에 해결하는 것이 AppsFlyer 딥링크 + Braze 실시간 IAM 트리거 조합입니다.
두 플랫폼이 같은 유저를 동일한 객체로 인식해야 데이터가 정합하게 흐릅니다. 실무에서 가장 많이 놓치는 포인트가 바로 SDK 초기화 순서입니다.
반드시 Braze SDK를 먼저 실행해 디바이스 ID를 확보한 뒤, 그 값을 AppsFlyer SDK 초기화 시점에 파트너 데이터 필드로 전달해야 합니다.
Android(Kotlin/Java) 기준 예시:
HashMap<String, Object> customData = new HashMap<>();
String deviceId = Braze.getInstance(context).getDeviceId();
customData.put("brazeCustomerId", deviceId);
AppsFlyerLib.getInstance().setAdditionalData(customData);
iOS(Swift) 기준 예시:
let brazeDeviceId = Appboy.sharedInstance()?.getDeviceId() ?? ""
AppsFlyerLib.shared().setPartnerDataWithPartnerId("braze_int", partnerInfo: ["external_user_id": brazeDeviceId])
순서가 뒤바뀌면 첫 세션의 어트리뷰션 데이터가 Braze에 전달되지 않습니다. 개발 QA 단계에서 반드시 검수해야 합니다.
퍼널 누수 지점을 찾으려면 이벤트를 수십 개 심는 것보다, 전환 여정의 뼈대가 되는 3개 이벤트를 정확하게 수집하는 것이 우선입니다.
| 이벤트명 | 의미 | 역할 |
|---|---|---|
welcome_coupon_issued |
웰컴 쿠폰 정상 수령 | 트리거 시작점 |
cart_added |
장바구니 담기 완료 | 관심 확인 |
first_order_completed |
첫 주문 완료 | 여정 종료(제외 조건) |
first_order_completed가 발생한 유저는 즉시 모든 리마케팅 여정에서 제외해야 합니다. 이미 전환된 유저에게 쿠폰 독촉 메시지를 보내는 것은 브랜드 신뢰를 깎습니다.
OneLink는 앱 설치 여부와 관계없이 유저를 가장 적합한 화면으로 보내주는 AppsFlyer의 딥링크 솔루션입니다.
딥링크 URL에는 유저별 맥락 정보를 파라미터로 동적 바인딩합니다.
https://onelink.appsflyer.com/xxx?store_id={{custom_attribute.last_viewed_store}}&coupon_code=WELCOME100
Braze의 Liquid 문법을 활용하면 유저마다 다른 store_id와 쿠폰 코드를 자동으로 삽입할 수 있습니다. 단, 딥링크 파라미터에 이메일 주소나 이름 같은 PII(개인식별정보)를 평문으로 넣는 것은 절대 금지입니다. 암호화된 내부 User ID나 토큰으로 대체해야 보안 가이드라인에 부합합니다.
이것이 전체 설계의 핵심입니다. Braze Canvas에서 아래 구조로 여정을 만듭니다.
[진입 조건] welcome_coupon_issued 이벤트 발생 시
[대기] 15~30분 (O2O 유저가 서비스를 탐색하며 가장 많이 고민하는 시간대)
[예외 필터] 대기 시간 내 first_order_completed 발생 유저 → 즉시 여정 제외
[분기 발송]
실무 팁: 인앱 메시지 트리거를 켜두면 유저가 화면을 이동할 때마다 팝업이 반복될 수 있습니다. Braze 설정에서 세션당 최대 1회, 일 1회 노출 제한(Frequency Capping)을 반드시 설정하세요. 이 설정 하나가 UX 민원을 막습니다.
Braze에서 이메일 캠페인을 보낼 때 링크를 삽입하면, Braze의 클릭 추적 기능이 해당 링크를 자체 도메인으로 래핑합니다. 이 과정에서 iOS 유니버설 링크가 깨져 앱이 아닌 브라우저로 열리는 현상이 발생합니다.
해결책은 AppsFlyer의 ESP 연동 솔루션을 사용하는 것입니다. AppsFlyer가 SSL 기반 프록시 서버를 제공해 Braze의 클릭 추적을 우회하면서도 유니버설 링크가 정상 작동하도록 지원합니다. 이메일 채널에서는 myapp:// 형태의 커스텀 스킴을 절대 사용하지 마세요. 앱이 설치되어 있어도 이메일 클라이언트에서는 작동하지 않습니다.
수치로 검증된 사례들이 있습니다.
공통점은 단순히 메시지를 더 많이 보낸 것이 아니라, 유저가 멈추는 순간을 데이터로 포착해 그 맥락에 맞는 메시지와 링크를 조합했다는 점입니다.
① SDK 초기화 순서 검수 Braze → AppsFlyer 순서로 초기화되는지 개발팀과 함께 확인합니다. 순서가 뒤바뀌면 첫 세션 어트리뷰션이 누락됩니다.
② 이메일 채널 링크 방식 점검
현재 이메일 캠페인에 커스텀 스킴(myapp://)이 들어가 있다면 즉시 HTTPS 기반 유니버설 링크로 교체해야 합니다. AppsFlyer ESP 연동 설정 여부도 확인하세요.
③ Frequency Capping 설정 확인 Braze IAM 트리거를 활성화하기 전, 세션당 노출 횟수와 일 최대 노출 횟수가 설정되어 있는지 반드시 확인합니다. 이 설정이 없으면 유저가 화면을 이동할 때마다 팝업이 뜨는 최악의 UX가 만들어집니다.
Q. AppsFlyer와 Braze를 둘 다 도입해야만 이 설계가 가능한가요? A. 이 글에서 설명하는 '미완성 퍼널 자동 트리거'는 두 플랫폼의 양방향 S2S Postback 연동을 기반으로 합니다. 한쪽만 있을 경우 딥링크 어트리뷰션 데이터와 실시간 행동 트리거를 동시에 구현하기 어렵습니다. 단, 예산이 제한된 초기 스타트업이라면 Braze 대신 Firebase Remote Config + Cloud Functions 조합으로 일부 기능을 대체하는 방법도 있습니다.
Q. 웰컴 쿠폰 발급 후 대기 시간을 15분으로 해야 하나요, 30분으로 해야 하나요? A. 서비스 카테고리에 따라 다릅니다. 배달 앱처럼 즉각적인 욕구가 강한 서비스는 15분, 청소·이사 등 고관여 서비스는 30분 이상이 적합합니다. A/B 테스트로 검증하되, 초기에는 20분을 기준으로 시작하는 것을 권장합니다.
Q. 딥링크 파라미터에 어떤 정보를 넣어도 되나요? A. 암호화된 내부 User ID, 매장 ID, 쿠폰 코드처럼 그 자체로 개인을 특정할 수 없는 값은 사용 가능합니다. 반면 이메일 주소, 이름, 전화번호 등 PII는 URL 파라미터에 평문으로 노출되면 보안 위반이 됩니다. 반드시 토큰 방식으로 처리해야 합니다.
Q. iOS ATT 동의를 받지 못한 유저에게도 이 설계가 작동하나요? A. 네. AppsFlyer는 ATT 비동의 유저에 대해 SKAdNetwork 및 Probabilistic Matching 방식으로 어트리뷰션을 보완합니다. Braze의 인앱 메시지 트리거는 ADID가 아닌 퍼스트파티 이벤트 데이터 기반으로 작동하므로, ATT 동의 여부와 관계없이 앱 내 행동 트리거는 정상 작동합니다.
Q. 이 설계를 구현하는 데 개발 리소스가 얼마나 필요한가요? A. SDK 연동 및 이벤트 설계는 iOS/Android 개발자 각 1명이 약 1~2주 작업이 필요합니다. Braze Canvas 여정 설계와 OneLink 생성은 마케터가 직접 할 수 있지만, 딥링크 파라미터 동적 바인딩과 Liquid 문법 설정은 처음이라면 기술 마케터 또는 에이전시의 도움을 받는 것이 시행착오를 줄입니다.
첫 주문율 5% 미만의 문제는 쿠폰 예산의 문제가 아닙니다. 유저가 멈추는 10분을 데이터로 보고, 그 순간에 맞는 메시지와 링크를 자동으로 전달하는 설계의 문제입니다.
AppsFlyer 딥링크와 Braze IAM 트리거의 조합은 이 문제를 기술적으로 해결하는 현재 가장 검증된 방법입니다. 다만 SDK 초기화 순서, 이메일 링크 방식, Frequency Capping이라는 세 가지 실무 포인트를 놓치면 설계가 제대로 작동하지 않습니다.
에이달(ADALL)은 O2O 플랫폼의 CRM 자동화 설계와 MMP 연동 구축을 함께 진행해 드립니다. 현재 첫 주문 퍼널에서 어느 지점에서 유저가 이탈하는지 진단이 필요하다면, 아래로 문의 주세요.
📞 02-2664-8631 | 📧 master@adall.co.kr
프로젝트 문의 및 무료 컨설팅은 언제든 환영합니다.
무료 컨설팅 받아보고 싶다면?
무료 컨설팅 신청하기