본문으로 건너뛰기

AppsFlyer 데이터 연동 솔루션

최근 업데이트 2026. 10. 05.

최종 업데이트 날짜: 2023-04-04

1. 통합 계획 소개​

팁

서드파티 데이터 통합으로 생성된 데이터는 클러스터의 소비 데이터양에 포함됩니다

개요​

이 문서에서는 AppsFlyer의 데이터를 Agentic Engine(이하 AE 시스템)으로 콜백하는 방법을 소개합니다. 이 계획은 AppsFlyer의 다양한 데이터 연동 방법을 지원합니다. 다음 표는 각 데이터 연동 방법의 특징과 데이터 타입을 보여 주며, 제목을 클릭하면 해당 계획의 장으로 이동할 수 있습니다:

인터페이스데이터 세분화API 타입제품화데이터 업데이트 빈도요청 횟수 제한

Push API 유저 데이터

유저 수준

푸시 방식

예

실시간

제한 없음

Pull API 유저 수준 데이터 인터페이스

유저 수준

풀 방식

아니요

실시간

  • 요청당 최대 1M 행
  • APP당 하루 최대 24회 요청
  • 계정당 하루 최대 120회 요청

Pull API 집계 데이터

집계 데이터

풀 방식

아니요

실시간

  • 분당 최대 1회 요청
  • 수집 기간 0-2일 이내: 제한 없음
  • 수집 기간 3일 이상:
    • APP당 하루 최대 24회 요청
    • 계정당 하루 최대 120회 요청

Master API

집계 데이터풀 방식

아니요

일별

  • 요청당 행 수 제한 없음
  • 하루 요청 횟수 제한 없음

Cohort API

집계 데이터풀 방식아니요일별

제한 없음

Data Locker유저 수준 / 집계 데이터풀 방식-일별/시간별전송 대상 클라우드 스토리지의 제한에 따름
경고

일부 플랫폼은 어트리뷰션 정보, 수익 데이터, 비용 데이터 등 유저 수준 데이터의 일부 필드 콜백을 제한하므로 주의하십시오

팁

일부 인터페이스는 AppsFlyer의 유료 기능입니다. 사용하기 전에 AppsFlyer의 담당 고객 매니저에게 인터페이스 사용 권한을 문의하십시오.

2. Push API 유저 수준 데이터 인터페이스(제품화 완료)​

인터페이스 기본 정보

인터페이스명API 타입제품화데이터 세분화어트리뷰션 데이터비용 데이터수익 데이터노출 데이터클릭 데이터전환 데이터
Push API푸시 방식예유저 수준예예예예예

Push API로 AppsFlyer의 유저 수준 데이터를 실시간으로 가져올 수 있으며, 노출, 클릭, 활성화, 수익 데이터 등이 포함됩니다. 비용 데이터는 AF 플랫폼의 데이터 제한으로 인해 가져오지 못할 수 있습니다.

팁

Push API 통합은 이미 AE 시스템 백엔드에서 제품화되었으므로 관련 제품 문서를 참고하여 화면에서 통합 설정을 진행할 것을 권장합니다.

Push API 유저 수준 데이터를 연동하기 전에 AE 시스템의 유저 식별 규칙을 읽고 AE 시스템이 #distinct_id와 #account_id로 유저를 식별하는 방식을 이해했는지 확인하십시오. AppsFlyer Push API 인터페이스의 데이터 연동 절차는 아래 그림과 같습니다:

원본 이미지 보기

2.1 클라이언트 SDK 설정​

Push API의 유저 수준 데이터를 AE 프로젝트의 유저 데이터와 연결하려면 AppsFlyer SDK에서 AE 프로젝트의 계정 ID와 게스트 ID를 전송해야 합니다. 다음은 클라이언트 SDK의 설정 방법입니다.

방안 1(자동 통합):

팁

연동한 AE SDK 버전이 2.8.0~2.8.1이면 이 방안을 바로 사용할 수 있습니다

연동한 AE SDK 버전이 2.8.2 이상이면 서드파티 데이터 플러그인도 설치해야 합니다

이 방안은 자동 통합 방안입니다. AE 클라이언트 SDK를 초기화한 후 다음 코드를 호출하여 활성화하십시오. 자세한 내용은 Android SDK 서드파티 데이터 및 iOS SDK 서드파티 데이터를 참고하십시오

// AE SDK 초기화
ThinkingAnalyticsSDK instance = ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID, TA_SERVER_URL);

// AE SDK의 AppsFlyer ID 연결 기능 활성화
instance.enableThirdPartySharing(TDThirdPartyShareType.TD_APPS_FLYER);

// setCustomerUserId()로 게스트 ID를 한 번 더 설정할 것을 강력히 권장합니다
String distinctId = instance.getDistinctId();
AppsFlyerLib.getInstance().setCustomerUserId(distinctId);

// AppsFlyer SDK 초기화
AppsFlyerLib.getInstance().init("appid", null, this);
AppsFlyerLib.getInstance().start(this);

// AE SDK의 login을 호출하여 계정 ID를 설정한 후 AF SDK에 데이터를 다시 동기화해야 함
instance.login("account_id");
instance.enableThirdPartySharing(TDThirdPartyShareType.TD_APPS_FLYER);

AE SDK의 login() 메서드나 identify() 메서드를 호출한 경우 enableThirdPartySharing()을 다시 호출하여 데이터를 동기화해야 합니다.

참고: AppsFlyer SDK의 setAdditionalData() 메서드도 호출해야 하는 경우, 이 메서드를 여러 번 호출하면 이전 파라미터를 덮어쓰므로 파라미터를 AE SDK에 전달할 수 있습니다. AE SDK가 내부에서 파라미터를 병합합니다.

Map<String, Object> additionalData = new HashMap<>();
additionalData.put("af_test_key1", "test1");
additionalData.put("af_test_key2", "test2");
instance.enableThirdPartySharing(
TDThirdPartyShareType.TD_APPS_FLYER,
additionalData
);

