Airbridge Integration Guide
본 가이드는 Airbridge와 미디어 파트너사간의 트래킹링크 및 포스트백 URL 연동에 대해서 안내합니다.
연동 시작에 앞서 아래 연동 요청 폼을 작성하여 보내주시면 빠르게 연동 담당자를 배정 후 자세한 프로세스를 안내해드리고 있습니다.
아래 가이드를 참고하여 트래킹 링크 템플릿 및 포스트백 URL을 구성하시기 바랍니다.
1. Tracking Link Template 설정
1) 기본 파라미터 추가
Airbridge의 Tracking Link를 통해 전달받을 수 있는 데이터의 종류는 다음과 같으며 필수 값이 존재합니다.
이름 | 파라미터 이름 | 필수 여부 | 설명 | 예시 |
---|---|---|---|---|
Click ID | click_id | 필수 | 터치포인트에 대한 매체사 측 고유 식별값 | click_id={Touchpoint_Id} |
Publisher ID | sub_id | 필수 | 하위 네트워크 혹은 제휴 매체사 등을 나타내는 아이디 | sub_id={PUBLISHER_ID} |
Sub Publisher ID | sub_id_1 sud_id_2 sub_id_3 | 권장 | 하위 네트워크의 또다른 하위 네트워크 아이디 (sub-sub publisher) * 하위매체 순서(계층)에 맞게 사용해야 합니다. ( sub_id_1 > sub_id_2 > sub_id_3 ) | sub_id_1={SUB_PUBLISHER_ID_1} |
ADID (Android GAID 또는 iOS IDFA) | ad_id | 가능한 경우 필수 | OS에 따른 광고 식별자 (Android의 ADID 혹은 iOS의 IDFA) * gaid_raw, ifa_raw 두개의 구별된 파라미터 대신 하나의 파라미터만으로 광고 식별자를 전달할 시 사용 | ad_id={ADID} |
GAID (Android only) | gaid_raw | 가능한 경우 필수 | Android에서 사용하는 광고 식별자 (ADID) (Google 공식 문서) | gaid_raw={ANDROID_ADID} |
IDFA (iOS only) | ifa_raw | 가능한 경우 필수 | iOS 에서 사용하는 광고 식별자 (IDFA) (Apple 공식 문서) | ifa_raw={IOS_IDFA} |
IP | ip | S2S 연동 및 Impression 연동 시 필수 | Tracking Link를 호출한 디바이스의 IP 주소 | ip={IP_ADDRESS} |
User Agent | user_agent | S2S 연동 및 Impression 연동 시 필수 | Tracking Link를 호출한 디바이스의 User Agent | user_agent={USER_AGENT} |
Campaign | campaign | 선택 | 캠페인 명 | campaign={CAMPAIGN} |
Ad Group | ad_group | 선택 | 광고 그룹 | ad_group={AD_GROUP} |
Ad Creative | ad_creative | 선택 | 광고 소재 | ad_creative={AD_CREATIVE} |
Term | term | 선택 | 키워드 | term={KEYWORD} |
Campaign ID | campaign_id | 선택 | 캠페인 ID | campaign_id={CAMPAIGN_ID} |
Ad Group ID | ad_group_id | 선택 | 광고 그룹 ID | ad_group_id={AD_GROUP_ID} |
Ad Creative ID | ad_creative_id | 선택 | 광고 소재 ID | ad_creative_id={AD_CREATIVE_ID} |
Term ID | term_id | 선택 | 키워드 ID | term_id={TERM_ID} |
Tracking Link 내 ADID 추가 권장
현재 트래킹 링크 템플릿 속의 ADID는 필수값은 아니지만, iOS 14.5 업데이트 정책으로 핑거프린팅이 불가해짐으로서 ATT(AppTrackingTransparency) 프레임워크를 통해 옵트인을 한 사용자의 IDFA값을 최대한 활용하여 어트리뷰션을 할 수있도록 해당 파라미터를 추가를 권장드립니다.
Airbridge의 Tracking Link에 필수로 추가가 필요한 매크로는 매체사 측의 'Click ID', 'Publisher ID' 로, 해당 매크로들을 포함한 매체사 측에서 제공 가능한 매크로 리스트나 별도 문서가 있는 경우 저희에게 공유해주시면, 내부적으로 Tracking Link Template을 구성하여 시스템에 등록하도록 하겠습니다.
예시)
https://abr.ge/@APP_NAME/MEDIA_NAME?click_id={CLICK_ID}&sub_id={SUB_ID}&gaid_raw={GAID}&ifa_raw={IDFA}
2) 커스텀 파라미터 추가
위 안내된 파라미터 외에도 터치포인트 발생 시 매체사 측의 특정 데이터를 수집하고 추후에 Postback으로 돌려받기를 원하는 값이 있을 경우 Tracking Link Template에 커스텀으로 파라미터를 추가할 수 있으며, 커스텀 파라미터의 Key값은 매체사 측에서 원하시는 값으로 추가해주시면 됩니다.
예시)
https://abr.ge/@APP_NAME/MEDIA_NAME?click_id={CLICK_ID}&sub_id={SUB_ID}&gaid_raw={GAID}&ifa_raw={IDFA}&custom_param1={MACRO1}&custom_param2={MACRO2}
3) Tracking Link 동작
클릭 혹은 조회용 Tracking Link 호출 시 매체사 측에서는 사전에 협의 된 트래킹 URL내의 매크로에 실제 값을 채워서 데이터를 송신(Tracking Link URL을 호출)하게 됩니다. 아래 예시를 참고하시기 바랍니다.
[Tracking Link URL Template 및 실제 호출]
https://abr.ge/@airbridge/ab180_ads?click_id={TOUCHPOINT_ID}&ad_id={ADID}&sub_id={PUBLISHER_ID}
→
https://abr.ge/@airbridge/ab180_ads?click_id=abcf15142ads&ad_id=94ec0320-7f08-11e6-bdf4-0800200c9a6 6&sub_id=abzdo_16345
2. Postback URL Template 설정
매체사는 Airbridge 고객사가 대시보드 내에서 설정한 채널별 Postback 전송 옵션 설정(기여 여부 및 신규 이벤트 여부에 따른 Postback 전송)에 따라서 Airbridge에서 트래킹한 고객사 서비스의 이벤트 및 Attribution 관련 정보를 Postback을 통해 실시간으로 전달 받을 수 있습니다.
Postback 수신을 위해 매체사에서는 아래와 같이 이벤트 종류별로 각각의 Postback URL Template을 Airbridge 시스템에 등록해야 합니다.
- 설치(install) 용 Postback URL Template
- 인앱 이벤트(In-app Events) 용 Postback URL Template
만약 이벤트 종류별로 Postback URL Template이 동일하다면 한개의 Postback URL Template만 구성하여 전달해주시면 됩니다. Postback URL Template 구성을 위한 상세 스펙은 아래 내용을 참고 부탁드립니다.
1) Airbridge 이벤트 종류
Airbridge에서 Postback으로 제공 가능한 이벤트는 'Airbridge 기본 이벤트(Standard Event)'와 '고객사별 커스텀 이벤트(Custom Event)'로 나눠집니다.
Event Type | Events | Event Name (raw) |
---|---|---|
Standard Event | install (설치) | app_install |
Standard Event | Launch / Open (실행) | app_open |
Standard Event | Deeplink Launch (딥링크 실행) | app_deeplink_open |
Standard Event | Sign Up (회원 가입) | airbridge.user.signup |
Standard Event | Sign In (로그인) | airbridge.user.signin |
Standard Event | Sign Out (로그아웃) | airbridge.user.signout |
Standard Event | View Home (홈화면 조회) | airbridge.ecommerce.home.viewed |
Standard Event | View Product List (상품 리스트 조회) | airbridge.ecommerce.productList.viewed |
Standard Event | View Search Result (검색 결과 조회) | airbridge.ecommerce.searchResults.viewed |
Standard Event | View Detailed Product (상품 상세페이지 조회) | airbridge.ecommerce.product.viewed |
Standard Event | Add To Cart (장바구니 담기) | airbridge.ecommerce.product.addedToCart |
Standard Event | Purchase (구매완료) | airbridge.ecommerce.order.completed |
Standard Event | Ad Impression (광고 노출) | airbridge.adImpression |
Standard Event | Subscribe (구독) | airbridge.subscribe |
Standard Event | Unsubscribe (구독 취소) | airbridge.unsubscribe |
Standard Event | Schedule (일정 예약) | airbridge.schedule |
Standard Event | Unlock Achievement (과제 달성) | airbridge.unlockAchievement |
Standard Event | Ad Click (광고 클릭) | airbridge.adClick |
Standard Event | Add to Wishlist (위시리스트 추가) | airbridge.addToWishlist |
Standard Event | Share (공유) | airbridge.share |
Standard Event | Complete Tutorial (튜토리얼 완료) | airbridge.completeTutorial |
Standard Event | Achieve Level (레벨 달성) | airbridge.achieveLevel |
Standard Event | Add Payment Info (결제 수단 등록) | airbridge.addPaymentInfo |
Standard Event | Initiate Checkout (결제 시작) | airbridge.initiateCheckout |
Standard Event | Spend Credits (크레딧 사용) | airbridge.spendCredits |
Standard Event | Start Trial (체험판 시작) | airbridge.startTrial |
Standard Event | Rate (평가) | airbridge.rate |
Custom Event | 고객사별 상이 | 고객사별 상이 |
설치 이벤트부터 구매 완료 이벤트까지는 Airbridge에서 제공하는 기본 이벤트(Standard Event)로, 모든 고객사에서 공통적으로 사용하는 이벤트 목록입니다.
Postback 전송 시 각 이벤트에 대해서 매체사측에서 전달받기를 원하는 별도의 이벤트명이나(예를 들어 회원가입 이벤트에 대해서 'airbridge.user.signup' 대신 'Registration'로 전달) 특정 이벤트를 의미하는 ID값('airbridge.user.signup' 대신 숫자 아이디 7)이 있는 경우 각 이벤트별로 맵핑 테이블을 전달해주시면 해당 값으로 전송할 수 있으며, 별도 원하시는 값이 없다면 위 표의 'Event Name (raw)'에 표기된 값으로 전달됩니다.
커스텀 이벤트(Custom Event)는 고객사 서비스별로 설정 및 트래킹하는 이벤트로, 고객사마다 다른 인앱 이벤트명을 사용하고 있으며, 고객사 설정값이 그대로 Postback URL의 이벤트명으로 전송됩니다. 만약 고객사의 커스텀 이벤트도 다른 값으로 변환하여 전송이 필요한 경우 별도 요청 부탁드리겠습니다.
2) Postback URL Template 내 지원 데이터 및 매크로
Airbridge에서 Postback URL을 통해 제공하는 데이터의 종류는 아래 Airbridge Postback Spec 시트에서 확인할 수 있습니다.
Postback을 통해 전달받고자 하는 데이터는 'Postback Spec' 시트에서 플랫폼별 이벤트에 따라(Web 이벤트 또는 App 이벤트) 'Web' 또는 'App' 컬럼이 '1'로 표기된 항목들을 참고하시면 되며, 해당 데이터를 Postback URL Template 내에 추가 시에는 'Field Value' 열의 값을 중괄호('{','}')로 감싼 매크로 형태로 사용해주시면 됩니다. 예를 들어 Postback을 통해 Airbridge Device ID 값을 전달받기 위해서는 '{device.deviceUUID}' 를 매체사의 'Key 값'과 맵핑합니다.
3) Postback URL Template 내 필수 포함 파라미터 (필수)
혹시 모를 중복 전송 방지 및 이슈 발생 시 원활한 트러블슈팅을 위해 Postback URL 내 하기 두 파라미터는 필수적으로 추가해야 합니다.
- a) Postback을 통해 이벤트 발생 시간 데이터를 수집하는 경우 매체측 파라미터와 맵핑하여 Postback URL에 추가해야하며, 만약 이벤트 발생 시간 데이터를 수집하지 않는다 하더라도 'event_timestamp={eventTimestamp}' 와 같이 관련 파라미터를 임의로 추가한 후 매체측 내부 시스템에서 해당 파라미터로 인해 에러가 발생하지 않도록 작업이 필요합니다.
이름 | 타입 | 파라미터 이름 |
---|---|---|
이벤트 발생시간 | string | {eventDatetime} |
이벤트 발생시간 (GMT or UTC기준) | string | {eventDatetimeGMT} |
이벤트 발생시간 (ms since Epoch) - 13자리 | int | {eventTimestamp} |
이벤트 발생시간 (s since Epoch) - 10자리 | int | {eventTimestampInSec} |
- b) Postback을 통해 Device Identifier을 수집하는 경우 매체측 파라미터와 맵핑하여 Postack URL에 추가해야하며, 만약 웹 지면 보유 등으로 디바이스 식별자를 수집하지 않는다 하더라도, {device.deviceUUID} & {device.DeviceUUIDType} 혹은 {device.gaid} & {device.ifa}파라미터로 인해 매체측 내부 시스템에서 에러가 발생하지 않도록 작업이 필요합니다. * deviceUUID는 총 4가지 타입의 DeviceID(GAID,IDFA,IDFV,Random Generated)가 인입될 수 있으므로, deviceUUIDType 매크로도 함께 추가해주시기 바랍니다.
이름 | 타입 | 파라미터 이름 |
---|---|---|
Airbridge Device ID | string | {device.deviceUUID} |
Airbridge Device ID Type | string | {device.deviceUUIDType} |
GAID | string | {device.gaid} |
IDFA | string | {device.ifa} |
4) 제품 관련 이벤트의 상품 데이터
장바구니 담기, 구매 완료와 같이 제품(Product)과 관련된 이벤트의 경우 여러개의 제품 데이터가 존재할 수 있습니다. 이러한 복수개의 제품 데이터를 Postback을 통해 JSON 형태로 전달받을 수 있습니다.
Postback URL Template에는 JSON 형태의 여러 제품 데이터를 전달받기 위한 매체측의 파라미터 키(Key)에 {@postback.jsonData}를 맵핑하여 추가하고, JSON 내에서 전달받고자하는 제품 관련 데이터를 맵핑하여 Postback URL Template 과 함께 전달 부탁드립니다. 대괄호, 중괄호 등의 JSON 형태와 관련된 문법적인 요소는 매체측 내부 포맷에 따라 자유롭게 설정 가능합니다.
또한 템플릿을 구성하실 때는 JSON 데이터에서 반복되는 부분과 그렇지 않은 부분을 명확하게 나누기 위하여 {@for ... in ...} 문법을 사용합니다.
아래 예시에서와 같이 템플릿의 {@for product in eventData.goal.semanticAttributes.products} 와 {@endfor} 사이가 반복됩니다. 각각의 상품에는 {product.}로 접근 가능하며, {product.}으로 사용할 수 있는 값은 아래 테이블을 참고해주시기 바랍니다.
이름 | 타입 | 파라미터 이름 |
---|---|---|
Product ID | string | eventData.goal.semanticAttributes.product[0].productID |
Product Name | string | eventData.goal.semanticAttributes.product[0].name |
Product Price | float | eventData.goal.semanticAttributes.product[0].price |
Product Quantity | int | eventData.goal.semanticAttributes.product[0].quantity |
Product Currency | string | eventData.goal.semanticAttributes.product[0].currency |
Product Position | int | eventData.goal.semanticAttributes.product[0].position |
예시) ...&product_info={@postback.jsonData}&...
예시) {@postback.jsonData} 로 전달될 JSON Template
[
{@for product in eventData.goal.semanticAttributes.products}
{
"event_item_id": {product.productID},
"quantity": {product.quantity},
"unit_price": {product.price},
"currency_code": {product.currency},
"event_item_name": {product.name}
},
{@endfor}
]
5) Postback URL 동작
Airbridge가 고유의 기여 모델을 통해서 전환 이벤트 발생에 기여한 터치 포인트를 선정한 후, Airbridge는 사전에 매체와 합의된 Postback URL에 값을 채워서 최종적으로 전환과 관련된 데이터를 매체 측에 전송하게 됩니다.
이 때, 커스텀 파라미터의 경우 포스트백 URL을 구성할 시 해당 파라미터가 트래킹 링크 파라미터임을 구분하기 위해 @trackingLink. prefix를 붙여 사용해야 합니다. (예: {@trackingLink.custom_param}) 아래 예시를 참고 하시기 바랍니다.
[Postback URL Template 및 실제 호출]
https://api.example-ad-channel.com/postback/airbridge?touchpoint_id={attributionResult.attributedClickID}& ad_channel={attributionResult.attributedChannel}&event_timestamp={eventTimestamp}&customID={@trackin gLink.custom_param}
→
https://api.example-ad-channel.com/postback/airbridge?touchpoint_id=e7580180-7f04-11e6-bdf4-0800200c 9a66&ad_channel=sample_channel&event_timestamp=1479186394000&customID=4093721
자주 묻는 질문
-
Timestamp를 초 단위로 변환하고 싶은데 가능한가요?
⇒ Airbridge의 모든 타임스탬프 필드는 기본적으로 millisecond 단위입니다. 이를 second 단위로 변환 하기 위해서는 변환하고자 하는 타임스탬프 필드값에 InSec을 붙여 간단하게 변환 할 수 있습니다. (예: {requestTimestamp} → {requestTimestampInSec}) -
boolean 타입 필드를 int 타입으로 변환할 수 있나요?
⇒ Airbridge Postback Spec 시트에 나와있는 필드값 중 boolean 타입을 갖는 필드에 한해서 :int를 붙여 타입을 변환할 수 있습니다. true는 1, false는 0으로 변환됩니다.
(예: {@postback.isAttributedToTargetChannel} → {@postback.isAttributedToTargetChannel:int})
매체 연동과 관련하여 추가적인 문의사항이 있는 경우 Airbridge Platform팀([email protected])으로 문의하시길 바랍니다.
Updated about 2 years ago