Why
Wavve는 내부 데이터베이스와 브레이즈 간 데이터 정합성을 높이기 위해 REST API를 사용하여 브레이즈 데이터를 업데이트했습니다. 그러나 API 서버 관리에 많은 개발 리소스가 필요해 새롭고 효율적인 데이터 업데이트 방법이 필요했습니다.
Wavve는 내부 데이터베이스와 브레이즈 간 데이터 정합성을 높이기 위해 REST API를 사용하여 브레이즈 데이터를 업데이트했습니다. 그러나 API 서버 관리에 많은 개발 리소스가 필요해 새롭고 효율적인 데이터 업데이트 방법이 필요했습니다.
Wavve는 이미 빅쿼리를 적극적으로 활용하고 있었습니다. 이에 Cloud Data Ingestion 기능으로 브레이즈와 빅쿼리를 연동하여 빅쿼리의 데이터를 브레이즈로 전송하기로 했습니다.
빅쿼리 연동으로 기존의 API 관리 리소스를 절감함과 동시에, 브레이즈와 내부 데이터베이스 간의 데이터 정합성을 효과적으로 높일 수 있었습니다.
이런 목표가 있는 분께 이 페이퍼를 추천해요
Braze(브레이즈)에 내부 데이터베이스의 데이터를 업데이트 하고자하는 고객사
REST API 이외의 방법으로 브레이즈 데이터를 업데이트 하려는 고객사
Snowflake, Amazon Redshift, Google BigQuery, Databricks와 같은 데이터 웨어하우스를 사용하거나 Amazon S3와 같은 파일 스토리지를 활용하는 고객사
Wavve는 한국에서 가장 다양한 콘텐츠를 제공하는 OTT 플랫폼입니다.
오리지널 콘텐츠는 물론, 매일 업데이트 되는 방송, 콘텐츠, HBO, NBCU 등 글로벌 스튜디오의 독점 해외 시리즈, 최신 영화와 애니메이션까지 수많은 콘텐츠를 제공합니다. 또한 미주 지역 OTT 'KOCOWA' 인수를 통해 글로벌 시장을 향해 발돋움하고 있습니다.
⏩️ Wavve 바로가기
Wavve는 브레이즈의 사용자 속성 정보를 내부 데이터베이스와 동기화하여 활용하고자 했습니다. 이를 위해 별도로 API 서버를 구축하여 내부 데이터베이스의 사용자 속성 정보를 브레이즈로 전송하고 있었습니다.
그러나 사용자 정보를 업데이트하기 위해 별도로 마련된 API 서버를 점검하고 관리하는 것은, 지속적으로 내부 인력 공수가 드는 일이었습니다. Wavve에서는 이 문제를 브레이즈의 Cloud Data Ingestion 기능을 통해 해결했습니다.
Wavve는 데이터 웨어하우스로써 활발하게 사용하고 있던 구글 빅쿼리를, Cloud Data Ingestion을 통해 브레이즈와 연동하였습니다. 이를 통해 내부 데이터베이스에 존재하는 사용자 속성 정보를 손쉽게 브레이즈로 전송해 CRM에 활용할 수 있었습니다.
Cloud Data Ingestion은 고객사의 데이터 웨어하우스 또는 파일 스토리지와 브레이즈로 연동하여 데이터를 동기화할 수 있는 기능입니다. 동기화된 데이터는 API를 통해 서버 투 서버로 수집된 데이터처럼, 브레이즈에서 메시지 개인화, 이벤트 트리거, 세그먼트에 활용할 수 있습니다.
아래 데이터 웨어하우스와 파일 스토리지를 지원합니다.
Cloud Data Ingestion에 대한 보다 자세한 내용은 브레이즈 유저 가이드를 확인해 주세요.
주의 사항
Cloud Data Ingestion으로 동기화한 이벤트는 API와 마찬가지로 브레이즈 인앱메시지의 이벤트 트리거로 활용할 수 없습니다. 푸시 알림, 이메일, 웹훅 등 다른 채널에서는 이벤트 트리거로 활용할 수 있습니다. 활용에 반드시 참고해주세요.
연동하기 전, 빅쿼리에서 브레이즈로 데이터를 전송할 때 지원되는 데이터 형식과 데이터 전송 시 두 솔루션에서 사용되는 비용을 확인합니다.
사용자 속성
커스텀 이벤트
구매 이벤트
카탈로그
사용자 삭제 요청
데이터 업데이트 시 참고 사항
비용을 최소화하기 위해 업데이트가 필요한 데이터만 전송해주세요.
모든 데이터의 타임스탬프(Timestamp)를 UTC 타임존 기준으로 업데이트해주세요.
연동할 수 있는 빅쿼리 테이블 개수에는 제한이 없습니다.
연동할 수 있는 행(row) 개수에는 제한이 없습니다.
데이터 업데이트 시 참고할 다른 사항은 브레이즈 유저 가이드를 참고해주세요.
1. 브레이즈 데이터 포인트
Cloud Data Ingestion으로 데이터를 전송할 때, 데이터 유형에 따라 일부 사용자 속성 및 이벤트의 경우 브레이즈 데이터 포인트가 차감될 수 있습니다. 데이터 포인트 차감 기준은 브레이즈 유저 가이드에서 확인할 수 있습니다.
2. 빅쿼리 비용
빅쿼리에서도 일부 비용이 발생할 수 있습니다. 빅쿼리에서 발생하는 비용은 내부 개발팀과 확인해 주세요.
빅쿼리에서 브레이즈로 전송할 테이블을 생성합니다. 테이블은 전송하려는 브레이즈 데이터 타입별로 생성해야 합니다. 예를 들어 사용자 속성과 커스텀 이벤트를 전송하려면 사용자 속성을 위한 테이블과 커스텀 이벤트를 위한 테이블을 각각 생성해야 합니다.
동일한 타입의 서로 다른 데이터를 별도로 관리하기 위해 테이블을 여러 개 생성할 수도 있습니다. 예를 들어 사용자 속성 A는 1시간마다, 사용자 속성 B는 30분마다 전송되도록 별도로 테이블을 구성할 수 있습니다.
사용자 속성을 기준으로 연동할 때 테이블은 아래 칼럼을 필수로 포함해야 합니다. 자세한 내용은 브레이즈 유저 가이드를 참고해 주세요.
1. UPDATED_AT
개별 데이터가 동기화된 시간입니다. 브레이즈에서는 UPDATED_AT 칼럼을 활용해 가장 마지막 동기화 시점 이후에 업데이트된 데이터만 가져옵니다. 동기화할 데이터가 없으면 타임스탬프의 기본값으로 적용됩니다. (1970-01-01 09:00)
2. USER IDENTIFIER
브레이즈에서는 아래 세 가지 식별자를 기준으로 사용자를 식별하며, 세 가지 중 반드시 하나 이상의 식별자를 포함해 전송해야 합니다. EXTERNAL_ID 사용을 권장합니다.
EXTERNAL_ID
BRAZE_ID
ALIAS_NAME 및 ALIAS_LABEL
3. PAYLOAD
PAYLOAD
칼럼에는 추가 또는 업데이트할 사용자 속성 데이터를 입력합니다. 데이터는 JSON 형식으로 제공되어야 합니다. 기존 데이터를 삭제하려면 해당 데이터의 값을 null
로 설정합니다.
USER IDENTIFIER
칼럼과 PAYLOAD
칼럼을 꼭 분리해 주세요. 가령 사용자 식별자로 EXTERNAL_ID를 사용하는 경우, 테이블은 아래의 예시와 같이 구성되어야 합니다.
구글 클라우드 플랫폼에서 브레이즈가 빅쿼리 테이블에 접근할 수 있도록 권한을 설정합니다. 각 데이터 웨어하우스 별 권한 설정에 대한 자세한 사항은 브레이즈 유저 가이드를 참고해 주세요.
브레이즈 대시보드에서 빅쿼리 연동을 진행합니다. 연동에 필요한 정보는 빅쿼리에서 확인합니다.
연동할 빅쿼리 테이블 정보를 입력합니다. 최초 연동 시 빅쿼리 인증서 업로드가 필요합니다.
연동 세부 사항을 설정합니다.
Integration Name: 브레이즈 대시보드에 표시될 연동 이름입니다.
Data Type: 전송하고자 하는 데이터의 타입을 지정합니다.
Recurring Sync: 연동이 설정한 주기마다 동기화가 자동으로 실행됩니다.
연동 주기는 최대 15분까지 설정할 수 있습니다. 15분보다 짧은 주기로 설정이 필요한 경우에는 API 요청을 통해 직접 동기화할 수 있습니다. (브레이즈 API 문서)
데이터 동기화 후 성공 및 에러 메시지 알림을 설정합니다.
Row Error: 동기화된 데이터 중 일정 비율 이상의 행에서 에러가 발생하면 설정한 이메일로 알림이 전송됩니다.
Sync success: 동기화가 성공했을 때 알림이 전송됩니다.
먼저 테스트 연결을 통해 데이터가 정상적으로 전송됐는지 확인합니다.
테스트 연결에서 정상적으로 연동되는 것을 확인한 후 실제 연동을 진행합니다. 연동이 성공하면 Status가 Active
로 표시됩니다.
동기화 현황은 Sync History에서 확인할 수 있습니다. 오류 발생 시 Details 칼럼에서 오류 메시지를 확인할 수 있습니다.
다음은 Wavve 데이터 개발팀의 강태윤 님, 조용현 님과의 인터뷰 내용입니다.
기존에 사용자 속성 정보를 업데이트하기 위해 API를 활용할 때는 백엔드 개발팀에서 지속해서 API 서버를 관리 및 모니터링해야 했습니다. 또한 신규 데이터를 추가할 때 필요한 리소스의 범위가 너무 넓어, 리소스 확보에 어려움이 있었습니다.
그러나 Cloud Data Ingestion을 도입한 이후로 데이터 팀에서 편리하게 관리할 수 있게 되었고, 데이터 관리 및 추가 수집에 필요한 리소스가 대폭 감소하였습니다.
또한 Cloud Data Ingestion에서 발생한 오류는 브레이즈 대시보드에서 손쉽게 확인할 수 있고 상세하게 제공되기 때문에 연동 초기에 데이터 포맷 관련 오류가 발생했을 때 빠르게 수정할 수 있었습니다.
이미 내부적으로 빅쿼리를 잘 활용하고 있었기 때문에 별도의 학습 없이 손쉽게 연동을 진행할 수 있었습니다. 또한 연동 속도가 매우 빠르고 한 번에 처리할 수 있는 양이 많아 마이그레이션 과정에서 매우 편리했습니다. 정말 좋은 기능이라고 생각합니다.
Cloud Data Ingestion 기능은 연동 과정이 단순하여 이미 데이터 웨어하우스를 사용하고 있다면 연동이 어렵지 않을 것으로 생각합니다. 특히 최근에 Amazon S3 연동이 추가된 만큼 사용이 활용성이 더욱 늘어날 것으로 기대됩니다.
또한 도입 과정에서 웨이브 담당 CSM 안상현 매니저님의 많은 도움으로 시행착오를 최소화할 수 있었습니다.
브레이즈 데이터를 내부 데이터와 동기화했기 때문에 브레이즈 데이터와 내부 데이터가 완전하게 일치한다고 믿고 사용할 수 있게 되었습니다. 이에 따라 브레이즈로 캠페인을 운영하는 마케터분들이 정확한 데이터를 활용해 캠페인을 운영할 수 있게 되었습니다.
현재는 사용자 속성 데이터만 Cloud Data Ingestion을 활용하고 있으며, 이벤트 데이터는 여전히 API를 사용하고 있습니다. 추후 가능한 범위 내에서 이벤트 데이터도 Cloud Data Ingestion을 통해 관리할 계획입니다.
CSM's Insight
“데이터 웨어하우스를 사용하고 있다면 Cloud Data Ingestion 기능은 브레이즈 데이터를 관리하는 가장 효과적인 방법이 될 수 있습니다. Cloud Data Ingestion 기능을 통해 더욱 정확한 정보를 기반으로 효과적으로 캠페인을 운영해보세요.”
Cloud Data Ingestion 기능과 아래 기능을 함께 사용해 브레이즈를 더욱 스마트하게 활용해보세요.
커런츠(Currents) : 브레이즈 로우 데이터(Raw Data)를 외부로 내보내 활용해보세요.
AUTHORS
안상현 Sanghyun Ahn ∙ AB180 ∙ Customer Success Manager