이 방안은 내부에서 AppsFlyer의 setAdditionalData() 메서드를 자동으로 호출하여 AE 프로젝트의 게스트 ID와 계정 ID를 전달하는 방식으로 동작합니다.

방안 2(수동 통합):

수동 통합 방안에서는 AppsFlyer SDK에서 setAdditionalData로 AE 프로젝트의 게스트 ID와 계정 ID를 설정해야 합니다. 다음은 Java 코드 예시입니다:

// AE SDK 초기화
ThinkingAnalyticsSDK instance = ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID, TA_SERVER_URL);

// AE의 게스트 ID 가져오기(AE의 #distinct_id에 해당)
String distinctId = instance.getDistinctId();

// setAdditionalData()로 게스트 ID를 AF SDK에 설정
HashMap<String,Object> CustomDataMap = new HashMap<>();
CustomDataMap.put("ta_distinct_id",distinctId);
AppsFlyerLib.getInstance().setAdditionalData(CustomDataMap);

// setCustomerUserId()로 게스트 ID를 한 번 더 설정할 것을 강력히 권장합니다
AppsFlyerLib.getInstance().setCustomerUserId(distinctId);

// AppsFlyer SDK 초기화
AppsFlyerLib.getInstance().init("appid", null, this);
AppsFlyerLib.getInstance().start(this);
...

// AE SDK의 login을 호출하여 계정 ID를 설정한 후 AF SDK에 데이터를 다시 동기화해야 함
String accountId = "your_account_id";
instance.login(accountId);
HashMap<String,Object> CustomDataMap = new HashMap<>();
CustomDataMap.put("ta_distinct_id", distinctId);
CustomDataMap.put("ta_account_id",accountId);
AppsFlyerLib.getInstance().setAdditionalData(CustomDataMap);

위와 같이 설정하면 콜백 데이터의 custom_data에 ta_distinct_id, ta_account_id 두 필드가 포함되며, customer_user_id는 게스트 ID와 같아집니다.

참고: 제품화된 설정 방법으로 AppsFlyer Push API 데이터를 연동하는 경우 연결 필드에 다음과 같이 입력해야 합니다:

  • 계정 ID 연관 필드: custom_data.ta_account_id
  • 게스트 ID 연관 필드: customer_user_id,custom_data.ta_distinct_id

2.2 콜백 주소 설정​

이어서 관리자 계정으로 AppsFlyer 백엔드에 로그인하여 Integration - API Access에서 Push API 부분을 찾아 다음과 같이 콜백 주소를 설정하십시오:

  • 콜백 API 버전(Push API Version)

    • 2.0 버전을 선택하십시오
  • HTTP 요청 메서드(HTTP method)

    • AE 시스템은 POST와 GET 방식의 콜백을 모두 지원하며, POST 방식을 선택할 것을 권장합니다
  • 엔드포인트 주소(Endpoint URL)

    • ThinkingAI 담당자가 데이터 수신용 엔드포인트 주소를 제공합니다
  • 이벤트 메시지 타입(Event Messages)

    • 최소한 활성화(Install)와 활성화 인앱 이벤트(Install in-app events)는 선택해야 합니다. 그 밖에 콜백할 이벤트 데이터가 있으면 필요에 따라 체크하십시오
  • 콜백 필드(Message Fields)

    • 메시지 필드에는 최소한 다음 정보가 포함되어야 합니다:

      • 모바일 어트리뷰션 관련 필드: media_source, channel, af_adset, af_ad 등
      • 유저 식별 ID 관련 필드: custom_data, customer_user_id, event_value 등
      • 이벤트 속성 또는 유저 속성으로 사용할 필드
      • 이벤트 관련 필드: event_time_selected_timezone
  • 콜백할 인앱 이벤트(In-app events)

    • 필요에 따라 콜백할 이벤트를 선택합니다(예: 클라이언트에서 전송한 ta_registration 이벤트)
경고

Facebook 데이터가 필요한 경우 AF 백엔드의 Facebook 채널 설정에서 Facebook 데이터 사용 약관(Terms of Service)에 동의해야 합니다. 동의하지 않으면 Facebook의 유저 수준 데이터를 가져올 수 없습니다.

2.3 데이터 저장​

2.3.1 유저 식별 규칙​

앞서 클라이언트 SDK에서 설정한 유저 식별 필드의 로직에 따라, Push API가 콜백한 유저 단위 데이터가 AE 프로젝트의 해당 유저와 연결될 수 있도록 대응하는 유저 식별 규칙을 정해야 합니다.

기본적으로 콜백 데이터에서 다음 규칙에 따라 유저 식별 필드를 찾습니다:

  • Step 1: custom_data 필드에 ta_account_id / ta_distinct_id, 즉 setAdditionalData()로 설정한 필드가 포함되어 있는지 확인합니다
  • Step 2: event_value 필드에 ta_account_id / ta_distinct_id, 즉 AppsFlyer 커스텀 이벤트에서 설정한 필드가 포함되어 있는지 확인합니다
  • Step 3: 이벤트가 Install 이벤트(event_name: install)이면 customer_user_id 필드를 확인하고, 값이 있으면 customer_user_id를 #distinct_id로 사용합니다. 이는 setCustomerUserId()로 설정한 필드입니다

각 단계에서 유효한 ID를 하나라도 가져오면 이후 단계의 확인을 중지합니다. 3단계를 모두 확인한 후에도 유효한 유저 ID를 가져오지 못하면, 기본적으로 해당 데이터는 유효하지 않은 데이터로 간주되어 바로 폐기됩니다. 이러한 데이터를 보존하려면 ThinkingAI 담당자에게 설정을 요청하십시오. 이러한 데이터는 이벤트 테이블에 기록되고 게스트 ID는 고정값 "without_id"가 되며, 이후의 유저 속성 저장은 진행되지 않습니다

설정한 유저 식별 필드가 위와 다르면 데이터 연동 설정 정보 템플릿에 기록하십시오.

2.3.2 데이터 저장 규칙​

