menu 이용가이드
close
심화기능 chevron_right 서드파티 연동
AWS S3 연동
AWS S3 연동을 위한 안내입니다.

AWS S3 연동

기능 목적

본 기능은 에어브릿지를 통해 수집된 두 가지 종류의 로그를 가공하지 않은 상태 그대로 AWS S3를 통해 고객사에 전달하는 것을 목적으로 합니다.

  1. 웹 이벤트(Web Event) : 클릭 또는 조회
  2. 모바일 이벤트(Mobile Event) : 설치, 일반 실행, 인앱이벤트, 딥링크 실행(지원 예정)

이렇게 전달된 데이터는 고객사에서 직접 배치성 분석 작업을 통해 유의미한 형태로 가공하여 사용하실 수 있습니다.

기능 개요

로우 데이터는 csv 형태로 Amazon Web Service 의 S3(Simple Storage Service)에 일별 혹은 시간별 설정에 따라 업로드됩니다.

일별 업로드 설정 시 매일 오전 3 시 (새벽 3 시)마다 배치 작업을 수행하여 그 전 일자의 0 시 0 분 0초부터 23시 59분 59초까지의 모든 정보를 하나의 csv 파일에 저장합니다.

시간별 업로드 설정 시 매시 10 분 마다 배치 작업을 수행하여 그 전 시각의 0 분 0 초부터 59 분 59 초까지의 정보를 하나의 csv 파일에 저장합니다.

따라서 사용자는 매시 10 분 혹은 매일 오전 3 시 이후 임의의 시각에 그 전 시각의 csv 파일을 다운로드 받도록 배치잡(Batch Job)을 설계할 수 있습니다.

AWS S3 연동 방법

STEP 1

AWS S3로 접속 후 계정, 사용자 이름, 암호를 입력하여 로그인하거나 AWS 계정을 생성합니다.

STEP 2

AWS IAM을 통해서 S3에 대한 3개 이상의 권한(s3:PutObject, s3:GetObject, s3:DeleteObject)을 가진 'ACCESS_KEY''SECRETACCESSKEY'를 발급받습니다.

이름 설명 예시
AWS_ACCESS_KEY_ID 에어브릿지에게 제공하는 AWS 계정의 access key CVAGZUZYPUTPHGXSXJGW
AWS_SECRET_ACCESS_KEY 에어브릿지에게 제공하는 AWS 계정의 secret key XWzquDaznQDZieXPNnjimjNzhxnCVp

STEP 3

원하는 AWS 리젼(Region)의 S3 서비스 내에서 원하는 이름의 버킷(Bucket)을 생성합니다.

이름 설명 예시
REGION 사용하고자 하는 AWS 리전 ap-northeast-1
BUCKET_NAME 사용하고자 하는 버킷의 이름 your-bucket-name

STEP 4

위에서 취득한 AWS S3 연동을 위한 정보들을(AWSACCESSKEYID, AWSSECRETACCESSKEY, REGION, BUCKET_NAME) 에어브릿지 내의 서드파티 연동 메뉴에 입력하여 연동을 완료합니다.

AWS S3 상세 가이드

파일 제목 포맷

S3 Bucket에 저장되는 파일은 v1의 경우 ‘앱이름-이벤트타입-시작일시-종료일시.csv’, v2의 경우 ‘앱이름-이벤트타입-v2-시작일시-종료일시.csv’ 형태의 파일명을 가지게 됩니다.

앱이름 SDK Version 이벤트타입 예시
YourAppName V1 touchpoint YourAppName-touchpoint-20161031010000-20161031015959.csv
conversion YourAppName-conversion-20161031010000-20161031015959.csv
V2 touchpoint YourAppName-touchpoint-v2-20161031010000-20161031015959.csv
conversion YourAppName-conversion-v2-20161031010000-20161031015959.csv

v2는 1.0.0 버전 이상의 에어브릿지 SDK를, v1은 1.0.0 버전 미만의 에어브릿지 SDK를 의미합니다. v2부터는 더욱 다양한 데이터의 트래킹을 기반으로한 신규 기능들을 에어브릿지 대시보드에서 제공하고 있으며, v1을 이용할 경우 이러한 신규 기능 이용이 제한적이오니 가급적 v2 신규 버전의 SDK로 업데이트해주시길 바랍니다.

