마케터와 모바일 어트리뷰션 협업을 하기 위해 작업에 대한 이해를 돕고자 문서를 작성하였습니다.
딥링크란?
딥링크(Deep Link)란 모바일 환경에서 사용자를 앱의 특정 페이지로 이동시키는 링크를 의미합니다. 딥링크는 다음과 같이 생겼습니다.
ollacare://navigation/notices/3
딥링크는 URI 형식을 가집니다. 링크를 누르게 되면 특정 앱을 실행시키며 그 이후의 액션은 앱에서 설정해주어야 합니다. 딥링크는 이것이 전부입니다.
모바일 어트리뷰션
마케터는 페이스북, 유튜브, 인스타그램과 같은 매체 광고를 통하여 고객을 유치시키고 싶어 합니다. 광고의 형태에 따라 추구하는 방식이 오가닉, 논오가닉으로 나뉘는데 쉽게 생각하면 다음과 같습니다.
- 오가닉 : 사용자가 광고에 심어져있는 링크를 클릭하여 앱에 유입됨
- 논오가닉 : 사용자가 광고를 보고 직접 앱을 설치하여 유입됨
논오가닉은 고객의 선택으로 인해 발생하기 때문에 수치 측정이 쉽지 않습니다. 그것이 간접광고로 인해 발생한 것인지 자연 유입인지 판단할 근거가 부족하다는 것이지요. 그래서 대부분의 광고는 링크를 활용한 논오가닉으로 진행됩니다. 다시 정리하자면 다음과 같습니다.
- 광고를 눌러서 제품을 구매 → 오가닉
- 광고를 보고 제품을 구매 → 논오가닉
오가닉의 경우 트래킹 sdk를 통하여 정확한 지표 분석이 가능하지만 논오가닉은 그렇지 않기 때문에 통계를 통하여 분석합니다. 예를 들어 n일 동안 광고를 진행했는데 A라는 제품의 판매량이 30% 증가했다. 이런 형태로 분석이 들어가게 됩니다. 오가닉의 경우 광고가 1000번 노출되었고 100명이 눌렀으며 10명이 제품을 구매했다. 이런 형태로 수치적으로 지표 분석이 가능합니다.
이러한 지표를 분석하기 위해서 앱에서는 광고 매체 쪽으로 데이터를 전송해야 합니다. 이러한 행위를 포스트백이라고 부릅니다.
포스트백 : 광고로 유입된 고객의 행위 데이터를 광고 매체로 다시 전달하는 것
개발자와 협업이 이루어지는 경우는 대부분 오가닉 광고를 집행할 때 이루어지며 위에서 언급했듯이 지표를 분석하기 위한 어떤 수단들이 필요합니다. 마케터와 개발자는 어떠한 정보가 수집되어야하는지 파악하고 그것을 개발하는 협업이 일어나야 하며 그 과정은 아래에서 자세히 알아보도록하겠습니다.
마케터와 개발자의 협업 과정
마케터와 개발자의 협업 과정을 요약하면 아래와 같습니다.
- 마케터가 광고를 구상
- 개발자가 광고를 측정하는 데에 필요한 기능을 개발
- 마케터에게 정보를 전달하여 광고 집행
트래킹 툴을 선정한다
마케터는 어떤 광고를 집행할 것인지 구상하고 광고 매체에 광고를 등록합니다. 이 때 중간에 성과를 측정하기 위해 마케팅 플랫폼을 끼고 광고 대행사와 함께 광고를 집행합니다. 대표적인 마케팅 플랫폼 서비스로 Appsflyer, Adbrix가 있습니다.
마케터는 해당 서비스에서 제공하는 SDK를 앱에 추가해달라고 개발자에게 요청을 해야합니다. 개발자는 트래킹 SDK 연동 가이드를 확인하여 앱과 연동하고 구동을 확인합니다.
마케터는 개발자에게 트래킹 SDK 연동을 요청
마케터는 측정할 지표를 고려한다
마케터는 광고의 형태를 구상하고 지표를 측정하기 위한 방법을 생각합니다. 예를 들어 마케터는 A라는 제품을 구매하도록 유도하는 광고를 만드려 한다면 지표를 측정하기 위해 다음과 같은 형태를 고려해야 합니다.
- 고객에게 배너가 노출된다.
- 고객이 배너를 누른다. 배너에 심어져있는 딥링크를 통하여 앱의 A 제품 구매 페이지로 이동시킨다.
- A 제품을 구매하면 인앱 이벤트를 발생시켜 구매 지표를 측정한다.
마케터는 광고의 목표를 명세하고 그것을 측정하기 위한 방법을 고려한다. 그리고 개발자에게 전달한다.
지표를 측정하기 위해 개발자가 구현
마케터가 광고 측정 방식을 정해주면 개발자는 그에 맞춰 개발을 진행합니다. 예시에서 마케터는 딥링크를 누르면 상품 A 구매 페이지로 이동시키는 것과 A를 구매했는지에 대한 인앱이벤트를 요구하였으니 이것들을 측정하는 코드를 구현해줍니다.
- 광고에 적용된 딥링크를 눌러 앱에 유입됬음을 트래킹 sdk로 포스트백
- 딥링크에 맞는 페이지로 랜딩하는 코드 작성
- 특정 액션가 수행되면 트래킹 sdk가 제공하는 api로 인앱 이벤트를 발생시켜 포스트백
개발자는 딥링크로 유입된 고객의 앱을 특정 페이지로 랜딩시키는 로직을 추가하고, 인앱이벤트를 추가한다.
여기까지 완료하면 마케터와 개발자의 협업은 종료됩니다. 이 후에 광고가 집행되고 실제로 고객들에게 광고를 노출시켜 지표를 가지고 성과를 측정하게 됩니다.
지표 측정하기
위에서 설명드린 과정을 통하여 우리는 광고를 구상하고 집행하고 실제 고객에게 지표를 수집하였습니다. 광고 매체에서는 딥링크가 적용된 배너 광고를 노출시키고 고객은 그 배너를 눌러서 상품 A를 구매하였습니다. 광고 매체에서는 고객이 앱 활동을 통해 전송한 포스트백을 가지고 과금을 시작합니다.
- 고객이 딥링크를 통하여 앱을 시작했다는 지표를 광고매체에 전송 (포스트백)
- 고객이 상품 A를 구매하였다는 인앱 이벤트를 광고매체에 전송 (포스트백)
광고 매체에서는 두 개의 포스트백을 가지고 "이 고객은 광고를 통하여 상품을 구매하였구나” 라고 판단할 수 있으며 이를 통해 과금이 이루어집니다. 그런데 여기서 문제가 있습니다. 앱을 사용하는 수많은 고객들이 있고 수많은 포스트백이 광고 매체로 전송될 것이기 때문입니다. 수많은 이벤트들이 의미를 갖기 위해선 이벤트가 누구에게 발생되었는지 식별하기 위한 식별자가 필요하며 이 때 사용되는 것이 광고 식별자입니다.
광고 식별자
광고 식별자는 하나의 고객에 대한 고유값입니다. 광고 매체는 광고 식별자를 통하여 A라는 제품을 구매할 가능성이 높은 고객들을 식별하여 타겟 광고를 노출시킵니다.
iOS 유저는 idfa라는 광고 식별자를 가지며 Android 유저는 adid라는 광고식별자를 갖습니다. 이 식별자를 포스트백과 함께 같이 광고 매체로 전송시켜주어야 측정 지표들간의 연관성을 확인할 수 있는 것입니다.
iOS의 경우 이러한 광고 식별자를 광고 매체에 전달할 것인지 말 것인지 고객에게 선택권을 주었습니다. 아래 그림처럼 트래킹 sdk에서 광고 식별자를 획득하려 할 경우 팝업이 노출되어 고객에게 결정권을 줍니다. 안드로이드의 경우 이 글을 쓰는 시점에서 아직 선택권이 없습니다.
물론 iOS 고객이 광고 식별자 제공을 거부하였더라도 광고매체는 그 외의 다른 정보 (기기의 종류, 행동 패턴 등..)를 분석하여 이 고객이 어떤 고객인지 특정을 합니다. 물론 100% 정확하게 식별하지는 못하기에 그만큼 광고 단가가 하락하게 됩니다.
정리
지금까지 개발자가 알아야할 모바일 어트리뷰션의 대략적인 과정에 대해서 알아보았습니다.
- 딥링크 : 앱을 실행시키고 앱의 특정 페이지로 이동시키는 링크
- 광고 매체 : 광고가 노출되는 (혹은 제공하는) 서비스 (ex) facebook, naver…
- 인앱 이벤트 : 사용자의 특정 액션에 발생되는, 광고 매체에 보내기 위한 이벤트
- 포스트백 : 광고 매체의 성과를 측정하기 위해 앱에서 광고 매체로 데이터를 전송하는 행위
- 광고 식별자 : 고객에게 효율적인 광고를 하기 위해 고객을 식별하는 값