기본적으로 콜백 데이터는 이벤트 데이터로 기록되지 않습니다. 이벤트 데이터로 기록하도록 설정하면 수신한 모든 이벤트가 이벤트 데이터로 기록되며, 이벤트 데이터의 저장 규칙은 다음과 같습니다:

  • 유저 식별 규칙에 따라 이벤트 데이터를 해당 AE 유저에 귀속합니다
  • 데이터의 event_time_selected_timezone 필드에서 시간과 시간대 정보를 가져와 시간은 #event_time으로, 시간대는 #zone_offset으로 기록합니다. 이 필드가 비어 있으면 event_time을 #event_time으로 사용하고 시간대 #zone_offset은 0으로 설정됩니다
  • 데이터 이벤트 이름은 해당 이벤트의 AppsFlyer에서의 이벤트 이름입니다
  • 나머지 필드는 모두 저장됩니다

2.3.3 유저 속성 저장 설정​

기본적으로 데이터에서 다음 네 필드의 값을 읽어 유저 속성으로 설정합니다:

AppsFlyer 필드AE 표준화 필드설명
media_sourcete_ads_object.media_source채널
campaignte_ads_object.campaign_name캠페인
af_adsette_ads_object.ad_group_name광고 그룹
af_adte_ads_object.ad_name광고

이 밖에도 저장할 유저 속성과 그 저장 규칙(user_set 또는 user_setOnce 중 무엇을 사용할지)을 직접 지정할 수 있습니다. 유저 속성을 커스텀하려면 데이터 연동 설정 정보 템플릿에 기록하십시오.

2.4 데이터 연동 설정 정보 템플릿​

위 문서를 읽은 후 다음 정보 템플릿을 작성하여 ThinkingAI의 고객 성공 매니저에게 보내는 것을 권장합니다:

인터페이스: AppsFlyer Push API
--------
회사 이름: XXX
AE 프로젝트 환경: (SAAS/프라이빗 배포)
AE 프로젝트 이름: XXX
AE 프로젝트 APP ID: XXX
데이터 수신 주소 push_url: XXX
---------
유저 식별 규칙: XXX를 게스트 ID/계정 ID로 사용(입력하지 않으면 기본값)
이벤트 저장 여부: 아니요/예
유저 식별 ID를 가져오지 못한 데이터 보존 여부: 아니요/예(이벤트를 저장하는 경우에만 유효)
저장할 유저 속성: XXX, XXX(입력하지 않으면 기본값)

3. Pull API 유저 수준 데이터​

인터페이스 기본 정보

인터페이스명API 타입제품화데이터 세분화어트리뷰션 데이터비용 데이터수익 데이터노출 데이터클릭 데이터전환 데이터
Pull API Raw Data풀 방식아니요유저 수준예예예예

Pull API Raw Data는 풀 방식의 유저 수준 데이터 인터페이스로, 유저 단위의 과거 데이터를 수집하는 데 매우 적합합니다.

3.1 연동 전 준비 작업​

3.1.1 API Token 가져오기​

관리자 계정으로 로그인한 후 AppsFlyer 사이드바 메뉴에서 API Access를 찾아 Pull API Raw Data에 사용할 V2.0 API Token을 가져오십시오.

3.1.2 App ID 가져오기​

AppsFlyer 백엔드의 My Apps에서 앱의 App ID를 찾을 수 있습니다. Android는 com.으로 시작하며(예: com.demoapp.ta), iOS는 id로 시작합니다(예: id12345678)

3.1.3 클라이언트 SDK 설정​

Pull API 유저 수준 데이터를 AE 프로젝트의 유저 데이터와 연결하려면 AppsFlyer SDK에서 AE 프로젝트의 계정 ID와 게스트 ID를 전송해야 합니다. 다음은 클라이언트 SDK의 설정 방법입니다.

방안 1(자동 통합):

팁

연동한 AE SDK 버전이 2.8.0~2.8.1이면 이 방안을 바로 사용할 수 있습니다

연동한 AE SDK 버전이 2.8.2 이상이면 서드파티 데이터 플러그인도 설치해야 합니다

이 방안은 자동 통합 방안입니다. AE 클라이언트 SDK를 초기화한 후 다음 코드를 호출하여 활성화하십시오. 자세한 내용은 Android SDK 서드파티 데이터 및 iOS SDK 서드파티 데이터를 참고하십시오

// AE SDK 초기화
ThinkingAnalyticsSDK instance = ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID, TA_SERVER_URL);
// AppsFlyer id 연결 활성화
instance.enableThirdPartySharing(TDThirdPartyShareType.TD_APPS_FLYER);

// AppsFlyer SDK 초기화
AppsFlyerLib.getInstance().init("appid", null, this);
AppsFlyerLib.getInstance().start(this);

// setCustomerUserId()로 게스트 ID를 한 번 더 설정할 것을 강력히 권장합니다
String distinctId = instance.getDistinctId();
AppsFlyerLib.getInstance().setCustomerUserId(distinctId);

// login을 호출하여 계정 ID를 설정한 후 데이터를 다시 동기화해야 함(선택 사항)
instance.login("account_id");
instance.enableThirdPartySharing(TDThirdPartyShareType.TD_APPS_FLYER);

AE SDK의 login() 메서드나 identify() 메서드를 호출한 경우 enableThirdPartySharing()을 다시 호출하여 데이터를 동기화해야 합니다.

참고: AppsFlyer SDK의 setAdditionalData() 메서드도 호출해야 하는 경우, 이 메서드를 여러 번 호출하면 이전 파라미터를 덮어쓰므로 파라미터를 AE SDK에 전달할 수 있습니다. AE SDK가 내부에서 파라미터를 병합합니다.

Map<String, Object> additionalData = new HashMap<>();
additionalData.put("af_test_key1", "test1");
additionalData.put("af_test_key2", "test2");
instance.enableThirdPartySharing(
TDThirdPartyShareType.TD_APPS_FLYER,
additionalData
);