파일 제목 각각의 항목에 대한 자세한 설명은 다음과 같습니다.

  • 앱이름 : 에어브릿지 대시보드에서 처음 앱을 생성할 때 지정하였던 앱의 영문명입니다. (e.g. YourAppName)
  • 이벤트타입 : 이벤트타입은 크게 두 종류로 나누어지며, touchpoint 및 conversion이 별도의 파일로 저장됩니다.
    • touchpoint: 클릭 혹은 조회의 웹 이벤트입니다.
    • conversion: 모바일 SDK에서 발생한 설치, 실행, 인앱이벤트 등의 모바일 이벤트를 나타냅니다.
  • 시작일시 및 종료일시
    • 해당 로우 데이터가 어떠한 시간대의 데이터들을 가지고 있는지 나타냅니다.
    • 일반적으로, [시간별]일 경우 0분 0초부터, 59분 59초까지, [일별]일 경우 0시 0분 0초부터 23시 59분 59초 까지로 나타내어집니다.
    • YYYYMMDDHHmmSS 형태입니다.

CSV 내부 포맷 (Delimiter)

S3 Bucket에 저장된 CSV파일의 내부 포맷의 구분 문자 항목 및 각 구분 문자에 대한 안내로 CSV파일 내의 순서와 동일합니다.

제공 버전(V1, V2)에 따라 지원되는 컬럼의 종류가 다르기 때문에 주의해야 하며, 에러 없는 안정적 파싱(Parsing)을 위해 먼저 실제 데이터가 들어있는 CSV 파일을 버킷으로 받아본 후 파싱 코드를 구축하시기를 추천드립니다.

1. 웹 이벤트

Property Name Type 제공 버전 Description
subType integer V1, V2 “view” 혹은 “click”입니다.
eventID string V1, V2 현재 참조하고 있는 1개 행에 대한 고유 아이디입니다.
remoteAddress string V1, V2 아이피주소입니다.
userAgent string V1, V2 웹 브라우져 사용자 에이전트입니다.
referrer string V1, V2 레퍼러 정보입니다. (직전 접속 주소 / HTTPS는 알 수 없는 경우도 존재합니다.)
targetDevice string V1, V2 타겟 디바이스입니다.
ex) “ios” || “android” || “desktop”"
canonicalDeviceUUID string V1, V2 디바이스 ID입니다. (웹의 경우 사용자 ID와 동일합니다.)
canonicalUserUUID string V1, V2 사용자 ID입니다.
ADID_gaid string V1, V2 Google ADID입니다. (GAID / 있는 경우에만)
ADID_ifa string V1, V2 Apple ADID입니다. (IFA / 있는 경우에만)
ADID_ifv string V1, V2 Apple ADID입니다. (IFV / 있는 경우에만)
eventFrom string V1, V2 해당 이벤트가 발생한 곳입니다.
eventTo string V1, V2 해당 이벤트를 통해 사용자가 이동한 곳으로 channel, website, sms, iosMarket, androidMarket, app 중 하나의 값을 갖습니다.
transactionID string V1 본 이벤트에 대한 트랜잭션 ID로 차후 모바일 설치가 일어났을 때 이 ID를 기준으로 하나의 단일 트랜잭션임을 파악하여 설치에 대한 실질적인 Attiributed touch point를 찾을 때 사용합니다.
shortID string V1, V2 shortID는 특정 트레킹 링크를 사용한 캠페인의 메타 정보인 8개의 값들을 묶어놓은 짧은 ID입니다.
8개 값들은 UTM 코드 기반의 channel, campaign, medium, term, content 5개 값들과 adGroup, adCreative의 광고 관련 2개 값들, 마지막으로 해당 앱의 appID입니다. (sourceType의 경우 channel의 이름을 통해 자동 결정)
예를 들어 channel이 “madup”, campaign이 “ebay-test-campaign-1”, appID가 “619”인 경우의 부여된 shortID가 “yqfd”라면, 이것을 실제 사용되는 링크로 볼 시에는 http://abr.ge/yqfd와 같이 표기될 수 있습니다.
또한 shortID값을 결정하는 8개 값들 중 하나라도 바뀌게 될 시 다른 shortID가 부여됩니다.
trackingTemplateID string V1, V2 API 중 ‘2.1. 트레킹 링크 (통합)’ 리소스의 POST 엔드포인트를 통해서 반환된 trackingTemplateID와 동일한 값을 내려줍니다. 이 값을 통해서 통계를 Aggregation할 수 있습니다.
longUrl string V1, V2 트래킹 링크의 긴 주소입니다.
ex) “http://abr.ge/@ab180/facebook?campaign=winter”
sourceType string V1, V2 마케터가 선택한 채널의 종류입니다. (유료 광고 채널, 바이럴 채널, 앱 마켓으로 구분합니다.)
ex) “paid || “viral” || “app-market” || “unattributed
channel string V1, V2 마케터가 선택한 채널명입니다.
params_campaign string V1, V2 마케터가 입력한 캠페인 파라미터 중 캠페인명입니다.
params_adGroup string V1, V2 마케터가 입력한 캠페인 파라미터 중 광고그룹입니다.
params_adCreative string V1, V2 마케터가 입력한 캠페인 파라미터 중 광고소재입니다.
params_medium string V1, V2 마케터가 입력한 캠페인 파라미터 중 매체입니다.
params_term string V1, V2 마케터가 입력한 캠페인 파라미터 중 키워드입니다.
params_content string V1, V2 마케터가 입력한 캠페인 파라미터 중 콘텐츠입니다.
dynamicParams string V1 커스텀 동적 파라미터로 동적 생성 시 커스텀 데이터 전달 가능하며 친구 초대 리워드 기능 구축 등에 사용합니다.
ex)
{
     “dynamic_referring_user” : “user-id-94ad4fde-fa66-4568-81f9-ac30e88c475a”
}
eventDatetime string V1, V2 이벤트 발생시간입니다. (ISO 8601)
ex) “2016-12-31T12:00:00+09:00”

