들어가며
에어브릿지 온보딩 안내서의 각 페이지에 존재하는 자주 묻는 질문 모음집입니다. 온보딩 과정에서 자주 묻는 질문을 본 페이지에서 한번에 확인하세요.
0. 에어브릿지 온보딩 프로세스 안내
네, 에어브릿지 SDK는 다음 세 가지 중요한 역할을 합니다:
어트리뷰션에 필요한 기본 정보 수집: 마케팅 성과 분석을 위해 필요한 기본 정보를 수집합니다.
앱 내 상세페이지로 딥링킹: 유저를 앱 내 특정 페이지로 정확히 안내하도록 딥링크 주소를 앱에 전달합니다.
앱 내 전환 이벤트 수집: 앱에서 발생한 유저 행동을 수집합니다.
따라서, 에어브릿지의 모든 기능을 활용하기 위해서는 반드시 SDK를 설치해 주세요.
에어브릿지 SDK가 탑재된 앱 버전부터 앱 설치(Install), 딥링크 실행(Deeplink Open), 앱 실행(Open), 그 외 전환 이벤트 수집이 가능합니다. 운영하는 캠페인에 따라 원활하게 사용 가능한 시점이 달라집니다.
앱 설치 캠페인
에어브릿지 SDK가 탑재된 앱 버전을 스토어에 배포한 후 바로 운영할 수 있습니다.
다만, 앱 설치 보상형 광고를 운영할 경우, 아래 자주 묻는 질문을 참고하여 앱 배포 이후 충분한 시간을 두고 광고를 운영해 주세요.
리타겟팅 캠페인 (= 재유입 캠페인, 리인게이지먼트 캠페인)
리타겟팅 캠페인은 에어브릿지 SDK가 탑재된 앱 버전을 사용하는 유저 비율이 높아져야 안정적으로 운영할 수 있습니다. 유저들이 에어브릿지 SDK가 탑재된 앱 버전을 사용해야만 에어브릿지가 유저의 전환 이벤트를 트래킹할 수 있기 때문입니다.
반대로, 에어브릿지 SDK가 탑재되지 않은 이전 앱 버전을 사용하는 유저들의 성과는 에어브릿지에서 확인하기 어렵습니다. 빠른 리타겟팅 캠페인 운영이 필요할 경우, 유저들에게 앱 업데이트를 유도하거나 앱 강제 업데이트가 필요할 수 있습니다.
1. 에어브릿지 도입 준비하기
1.1 수집할 이벤트 설계하기
광고 성과 확인에 꼭 필요한 5~15개의 주요 이벤트만 수집하는 편입니다. 이벤트를 많이 수집할수록 관리 리소스가 드므로, 광고 성과 확인에 꼭 필요한 이벤트만 선별하여 수집하는 것이 좋습니다.
가능하다면 SDK를 통해 이벤트를 전송하는 것이 권장됩니다.
우선, SDK는 Install, Deeplink open, Open과 같은 주요 이벤트를 자동으로 수집하고, 원활한 딥링킹 및 어트리뷰션을 위해 이벤트 전송과 관계 없이 필수적으로 설치해야 합니다.
SDK를 통해 이벤트를 수집하면 에어브릿지가 국가 코드(Country Code)와 앱 버전(App Version) 등 일부 정보를 자동으로 수집하여 광고 사기 검증 규칙 설정 등에 유용하게 사용됩니다. (▶ 에어브릿지 SDK에서 자동으로 수집하는 데이터) 서버투서버로 이벤트를 전송한다면 이 값들을 직접 리퀘스트에 담아서 전송해주셔야 합니다.
특히 iOS의 SKAdNetwork 캠페인 성과 확인을 위한 전환값(Conversion value)은 SDK를 통해 수집된 이벤트만 사용 가능합니다. 따라서 SKAdNetwork 성과 집계에 필요한 이벤트는 반드시 SDK로 수집해 주셔야 합니다.
위 사항에 해당하지 않는 이벤트는 에어브릿지의 Server To Server Event API를 통해 전송할 수 있습니다. API를 사용할 경우 다음 사항을 고려해야 합니다:
Server To Server Event API는 device ID (웹의 경우 cookie ID) 또는 User ID를 식별자로 사용합니다. Airbridge SDK에서 Device ID를 획득하여 저장한 후, API에 전송하거나, Airbridge SDK에서 사용자 식별자를 설정하여 API로 전송한 이벤트와 SDK 이벤트가 User ID로 매칭되도록 해야 합니다.
eventTimestamp는 이벤트 전송 시점 기준으로 24시간 이내여야 하며, 24시간 이상 차이나는 경우 에어브릿지 서버에서 이벤트를 처리하지 않습니다. 전송 시점 기준 24시간 이내의 eventTimestamp를 사용해 주세요.
자세한 API 리퀘스트 및 제한사항은 아래 API 가이드를 참고해주세요.
'광고 노출 (adImpression)' 이벤트는 앱 내 광고 지면에서 유저가 광고를 봤는지를 트래킹하는 이벤트입니다. 예를 들어, 모바일 앱에서 광고로 수익을 창출하는 게임사는 유저가 앱 내 광고를 보면 아이템을 지급하는 광고 지면을 갖고 있을 수 있습니다. 이 경우, 유저가 앱 내 광고를 본 시점에 광고 노출 이벤트를 수집합니다. 만약, 구글 애드몹, 앱러빈 맥스, 유니티 레벨플레이와 같은 광고 미디에이션 플랫폼을 사용하고 있다면 아래 가이드에서 예시 코드를 확인해주세요.
외부 지면에서 발생하는 광고 노출과 클릭 데이터는 트래킹 링크를 통해 혹은 광고 채널 연동이 완료되면 수집됩니다. 이 데이터는 대시보드에서 'Impressions', 'Clicks', 'Impressions (Channel)', 'Clicks (Channel)'로 확인할 수 있으며, 별도로 앱 내에서 광고 노출 이벤트를 추가로 수집할 필요는 없습니다.
에어브릿지가 매체로 포스트백하는 기준은 '이벤트'입니다. 매체에 포스트백해야 하는 정보는 이벤트로 수집해 주세요.
예시:
게임에서 레벨 10을 달성했을 때 포스트백을 진행할 겁니다.
'achieve_level_10'과 같은 커스텀 이벤트를 수집하세요.
첫 구매 이벤트를 내부 기준에 맞춰 엄격하게 전송합니다.
구매 완료 이벤트와 별도로 'order_complete_first'와 같은 커스텀 이벤트를 수집해 주세요.
시맨틱 어트리뷰트는 선택 사항으로, 광고 성과 분석에 필요한 경우에만 수집하시면 됩니다. 즉, 광고 성과를 확인하는 데 필요하지 않다면 수집하지 않아도 됩니다.
권장드리는 시맨틱 어트리뷰트 목록은 다음과 같습니다:
제품 관련 이벤트(예 'Add to Cart', 'Product View' 등)
currency, product ID, product name, price, quantity
구매 완료와 구매 취소 이벤트
currency, transactionID, product ID, product name, price, quantity
광고 노출 이벤트
currency
2. 에어브릿지 개발 작업하기
2.4 이벤트 전송하기
아니요, 사용자 식별자 설정은 필수는 아닙니다. 그러나 다음과 같은 경우에는 설정을 고려해보실 수 있습니다. 또한, 보안을 위해 사용자 식별자는 해시화하여 전송하는 것이 좋습니다.
내부 이벤트 분석: 에어브릿지 이벤트를 내부 사용자 ID 기준으로 분석하려는 경우
서드파티 연동: 일부 서드파티 솔루션은 사용자 ID를 기준으로 이벤트를 수집하므로, 회원 유저와의 연결이 필요하다면 설정할 수 있습니다.
네, 간편 로그인(예: 네이버, 카카오)이나 간편 결제 서비스(예: 네이버페이, 카카오페이)를 사용하는 경우, 이벤트를 안정적으로 전송하기 위해서는 유저가 다른 페이지로 이동한 후 다시 돌아와 페이지가 로드된 시점에 이벤트를 수집하는 것이 좋습니다. 이는 창이 여러 번 이동하는 과정에서 이벤트 전송이 실패할 가능성이 있기 때문입니다.
예를 들어, 유저가 네이버 페이로 결제를 진행할 때, 결제 페이지가 로드되는 사이가 아니라 유저가 결제를 완료하고 다시 앱으로 돌아와 주문서 페이지가 완전히 로드된 후에 이벤트를 전송하는 것이 안전합니다.
웹뷰에서 발생하는 이벤트는 에어브릿지에서 앱(App) 이벤트로 인식되도록 설정해야 합니다. 이를 위해 에어브릿지는 하이브리드 앱 설정을 통해 웹뷰 이벤트를 처리할 수 있는 Bridge Function을 제공합니다.
웹뷰에서 발생하는 이벤트가 앱 이벤트로 올바르게 전송되도록 하려면, 다음과 같은 개발 언어별 설정 방법을 참고해 주세요.
▶ Android, iOS, Flutter, React Native, Unity: 웹페이지에 에어브릿지 Web SDK를 설치한 후, 해당 SDK로 이벤트를 전송하고 웹뷰 영역에 하이브리드 앱 설정을 적용해 주세요.
Android: 하이브리드 앱 설정
iOS: 하이브리드 앱 설정
Flutter: 하이브리드 앱 설정
React Native: 하이브리드 앱 설정
Unity: 하이브리드 앱 설정
▶ Cordova, Ionic, PhoneGap SDK: 웹뷰에서 발생하는 이벤트가 앱 이벤트인지 웹 이벤트인지 직접 구분한 후, 앱 이벤트로 판단되면 Cordova SDK를 통해 전송하고, 웹 이벤트로 판단되면 Web SDK를 통해 전송해 주세요.
참고로, 웹뷰에서 전송한 앱 이벤트는 QA할 때 ‘웹 이벤트 실시간 로그(Web Real-time log)’가 아닌, ‘앱 이벤트 실시간 로그(App Real-time log)’에 기록되어야 합니다.
마케터가 사전에 고려하여 설정한 이벤트 택소노미에 따라 작성된 프로퍼티들을 수집하는 것을 권장합니다.다만 이벤트 별로 반드시 누락되어서는 안 되는 프로퍼티를 아래에 안내드리니, 해당 프로퍼티들을 반드시 포함시켜 주시기 바랍니다. 아래 이벤트들을 수집하지 않을 경우 고려하지 않아도 됩니다.
이벤트명:
airbridge.ecommerce.order.completed
구매액:
eventData.value
리포트에서 구매액을 확인하기 위해 사용됩니다.
통화 정보 (KRW, USD 등):
eventData.goal.semanticAttributes.currency
광고 미디에이션 솔루션을 사용하면 인앱 광고로 벌어들인 수익이 미국 달러(USD)로 수집됩니다. 이를 대시보드의 앱 기준 통화로 변환하기 위해서는 이벤트에 통화 정보가 수집되어야 합니다.
Applovin Max, Google Admob, Unity Levelplay Mediation를 사용한다면 미디에이션 플랫폼 연동하기에서 예시 코드를 참고할 수 있습니다.
기준 통화는 영문 대문자 3자리입니다 (예: KRW, USD 등).
eventData.goal.semanticAttributes.currency
로 전송해 주세요. (eventData.goal.semanticAttributes.products.$0.currency
가 아닙니다.)
주문번호:
eventData.goal.semanticAttributes.transactionID
추후 동일한 주문번호로 들어온 이벤트를 중복 제거할 수 있습니다.
이벤트명:
airbridge.ecommerce.order.canceled
주문번호:
eventData.goal.semanticAttributes.transactionID
취소가 아닌 구매 완료 시점의 주문번호를 전송해 주세요.
이벤트명:
airbridge.adImpression
통화 정보 (KRW, USD 등):
eventData.goal.semanticAttributes.currency
광고 미디에이션 솔루션을 사용하면 인앱 광고로 벌어들인 수익이 미국 달러(USD)로 수집됩니다. 이를 대시보드의 앱 기준 통화로 변환하기 위해서는 이벤트에 통화 정보가 수집되어야 합니다.
Applovin Max, Google Admob, Unity Levelplay Mediation를 사용한다면 미디에이션 플랫폼 연동하기에서 예시 코드를 참고할 수 있습니다.
기준 통화는 영문 대문자 3자리입니다 (예: KRW, USD 등).
eventData.goal.semanticAttributes.currency
로 전송해 주세요. (eventData.goal.semanticAttributes.products.$0.currency
가 아닙니다.)
2.7 앱 배포하기
에어브릿지 유저 가이드의 앱마켓 심사 준비하기에서 확인하실 수 있습니다.
3. 에어브릿지 대시보드 사용 시작하기
3.2 트래킹 링크 생성하기
에어브릿지의 트래킹 링크 제너레이터를 사용하여 구글 시트를 통해 대량으로 트래킹 링크를 생성할 수 있습니다. 제너레이터 템플릿을 활용하여 트래킹 링크를 대량으로 생성하는 방법은 아래 유저 가이드를 참고해 주세요.
에어브릿지의 앱 역할이 대행사의 경우, 트래킹 링크 제너레이터를 사용할 때 ‘트래킹 링크 API 토큰’이 본인 계정 또는 본인이 소속된 대행사의 것으로 설정되어 있는지 확인해 주세요.
에어브릿지는 트래킹 링크 API 토큰을 통해 링크 생성자를 구분합니다. 대행사는 같은 대행사 권한이 부여된 사용자가 생성한 트래킹 링크의 데이터만 조회할 수 있으므로, 사내 마케터의 트래킹 링크 API 토큰으로 생성한 트래킹 링크는 리포트에 나타나지 않습니다. 적합한 트래킹 링크 API 토큰으로 트래킹 링크를 재생성하거나, 광고주에게 운영하는 캠페인에 대한 채널 데이터 권한을 요청하세요.
유저의 랜딩 페이지를 동적으로 변경하는 기본적인 원리는 에어브릿지의 다이나믹 딥링크 가이드를 참고해주세요. (▶ 딥링크 설정하기)
다이나믹 딥링크를 설정하는 방법은 아래 내용을 참고해주세요.
딥링크 주소 예시 유저를 상품의 상세 페이지로 랜딩시키는 딥링크 주소를 예를 들어 설명하겠습니다. 아래 두 개의 딥링크 주소는 각각 다른 상품 상세 페이지로 이동합니다:
ablog://detail?pid=1234
(상품 번호 1234의 상세 페이지)ablog://detail?pid=5678
(상품 번호 5678의 상세 페이지)
변수 사용하여 딥링크 주소 설정하기 상품 번호는 동적으로 변경되므로, 이 부분을 중괄호({})를 사용하여 변수로 설정합니다.
예를 들어pid
값을 변수로 지정합니다:ablog://detail?pid={product_id}
트래킹 링크 생성하기 위와 같이 설정된 딥링크 주소를 최종 목적지에 입력하고 트래킹 링크를 생성합니다. 생성된 트래킹 링크에는
product_id={product_id}
라는 파라미터가 추가됩니다. 예를 들어, 트래킹 링크 템플릿은 다음과 같을 수 있습니다:https://abr.ge/@airbridge_demo/channel_name?[...]&product_id={product_id}&(후략)
동적 값 삽입 광고 채널에는
{product_id}
에 동적으로 값을 채워줄 것을 요청합니다. 실제 유저가 트래킹 링크를 클릭했을 때,{product_id}
는 클릭한 상품의 ID로 대체됩니다. 예를 들어:1234 상품 광고 클릭 시:
https://abr.ge/@airbridge_demo/channel_name?[...]&product_id=1234&[...]
5678 상품 광고 클릭 시:
https://abr.ge/@airbridge_demo/channel_name?[...]&product_id=5678&[...]
딥링크 전달 에어브릿지는 트래킹 링크에 채워진
product_id
값을 스킴 딥링크에 전달하여, 유저가 클릭한 상품의 상세 페이지로 랜딩할 수 있도록 합니다:1234 상품 광고 클릭 시 앱에 전달되는 딥링크 주소:
ablog://detail?pid=1234
5678 상품 광고 클릭 시 앱에 전달되는 딥링크 주소:
ablog://detail?pid=5678
이렇게 설정된 트래킹 링크는 유저가 클릭한 상품에 맞는 상세 페이지로 유도할 수 있습니다.
3.3 리포트에서 광고 성과 확인하기
Unattributed 채널은 앱 설치나 사용자 유입이 특정 광고 캠페인이나 마케팅 활동에 의해 발생하지 않은 경우를 의미합니다. 이는 사용자가 광고를 통해 유입된 것이 아닌 자연스러운 방식으로 앱을 설치하거나 사용하는 경우를 포함합니다. 다른 MMP에서는 Organic이라 칭하기도 합니다.
에어브릿지 SDK는 앱을 처음 오픈할 때 이를 설치로 집계합니다. 따라서 기존에 앱을 사용하던 유저가 SDK가 탑재된 새로운 앱 버전으로 업데이트하면, 내부에서는 앱 업데이트로 집계하겠지만, 에어브릿지에서는 해당 유저가 앱을 처음 사용하는 것으로 감지하여 Install 이벤트로 집계합니다. 이로 인해, 에어브릿지 도입 초기에는 예상보다 많은 Install 이벤트가 기록될 수 있습니다. 시간이 지나면서 대부분의 기존 유저가 앱을 업데이트하면 이 수치는 안정화됩니다.
이로 인해 초기에는 기존 유저의 업데이트와 신규 유저의 설치를 구분하기 어려울 수 있습니다. 따라서 앱 설치 보상형 광고를 운영할 때, 이러한 노이즈를 줄이기 위해서는 대부분의 기존 유저가 앱을 업데이트한 후에 광고를 운영하는 것이 좋습니다.
MMP를 이관하거나 내부에서 활성 사용자의 디바이스 ID(GAID, IDFA, IDFV)를 수집해둔 경우, 디바이스 ID를 에어브릿지 서버에 업로드(Backfill)하여 이 현상을 완화할 수 있습니다. 자세한 사항은 ID 업로드로 첫 이벤트 여부 확인하기 가이드를 참고해 주세요.
아래 가이드에서 에어브릿지 리포트와 관련된 자주 묻는 질문을 확인하실 수 있습니다.
광고 채널과 에어브릿지 리포트에서 확인할 수 있는 광고 성과 사이에서 수치 차이(Discrepancy)가 발생할 수 있습니다. 수치 차이가 발생하는 대표적인 원인은 아래와 같습니다.
어트리뷰션 모델
데이터 집계 기준
유효성 검증 규칙
이외에도 지표 정의, 중복 이벤트 기준 등의 차이로 인해 수치 차이가 발생합니다.
자세한 내용은 아래 유저 가이드를 참고해주세요.