이 방안은 내부에서 AppsFlyer의 setAdditionalData() 메서드를 자동으로 호출하여 AE 프로젝트의 게스트 ID와 계정 ID를 전달하는 방식으로 동작합니다.

방안 2(수동 통합):

수동 통합 방안에서는 AppsFlyer SDK에서 setAdditionalData로 AE 프로젝트의 게스트 ID와 계정 ID를 설정해야 합니다. 다음은 Java 코드 예시입니다:

// AE SDK 초기화
ThinkingAnalyticsSDK instance = ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID, TA_SERVER_URL);

// AE의 게스트 ID 가져오기(AE의 #distinct_id에 해당)
String distinctId = instance.getDistinctId();
// 계정 ID(또는 캐릭터 ID), AE의 #account_id에 해당
String accountId = "your_account_id";

// 활성화 시점에 배치
HashMap<String,Object> CustomDataMap = new HashMap<>();
CustomDataMap.put("ta_distinct_id",distinctId);
AppsFlyerLib.getInstance().setAdditionalData(CustomDataMap);

// setCustomerUserId()로 게스트 ID를 한 번 더 설정할 것을 강력히 권장합니다
AppsFlyerLib.getInstance().setCustomerUserId(distinctId);
...

// 회원가입 시점에 배치
HashMap<String,Object> CustomDataMap = new HashMap<>();
CustomDataMap.put("ta_distinct_id", distinctId);
CustomDataMap.put("ta_account_id",accountId);
AppsFlyerLib.getInstance().setAdditionalData(CustomDataMap);

위와 같이 설정하면 콜백 데이터의 custom_data에 ta_distinct_id, ta_account_id 두 필드가 포함되며, customer_user_id는 게스트 ID와 같아집니다.

3.2 포함 필드​

기본적으로 Pull API Raw Data는 다음 데이터의 수집을 지원합니다:

필드한국어 이름기본 수집타입
Attributed Touch Type어트리뷰션 타입(노출, 클릭)예
Attributed Touch Time어트리뷰션 시간예시간
Install Time활성화 시간예시간
Event Time이벤트 시간예시간
Event Name이벤트 이름예
Event Value이벤트 값예
Event Revenue이벤트 수익예숫자
Event Revenue Currency이벤트 수익 통화 타입예
Event Revenue USD이벤트 수익(USD)예숫자
Event Source이벤트 소스예
Is Receipt Validated영수증 검증 활성화 여부
Partner파트너예
Media Source미디어 채널예
Channel하위 채널예
Keywords키워드예
Campaign캠페인 이름예
Campaign ID캠페인 ID예
Adset광고 그룹 이름예
Adset ID광고 그룹 ID예
Ad광고 소재 이름예
Ad ID광고 소재 ID예
Ad Type광고 유형예
Site ID사이트 ID예
Sub Site ID하위 사이트 ID예
Sub Param [1-5]하위 파라미터 [1-5]
Cost Model비용 모델 (CPC/CPI/CPM/Other)예
Cost Value비용 값예숫자
Cost Currency비용 통화 타입예
Contributor [1-3] Partner기여자 [1-3] 파트너
Contributor [1-3] Media Source기여자 [1-3] 미디어 채널
Contributor [1-3] Campaign기여자 [1-3] 캠페인
Contributor [1-3] Touch Type기여자 [1-3] 어트리뷰션 타입
Contributor [1-3] Touch Time기여자 [1-3] 어트리뷰션 시간시간
Region지역예
Country Code국가 코드예
State주/성예
City도시예
Postal Code우편번호
DMADMA 코드
IPIP 주소예
WIFIWI-FI 사용 여부예
Operator이동통신사예
Carrier휴대폰 통신사예
Language언어예
AppsFlyer IDAppsFlyer ID예
Advertising IDAdvertising ID예
IDFAIDFA예
Android IDAndroid ID예
Customer User IDCustomer User ID예
IMEIIMEI예
IDFVIDFV예
Platform플랫폼예
Device Type디바이스 타입예
OS Version운영 체제예
App Version앱 버전예
SDK VersionSDK 버전예
App IDApp ID예
App Name앱 이름예
Bundle IDBundle ID예
Is Retargeting리타겟팅 여부예
Retargeting Conversion Type리타겟팅 전환 타입예
Attribution Lookback어트리뷰션 Lookback
Reengagement Window재참여 윈도우
Is Primary Attribution주 어트리뷰션 여부
User Agent유저 에이전트
HTTP ReferrerHTTP Referrer
Original URL원본 URL예

3.3 인터페이스 파라미터​

  • 시간:

    • 일 단위로 데이터를 수집합니다(최근 90일의 데이터만 수집 가능)
    • 기본 데이터 시간대는 UTC 시간입니다

3.4 데이터 저장 규칙​

Pull API 유저 수준 데이터 인터페이스는 여러 종류의 데이터를 저장하며, 데이터별 처리 규칙은 다음과 같습니다:

  • Installs 데이터

    • user acquisition(UA)만 포함하는 Installs 데이터와 Organic Installs 데이터를 수집합니다
    • 데이터는 기본적으로 유저 속성 형태로 기록됩니다
    • 이벤트 형태로 기록하는 것도 지원하며, 이벤트 이름은 af_install입니다
    • 유저 식별 필드 설정에 따라 유저 식별 필드를 결정합니다. 유저 식별 규칙을 설정하지 않으면 기본적으로 데이터의 customer_user_id를 게스트 ID로 사용합니다. 유저 식별 필드를 가져오지 못한 데이터는 폐기됩니다.
    • 모든 필드가 저장됩니다
  • Ad Revenue

    • Attributed ad revenue와 Organic ad revenue를 수집합니다. 이 중 Attributed ad revenue는 user acquisition(UA)과 retargeting 데이터를 함께 수집합니다
    • 데이터는 이벤트 형태로 기록되며, 이벤트 이름은 af_ad_revenue_raw입니다
    • 데이터의 Event Time, 즉 이벤트 발생 시각을 이벤트의 #event_time으로 사용합니다
    • 유저 식별 필드 설정에 따라 유저 식별 필드를 결정합니다. 유저 식별 규칙을 설정하지 않으면 기본적으로 데이터의 customer_user_id를 게스트 ID로 사용합니다. 유저 식별 필드를 가져오지 못한 데이터는 폐기됩니다.
    • 모든 필드가 저장됩니다