2. 모바일 이벤트

Property Name Type 제공 버전 Description
eventCategory string V1, V2 이벤트에 대한 카테고리입니다. 현재 에어브릿지 시스템은 총 4개의 카테고리를 지원하고 있습니다.
- install : 설치
- launch : 실행
- deeplinkLaunch : 딥링크 실행
- goal : 인앱이벤트
ex) “install”, “launch”, “deeplinkLaunch”, “goal”
eventID integer V1, V2 이벤트에 대한 고유값을 나타내었던 본 컬럼은 string 형식의 "rowUUID" 컬럼으로 변경되어 현재는 사용되지 않습니다.
과거 시스템과의 호환성을 위해 존재하며 모든 데이터는 0으로 출력됩니다. (Deprecated)
isFirstActivity boolean V1, V2 해당 이벤트가 해당 유저에 한하여 첫 번째인지 혹은 두 번째 이상인지를 알려주는 값입니다. 설치의 경우에는 첫설치와 재설치, 인앱이벤트의 경우 첫구매와 재구매 등 해당 인앱이벤트 구분할 수 있는 값으로 활용할 수 있습니다.
예를 들어 동일한 유저로부터 두 번 이상의 설치(재설치)인 경우 이 값은 false가 되게 됩니다. (단, 재설치 Lookback Window가 지났을땐, true로 들어옵니다.)
ex) true || false
appPackageName string V2 앱의 패키지의 고유한 이름입니다. 안드로이드의 경우 applicationId을, iOS의 경우 Bundle ID를 가져오게 됩니다.
- 안드로이드 공식 문서
- iOS 공식 문서
appVersion string V2 앱의 고유한 버전입니다.
- 안드로이드 공식 문서
- iOS 공식 문서
appVersionCode string V2 안드로이드에만 있는 내부적인 앱의 버전입니다. 정수이며, 내부 버전 번호로 사용됩니다.
- 안드로이드 공식 문서
remoteAddress string V1, V2 외부 아이피주소입니다.
ex) 52.199..31.164
deviceType string V1, V2 디바이스의 종류입니다.
ex) “LG-H542” || “SM-N930F”
deviceManufacturer string V2 디바이스의 제조사입니다.
ex) “Samsung”
deviceLocale string V2 디바이스에서 현재 사용하고 있는 locale 정보입니다. languageCode-countryCode의 형식으로 전달되게 되며, 여기서 languageCode는 ISO 639, countryCode는 ISO 3166 alpha-2의 표준에 따르고 있습니다.
ex) “ko-KR”
- ISO 639
- ISO 3166 alpha-2
- 안드로이드 공식문서
- iOS 공식문서
deviceTimezone string V2 디바이스의 타임존입니다.
- tz database
ex) Asia/Seoul
googlePlayStoreReferrer string V2 트래킹 링크 클릭 후 구글 플레이스토어로 이동 시 쿼리스트링에 있는 referrer 파라미터를 통해서 전달되는 데이터입니다. referrer는 데스크탑 구글 플레이스토어에서 설치할 시에도 적용이 되며, HTTP Request의 Header에 있는 referer과는 구분되어야 합니다.
- 구글 공식 문서
eventDeeplink string V2 딥링크 실행 이벤트 발생 시 입력된 딥링크 URL입니다.
osVersion integer V1, V2 모바일 OS 버전입니다.
ex) “Android5.0.2” || “iOS9.3.5”
deviceWidth integer V2 디바이스의 스크린 좌우길이입니다.
ex) 414
deviceHeight integer V2 디바이스의 스크린 상하길이입니다.
ex) 739
deviceDensity string V2 디바이스의 해상도입니다. 현재 이 기능은 제공되지 않습니다.
ex) 5
canonicalDeviceUUID string V1, V2 각 디바이스별로 부여된 고유 ID입니다.
canonicalUserUUID string V1 각 사용자별로 부여된 고유 ID입니다. V2에서 현재 이 기능은 제공되지 않습니다.
externalUserID string V2 광고주측 서비스에서 개별 사용자들에 할당하는 고유 ID입니다. 이는 기본 인앱이벤트를 통해서 전달할 수 있는 값으로 향후 광고주측 서비스의 개별 사용자들과 에어브릿지 시스템에서 부여된 사용자들(canonicalDeviceUUID) 등을 매핑할 때 사용할 수 있습니다.
안드로이드의 경우 “SignUpGoalBuilder”와 “SignInGoalBuilder”를 통해서, iOS의 경우 “userSignupWithEmail”과 “userSigninWithEmail”을 통해서 사용할 수 있습니다.
- 에어브릿지 안드로이드 SDK 인앱이벤트
- 에어브릿지 iOS SDK 인앱이벤트
extenralUserEmail string V2 광고주측 서비스에서 개별 사용자들로부터 받아 저장하고 있는 이메일입니다. 이 이메일을 SHA256 방식으로 해시화하여 전달하여 향후 광고주측 서비스의 개별 사용자들과 에어브릿지 시스템에서 부여된 사용자들(canonicalDeviceUUID) 등을 매핑할 때 사용할 수 있습니다. 이후 설명은 externalUserID와 상호 동일합니다.
ADID_gaid string V1, V2 Google ADID입니다. (GAID / 있는 경우에만)
- 구글 공식 문서
- 안드로이드 공식 문서
ADID_ifa string V1, V2 Apple ADID입니다. (IFA / 있는 경우에만)
ADID_ifv boolean V1, V2 Apple ADID입니다. (IFV /,있는 경우에만)
ADID_limitAdTracking boolean V2 앱마켓 사용자가 광고 ID의 개인화 맞춤광고용 사용을 제한했는지의 여부입니다.
제한할 경우 Apple의 경우 “interest-based ads”(관심기반 광고)에서 제외되게 되며, Google의 경우 “personalized ads”(개인화 맞춤광고)에서 제외되게 됩니다.
true일 경우 맞춤광고용 사용을 제한한 것이며 false일 경우 맞춤광고용 사용을 허용한 것입니다.
ex) true || false
Android_limitAppTracking string V2 안드로이드에서 Activity별 사용자의 방문 로그를 자동수집하는 기능을 제한했는지의 여부입니다. 현재는 이 기능이 제공되지 않습니다.
backRefID string V1 고객사에서 맵핑한 사용자 고유 아이디입니다. SDK 내부에서 signIn(), signUp() 을 이용하여 맵핑합니다.
V2에서 externalUserID와 externalUserEmail로 확장하여 제공되며, 기존의 backRefID는 deprecated됩니다.
transactionID integer V1 본 컬럼은 현재 사용하지 않으며, 향후 사용 예정입니다.
winningTouchpointEventID string V1, V2 터치포인트 eventID 중 해당 전환에 기여한 것으로 확정된 위닝터치포인트의 eventID입니다.
shortID string V1, V2 shortID는 특정 트레킹 링크를 사용한 캠페인의 메타 정보인 8개의 값들을 묶어놓은 짧은 ID입니다.
8개 값들은 UTM 코드 기반의 channel, campaign, medium, term, content 5개 값들과 adGroup, adCreative의 광고 관련 2개 값들, 마지막으로 해당 앱의 appID입니다. (sourceType의 경우 channel의 이름을 통해 자동 결정)
예를 들어 channel이 “madup”, campaign이 “ebay-test-campaign-1”, appID가 “619”인 경우의 부여된 shortID가 “yqfd”라면, 이것을 실제 사용되는 링크로 볼 시에는 http://abr.ge/yqfd와 같이 표기될 수 있습니다.
또한 shortID값을 결정하는 8개 값들 중 하나라도 바뀌게 될 시 다른 shortID가 부여됩니다.
trackingTemplateID string V1, V2 API 중 ‘2.1. 트레킹 링크 (통합)’ 리소스의 POST 엔드포인트를 통해서 반환된 trackingTemplateID와 동일한 값을 내려줍니다. 이 값을 통해서 통계를 Aggregation할 수 있습니다.
sourceType string V1, V2 마케터가 선택한 채널의 종류입니다. (유료 광고 채널, 바이럴 채널, 앱 마켓으로 구분합니다.)
ex) “paid || “viral” || “app-market” || “unattributed”
channel string V1, V2 마케터가 선택한 채널명입니다.
params_campaign string V1, V2 마케터가 입력한 캠페인 파라미터 중 캠페인명입니다.
params_adGroup string V1, V2 마케터가 입력한 캠페인 파라미터 중 광고그룹입니다.
params_adCreative string V1, V2 마케터가 입력한 캠페인 파라미터 중 광고소재입니다.
params_medium string V1, V2 마케터가 입력한 캠페인 파라미터 중 매체입니다.
params_term string V1, V2 마케터가 입력한 캠페인 파라미터 중 키워드입니다.
params_content string V1, V2 마케터가 입력한 캠페인 파라미터 중 콘텐츠입니다.
dynamicParams string V1 커스텀 동적 파라미터로 동적 생성 시 커스텀 데이터 전달 가능하며 친구 초대 리워드 기능 구축 등에 사용합니다.
ex)
{
     “dynamic_referring_user” : “user-id-94ad4fde-fa66-4568-81f9-ac30e88c475a”
}
inAppEventCategory string V2 V1 : 대시보드에서 발급한 인앱이벤트 식별자값입니다.
ex) j2imd0ex9ak7k
V2 (TBD) : 인앱이벤트를 지칭하는 3개의 값(category > action > label) 중 가장 상위에 속하는 구분값입니다. 이 값은 eventCategory가 ‘goal’인 경우에만 제공됩니다.
ex) 영화
inAppEventAction string V2 V2 : 현재 사용되고 있지 않은 값입니다. 향후 사용될 예정입니다.V2 (TBD) : V2에서 인앱이벤트를 지칭하는 3개의 값(category > action > label) 중 두 번째에 속하는 구분값입니다.
ex) 보다
inAppEventLabel integer V2 V2 : 현재 사용되고 있지 않은 값으로 향후 사용될 예정입니다. (TBD)
V2에서 인앱이벤트를 지칭하는 3개의 값(category > action,세 번째에 속하는 구분값입니다. 이 값은 eventCategory가 ‘goal’인 경우에만 제공됩니다.
ex) 바람과 함께 사라지다
inAppEventValue string V2 V2 : 현재 사용되고 있지 않은 값으로 향후 사용될 예정입니다. (TBD)
인앱이벤트 호출 시 금액, 횟수 등의 값을 더하기 위한 값입니다. 현재 안드로이드와 iOS의 구매완료 인앱이벤트에서 사용됩니다.
goalLabel string V1 (마케터가 대시보드에서 입력한) 목표 영문명으로 subType이 ‘goal’인 경우에만 제공됩니다.
ex) purchase
goalDescription string V1 (마케터가 대시보드에서 입력한) 목표 한글명으로, subType이 ‘goal’인 경우에만 제공됩니다.
ex) 물품 구매
goalKey string V1 목표 키 (Custom value)로, subType이 ‘goal’인 경우에만 제공됩니다.
ex) airbridge@ab180.co
goalCategory string V1 목표 카테고리 (Custom value)로, subType이 ‘goal’인 경우에만 제공됩니다.
ex) 이메일
eventDatetime string V1, V2 모바일 클라이언트 상에서의 실제 이벤트 발생시간입니다. ISO 8601 표준에 따라서 제공되며, 실제 이벤트 발생시간이므로 DB INSERT TIME과는 구분될 수 있습니다.
ex) “2016-12-31T12:00:00+09:00”
SDKVersion string V2 에어브릿지 SDK의 버전입니다.
ex) M_A_v1.0.0-beta1
rowUUID string V2 현재 참조하고 있는 1개 행에 대한 UUID 형식의 고유 아이디입니다.


AWS S3 연동과 관련하여 궁금하신 점이 있으시다면 우측하단의 1:1문의를 통해 문의주시거나 에어브릿지 공식 메일로 연락주시면 최대한 빠른 시일 내에 답변 드리도록 하겠습니다.

검색결과
keyboard_return이전으로