3.5 데이터 연동 설정 정보 템플릿​

위 문서를 읽은 후 다음 정보 템플릿을 작성하여 ThinkingAI의 고객 성공 매니저에게 보내는 것을 권장합니다:

인터페이스: AppsFlyer Pull API Raw Data
--------
회사 이름: XXX
AE 프로젝트 환경: (SAAS/프라이빗 배포)
AE 프로젝트 이름: XXX
AE 프로젝트 APP ID: XXX
데이터 수신 주소 push_url: XXX
---------
AppsFlyer API Token: xxxxxxxx
AppsFlyer App ID: xxxxxxxx
---------
유저 식별 규칙: XXX를 게스트 ID/계정 ID로 사용(입력하지 않으면 기본값)
연동할 데이터: Install, Ad Revenue
유저 속성에 기록할 Install 이벤트의 속성: xxx, xxx(입력하지 않으면 기본값)

과거 데이터 수집 기간: yyyy/mm/dd - yyyy/mm/dd(최근 90일의 데이터만 수집 가능)
정기 수집: 매일 X시에 전날 데이터 수집

4. Pull API 집계 지표 인터페이스​

인터페이스 기본 정보

인터페이스명API 타입제품화데이터 세분화어트리뷰션 데이터비용 데이터수익 데이터노출 데이터클릭 데이터전환 데이터
Pull API 집계 지표풀 방식아니요집계 데이터예예예예예

AppsFlyer Pull API 집계 지표 인터페이스는 다양한 타입의 집계 지표 데이터를 제공하며, 현재 AE 시스템이 지원하는 데이터 타입은 Partners (by date)와 Geo (by date)입니다.

4.1 연동 전 준비 작업​

4.1.1 API Token 가져오기​

관리자 계정으로 로그인한 후 AppsFlyer 사이드바 메뉴에서 API Access를 찾아 Pull API에 사용할 V2.0 API Token을 가져오십시오.

4.1.2 App ID 가져오기​

AppsFlyer 백엔드의 My Apps에서 앱의 App ID를 찾을 수 있습니다. Android는 com.으로 시작하며(예: com.demoapp.ta), iOS는 id로 시작합니다(예: id12345678)

4.2 포함 필드​

4.2.1 Partner (by date) 데이터​

이 절에서는 Partner (by date) 타입의 데이터를 소개합니다. 이 리포트는 LTV 데이터를 기반으로 하며, 지정한 기간에 설치한 신규 유저의 이후 데이터를 수집합니다.

Facebook의 데이터 형식은 다른 미디어 채널과 다르므로 AE 시스템은 Facebook 데이터만 포함한 데이터와 전체 플랫폼 데이터를 각각 수집합니다. 다음은 Partner (by date)로 가져올 수 있는 필드입니다:

필드 이름저장명Facebook 데이터만전체 플랫폼 데이터
Date#event_time✓✓
Agency/PMD (af_prt)agency_pmd_af_prt✓✓
Media Source (pid)media_source_pid✓✓
Campaign

campaign_name(Facebook)

campaign_c(전체 플랫폼)

✓✓
Campaign IDcampaign_id

✓

Adgroup IDadgroup_id✓
Adgroup Nameadgroup_name✓
Adset IDadset_id✓
Adset Nameadset_name✓
ARPUarpu✓✓
Average eCPIaverage_ecpi✓✓
Clicksclicks✓✓
Conversion Rateconversion_rate✓✓
CTRctr✓✓
{your event name}(Unique users){your_event_name}_unique_users✓✓
{your event name} (Event counter){your_event_name}_event_counter✓✓
{your event name} (Sales in XXX){your_event_name}_sales_in_usd✓✓
Impressionsimpressions✓✓
Installsinstalls✓✓
Loyal Usersloyal_users✓✓
Loyal Users/Installsloyal_users_installs✓✓
ROIroi✓✓
Sessionssessions✓✓
Total Costtotal_cost✓✓
Total revenuetotal_revenue

✓

✓

4.2.2 Geo (by date) 데이터​

이 절에서는 Geo (by date) 타입의 데이터를 소개합니다. 이 리포트는 LTV 데이터를 기반으로 하며, 지정한 기간에 설치한 신규 유저의 이후 데이터를 수집합니다.

Facebook의 데이터 형식은 다른 미디어 채널과 다르므로 AE 시스템은 Facebook 데이터만 포함한 데이터와 전체 플랫폼 데이터를 각각 수집합니다. 다음은 Geo (by date)로 가져올 수 있는 필드입니다:

필드 이름저장명Facebook 데이터만전체 플랫폼 데이터
Countrycountry✓✓
Date#event_time✓✓
Agency/PMD (af_prt)agency_pmd_af_prt✓✓
Media Source (pid)media_source_pid✓✓

Campaign

campaign_name(Facebook)

campaign_c(전체 플랫폼)

✓

✓
Campaign IDcampaign_id✓
Adgroupadgroup_id✓
Adgroup Nameadgroup_name✓
Adset IDadset_id✓
Adset Nameadset_name✓
ARPUarpu✓✓
Clicksclicks✓✓
Conversion Rateconversion_rate✓✓
{your event name}(Unique users){your_event_name}_unique_users✓✓
{your event name} (Event counter){your_event_name}_event_counter✓✓
{your event name} (Sales in XXX){your_event_name}_sales_in_usd✓✓
Installsinstalls✓✓
Loyal Usersloyal_users✓✓

Sessions

sessions✓✓

Total revenue

total_revenue

✓

✓

4.3 인터페이스 파라미터​

  • 시간:

    • 일 단위로 데이터를 수집합니다
    • 기본 데이터 시간대는 UTC 시간입니다

4.4 데이터 저장 규칙​

기본적으로 수집한 데이터는 이벤트 형태로 AE 프로젝트에 기록됩니다:

  • Pull API 집계 지표 인터페이스는 집계 데이터를 반환하므로 고정값을 유저 식별자로 사용합니다. 모든 데이터가 하나의 가상 유저에 연결된다고 보면 됩니다

  • 데이터의 Date 필드, 즉 유저의 설치 날짜를 이벤트의 #event_time으로 사용합니다

  • 데이터의 이벤트 이름은 다음과 같습니다:

    • Partner (by date)

      • appsflyer_facebook_partner_by_date(Facebook 데이터)
      • appsflyer_partner_by_date(전체 플랫폼 데이터)
    • Geo (by date)

      • appsflyer_facebook_geo_by_date(Facebook 데이터)
      • appsflyer_geo_by_date(전체 플랫폼 데이터)
  • 나머지 필드는 모두 저장됩니다

4.5 데이터 연동 설정 정보 템플릿​

위 문서를 읽은 후 다음 정보 템플릿을 작성하여 ThinkingAI의 고객 성공 매니저에게 보내는 것을 권장합니다:

인터페이스: AppsFlyer Pull API 집계 데이터 인터페이스
--------
회사 이름: XXX
AE 프로젝트 환경: (SAAS/프라이빗 배포)
AE 프로젝트 이름: XXX
AE 프로젝트 APP ID: XXX
데이터 수신 주소 push_url: XXX
---------
AppsFlyer API Token: xxxxxxxx
AppsFlyer App ID: xxxxxxxx
---------
데이터 수집 시간대: XXX(기본값은 UTC 시간)
데이터 수집 타입: Partner (by date)/Geo (by date)

과거 데이터 수집 기간: yyyy/mm/dd - yyyy/mm/dd
정기 수집: 매일 X시에 전날 데이터 수집

5. Master API​

인터페이스 기본 정보

인터페이스명API 타입제품화데이터 세분화어트리뷰션 데이터비용 데이터수익 데이터노출 데이터클릭 데이터전환 데이터
Master API풀 방식아니요집계 데이터예예예예

Master API는 분석 차원과 집계 지표를 커스텀할 수 있어 Pull API 집계 지표 인터페이스보다 유연합니다.

5.1 연동 전 준비 작업​

5.1.1 API Token 가져오기​

관리자 계정으로 로그인한 후 AppsFlyer 사이드바 메뉴에서 API Access를 찾아 Master API에 사용할 V2.0 API Token을 가져오십시오.

5.1.2 App ID 가져오기​

AppsFlyer 백엔드의 My Apps에서 앱의 App ID를 찾을 수 있습니다. Android는 com.으로 시작하며(예: com.demoapp.ta), iOS는 id로 시작합니다(예: id12345678)

5.2 포함 필드​

Master API에는 다양한 타입의 지표가 포함되어 있으며, 그중 자주 사용하는 지표 대분류는 LTV KPIs, Retention KPIs 및 Cohort KPIs입니다. Cohort KPIs가 지원하는 분석 차원은 다른 지표 대분류보다 좁으므로 AE 시스템은 Cohort KPIs를 포함하는 데이터와 포함하지 않는 데이터를 나누어 수집합니다. 다음은 두 종류의 데이터에 포함된 필드입니다:

  • 분석 차원
필드 이름af_groupings저장명Cohort KPIs 제외 데이터Cohort KPIs 포함 데이터
App IDapp_idapp_id✓✓
Media Sourcepidmedia_source✓✓
Agencyaf_prtpartner✓
Campaignccampaign✓✓
Adsetaf_adsetadset✓
Adaf_adad✓
Channelaf_channelchannel✓
Publisher IDaf_siteidpublisher_id_af_siteid✓✓
Keywordsaf_keywordskeywords
Is Primary Attributionis_primaryis_primary_attribution
Campaign IDaf_c_idcampaign_id
Adset IDaf_adset_idadset_id
Ad IDaf_ad_idad_id
Install Timeinstall_timeinstall_time✓✓
Touch Typeattributed_touch_typetouch_type✓
GEOgeogeo✓✓
  • 지표 필드

다음은 Master API에서 자주 사용하는 일부 필드입니다. 전체 필드는 AppsFlyer 공식 문서에서 확인할 수 있습니다:

팁

새로 추가한 지표 필드는 Cohort KPIs 제외 데이터에 추가됩니다. 지표를 추가하려면 데이터 연동 설정 정보 템플릿에 명시하십시오

저장명설명Cohort KPIs 제외 데이터Cohort KPIs 포함 데이터
impressions노출 수✓✓
clicks클릭 수✓✓
installs설치 수✓✓
cr전환율✓✓
sessionsSession 수✓✓
loyal_users충성 유저 설치 수✓✓
loyal_users_rate충성 유저 비율✓✓
cost총비용✓✓
revenue총수익✓✓
roiROI✓✓
arpu_ltv평균 LTV✓✓
average_ecpi평균 eCPI✓✓
uninstalls삭제 수✓✓
uninstalls_rate삭제율✓✓

retention_day_[x]

N일 차 잔존 유저 수(N = 0,1,2,3,4,5,6,7,15,30)✓
retention_rate_day_[x]N일 차 잔존율(N = 0,1,2,3,4,5,6,7,15,30)✓

cohort_day_[x]_total_revenue_per_user

N일 차 누적 수익(N = 1,2,3,4,5,6,7,15,30,40,50,60,70,80,90)✓

cohort_day_[x]_revenue_per_user

N일 차 당일 수익(N = 1,2,3,4,5,6,7,15,30,40,50,60,70,80,90)✓
cohort_[x]_days_total_revenue_per_userN일 차 누적 수익과 동일(N = 1,2,3,4,5,6,7,15,30,40,50,60,70,80,90)✓

5.3 인터페이스 파라미터​

  • 시간:

    • 일 단위로 데이터를 수집합니다
    • 기본 데이터 시간대는 UTC 시간입니다

5.4 데이터 저장 규칙​

기본적으로 수집한 데이터는 이벤트 형태로 AE 프로젝트에 기록됩니다:

  • Master API 집계 지표 인터페이스는 집계 데이터를 반환하므로 고정값을 유저 식별자로 사용합니다. 모든 데이터가 하나의 가상 유저에 연결된다고 보면 됩니다

  • 데이터의 install_time 필드, 즉 유저의 설치 시간을 이벤트의 #event_time으로 사용합니다

  • 데이터의 이벤트 이름은 다음과 같습니다:

    • Cohort KPIs 포함 데이터
      • appsflyer_master_ltv_act_cohort_kpis
    • Cohort KPIs 제외 데이터
      • appsflyer_master_ltv_act_retention_kpis
  • 나머지 필드는 모두 저장됩니다

5.5 데이터 연동 설정 정보 템플릿​

위 문서를 읽은 후 다음 정보 템플릿을 작성하여 ThinkingAI의 고객 성공 매니저에게 보내는 것을 권장합니다:

수집 데이터 인터페이스: AppsFlyer Master API 집계 데이터 인터페이스
--------
회사 이름: XXX
AE 프로젝트 환경: (SAAS/프라이빗 배포)
AE 프로젝트 이름: XXX
AE 프로젝트 APP ID: XXX
데이터 수신 주소 push_url: XXX
---------
AppsFlyer API Token: xxxxxxxx
AppsFlyer App ID: xxxxxxxx
---------
데이터 수집 시간대: XXX(기본값은 UTC 시간)
추가 지표: XXX, XXX(이벤트 관련 activity 지표인 경우 지표 데이터를 수집할 이벤트 이름을 지정할 수 있음. 추가 지표는 Cohort KPIs 제외 데이터, 즉 appsflyer_master_ltv_act_retention_kpis 이벤트에 추가됨)

과거 데이터 수집 기간: yyyy/mm/dd - yyyy/mm/dd
정기 수집: 매일 X시에 전날 데이터 수집

6. Cohort API​

인터페이스 기본 정보

인터페이스명API 타입제품화데이터 세분화어트리뷰션 데이터비용 데이터수익 데이터노출 데이터클릭 데이터전환 데이터
Cohort API풀 방식아니요집계 데이터예예예

Cohort API도 집계 데이터 API입니다. 다른 집계 데이터 API와 비교하면 데이터 지표의 형태가 AppsFlyer의 Cohort Dashboard 및 AE 시스템의 리텐션 분석 모델의 데이터 결과, 즉 N일차(또는 누적 N일차) 지표와 더 유사합니다.

6.1 연동 전 준비 작업​

6.1.1 API Token 가져오기​

관리자 계정으로 로그인한 후 AppsFlyer 사이드바 메뉴에서 API Access를 찾아 Cohort API에 사용할 V2.0 API Token을 가져오십시오.

6.1.2 App ID 가져오기​

AppsFlyer 백엔드의 My Apps에서 앱의 App ID를 찾을 수 있습니다. Android는 com.으로 시작하며(예: com.demoapp.ta), iOS는 id로 시작합니다(예: id12345678)

6.2 포함 필드​

  • 분석 차원

Cohort API는 최대 7개의 분석 차원을 지원합니다. 다음은 기본 분석 차원이며, 조정이 필요하면 데이터 연동 설정 정보 템플릿에 명시하십시오:

필드 이름저장명기본값
Adaf_ad✓
Ad IDaf_ad_id
Campaignc✓
Campaign IDaf_c_id
Channelaf_channel✓
Media Sourcepid✓
Sub Param 1af_sub1
Keywordsaf_keywords
Agencyaf_prt
Conversion Type (1)cohort_type
Site IDsite_id
Attributed Touch Type (3)attributed_touch_type
Adsetaf_adset✓
Adset IDaf_adset_id
Countrygeo
Datedate✓
경고

Facebook(Meta) 데이터를 수집해야 하는 경우 분석 차원에서 af_channel과 geo를 동시에 선택하지 마십시오. 동시에 선택하면 Facebook의 비용 데이터를 가져올 수 없습니다

  • 지표 필드

Cohort API는 기본 지표 3종과 추가 지표 1개를 반환합니다. 다음은 기본 지표 필드이며, 조정이 필요하면 데이터 연동 설정 정보 템플릿에 명시하십시오:

지표 타입저장명설명기본값
users(필수)users코호트 총유저 수(시간 범위와 무관)✓
ecpi(필수)ecpi코호트 총 eCPI(시간 범위와 무관)✓
cost(필수)cost코호트 총비용(시간 범위와 무관)✓

"event_name"(커스텀 이벤트)

"event_name"_unique_users_day_NN일차 커스텀 이벤트 트리거 유저 수
"event_name"_count_day_NN일차 커스텀 이벤트 완료 수
"event_name"_rate_day_NN일차 커스텀 이벤트 완료율
"event_name"_sum_day_NN일차 커스텀 이벤트로 발생한 수익 금액

revenue

revenue_count_day_NN일차 수익 이벤트 트리거 수✓
revenue_sum_day_NN일차 수익 금액✓
ROASroas_rate_day_NN일차 ROAS
roiroi_rate_day_NN일차 ROI

sessions

sessions_unique_users_day_NN일차 Session 트리거 유저 수(누적 지표인 경우 이 데이터는 반환되지 않음)
sessions_count_day_NN일차 Session 수
sessions_rate_day_NN일차 잔존율(Session 트리거 유저 수 / 코호트 총유저 수)
uninstallsuninstalls_count_day_NN일차 삭제 수
uninstalls_rate_day_NN일차 삭제율

참고: 위 표의 저장명 열에서 N은 N일차 지표를 나타내며, 기본 값 범위는 0-30입니다

6.3 인터페이스 파라미터​

  • 시간:

    • 일 단위로 데이터를 수집합니다
    • 기본 데이터 시간대는 UTC 시간입니다
    • 데이터를 일별 독립 데이터(당일 지표 표시)로 할지, 누적 데이터(0일차부터 N일차까지 누적)로 할지 선택할 수 있습니다
    • 완전하지 않은 날(예: 계산 대상 N일차가 오늘인 경우)의 데이터 콜백을 허용할지 선택할 수 있습니다

6.4 데이터 저장 규칙​

기본적으로 수집한 데이터는 이벤트 형태로 AE 프로젝트에 기록됩니다:

  • Cohort API 집계 지표 인터페이스는 집계 데이터를 반환하므로 고정값을 유저 식별자로 사용합니다. 모든 데이터가 하나의 가상 유저에 연결되어 있다고 보면 됩니다
  • 데이터의 date 필드, 즉 유저의 어트리뷰션/전환 시간을 이벤트의 #event_time으로 사용합니다
  • 데이터 이벤트 이름은 appsflyer_cohort_api입니다
  • 나머지 필드는 모두 저장됩니다

6.5 데이터 연동 설정 정보 템플릿​

위 문서를 읽은 후 다음 정보 템플릿을 작성하여 ThinkingAI의 고객 성공 매니저에게 보내는 것을 권장합니다:

수집 데이터 인터페이스: AppsFlyer Cohort API 집계 데이터 인터페이스
--------
회사 이름: XXX
AE 프로젝트 환경: (SAAS/프라이빗 배포)
AE 프로젝트 이름: XXX
AE 프로젝트 APP ID: XXX
데이터 수신 주소 push_url: XXX
---------
AppsFlyer API Token: xxxxxxxx
AppsFlyer App ID: xxxxxxxx
---------
데이터 수집 시간대: XXX(기본값은 UTC 시간)
완전하지 않은 날의 데이터 허용 여부: 예/아니요(기본값 "예")
데이터의 시간 집계 타입: 당일/누적(기본값은 누적)

그룹 차원: XXX, XXX(기본값 date,pid,geo,c,af_adset,af_ad,af_channel)
지표 필드: XXX(기본값은 revenue, 하나만 설정 가능)

과거 데이터 수집 기간: yyyy/mm/dd - yyyy/mm/dd
정기 수집: 매일 X시에 이전 N일의 데이터 수집

7. Data Locker와 Cost ETL​

Data Locker는 AppsFlyer의 데이터 전송 저장 서비스로, 다양한 데이터를 AWS 또는 GCS 클라우드 스토리지로 전송하여 저장할 수 있습니다.

Cost ETL은 AppsFlyer의 비용 데이터 전송 저장 서비스로, 각 미디어 채널의 캠페인 비용 데이터를 AWS 또는 GCS 클라우드 스토리지로 전송하여 저장할 수 있습니다.

현재 AE 시스템은 AWS S3 및 GCS 데이터의 통합을 지원합니다. 전송 대상 클라우드 스토리지 타입에 따라 다음 문서를 확인하십시오:

8. 연동 테스트 및 통합 후 데이터 활용​

1. 연동 테스트​

1.1 Push API 인터페이스

데이터 관리 -> 유저 속성 관리 페이지에서 관련 어트리뷰션 데이터를 확인할 수 있으며, 관련 유저 속성이 있으면 통합에 성공한 것입니다.

AppsFlyer 콜백 필드AE 저장 후 유저 속성 이름데이터 타입
media_source#appsflyer_media_source텍스트
campaign#appsflyer_campaign텍스트
af_adset#appsflyer_adset텍스트
af_ad#appsflyer_ad텍스트

이벤트 테이블 저장을 활성화한 경우 데이터 관리 -> 이벤트 관리 페이지에서 관련 이벤트 데이터를 확인할 수 있으며, 이벤트 이름은 AppsFlyer에서 정의한 이벤트 이름과 같습니다.

1.2 Pull API 및 Master API 집계 데이터 인터페이스

데이터 관리 -> 이벤트 관리 페이지에서 관련 이벤트를 확인할 수 있으며, 관련 이벤트가 있으면 통합에 성공한 것입니다.

인터페이스리포트 이름AE 저장 후 이벤트 이름데이터 타입
Pull API전체 미디어 채널 광고 리포트-일별appsflyer_partner_by_date텍스트
Pull APIFacebook 광고 리포트-일별appsflyer_facebook_partner_by_date텍스트
Master APILTV, Activity, Retention 관련 KPIsappsflyer_master_ltv_act_retention_kpis텍스트
Master APILTV, Activity, Retention 및 Cohort 관련 KPIsappsflyer_master_ltv_act_retention_cohort_kpis텍스트

2. 데이터 활용​

2.1 어트리뷰션 정보를 중심으로 분석

2.2 채널, 광고 그룹, 캠페인, 광고 소재 차원별로 미디어 간 활성화, 비용, 수익, ROAS를 계산하여 비교

2.3 하나의 플랫폼에서 마케팅 데이터와 유저 행동 데이터를 함께 확인하여 여러 플랫폼을 오가는 작업 감소

2.4 데이터 연계 분석(예: 수익화, 기타 미디어 채널 데이터와 연결)

2.5 revenue / cost로 미디어 채널별 ROAS 계산

2.6 비자연 유저의 핵심 유저 행동(예: 결제 전의 특정 이벤트, 특정 핵심 콘텐츠의 리텐션)으로 해당 유저 그룹의 품질을 분석하여 분석에서 의사 결정까지 걸리는 시간 단축

2.7 이벤트 속성 통합 후 데이터 타입

AppsFlyer Pull API로 수집한 데이터의 이벤트 속성은 기본적으로 문자열 타입으로 연동됩니다. AE 시스템의 가상 속성 기능으로 문자열 타입 필드를 다른 타입으로 변환할 수 있습니다. 예:

  • install 속성을 숫자 타입으로 변환: "af_install_number"(데이터 타입은 숫자 선택)
  • total_cost 속성을 숫자 타입으로 변환: "af_total_cost_number"(데이터 타입은 숫자 선택)

9. 자주 묻는 질문​

AppsFlyer FAQ를 참고하십시오

이 문서가 도움이 되었나요?