menu
Is this helpful?

# AppsFlyer Pull Raw Data

::: Tip

플랫폼 데이터 통합을 통해 생성된 데이터는 클러스터의 데이터 소비량에 포함된다는 점을 유의하십시오.

:::

# 개요

API 이름

통합 유형

데이터 세분화

어트리뷰션

비용

수익

노출

클릭

전환

Pull API Raw Data

API

유저

Pull API Raw Data (opens new window)를 사용하면 일정 기간 동안 유저 레벨 데이터를 얻을 수 있습니다. 이 통합 계획은 실시간이 필요하지 않은 경우 유저 세부 데이터를 얻는 데 사용되며, 유저 단위의 과거 데이터를 얻는 데 매우 적합합니다.

# 통합 프로세스

  1. AppsFlyer 클라이언트 SDK (opens new window)와 TE SDK를 연결하고, AF SDK에서 TE의 유저 식별 ID를 설정합니다.
  2. AppsFlyer 백엔드에 로그인하여, V2.0 API 토큰과 App ID를 획득합니다.
  3. TE 백엔드에 로그인하여, 서드파티 통합 모듈로 이동한 후 'AppsFlyer Pull Raw Data' 계획을 추가하고 관련 설정을 완료합니다.
  4. TE 시스템이 데이터 수신 및 리포트 구축을 완료했는지 확인합니다.

# 클라이언트 SDK의 설치

AppsFlyer 데이터를 통합하기 위한 첫 번째 단계는 TE SDK와 AF SDK를 클라이언트 측에서 연결하는 것입니다. AF SDK 내에서 TE 시스템의 유저 식별 ID를 설정합니다.

# 1.1 방법1 (자동 통합)

TIP

만약 TE SDK의 버전이 2.8.0~2.8.1인 경우, 이 솔루션을 직접 사용할 수 있습니다. TE SDK의 버전이 2.8.2 이상인 경우, 서드파티 데이터 플러그인을 설치해야 합니다.

이 솔루션은 자동 통합 솔루션입니다. TE 클라이언트 SDK를 초기화한 후, 아래 코드를 호출하여 활성화하십시오.

자세한 사항은 Android SDK 연결 문서iOS SDK 연결 문서를 참조하십시오.

// TE 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 = ThinkingAnalyticsAPI.GetDistinctId();
AppsFlyerLib.getInstance().setcustomerUserId(distinctId);

// 로그인 및 계정 ID 설정 후, 데이터 동기화가 다시 필요합니다 (선택사항).
instance.login("account_id");
instance.enableThirdPartySharing(TDThirdPartyShareType.TD_APPS_FLYER);

TE SDK의 login() 메소드 또는 identify() 메소드를 호출한 경우, enableThirdPartySharing()를 다시 호출하여 데이터를 동기화해야 합니다.

주의: AppsFlyer SDK의 setAdditionalData() 메소드를 호출해야 하는 경우, 이 메소드는 여러 번 호출되어 이전 파라미터가 덮어쓰여집니다. 따라서 파라미터를 TE SDK에 전달하여 TE 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() 메소드를 호출하여 TE 프로젝트의 게스트 ID와 계정 ID를 전달하는 것입니다.

# 1.1 방법2(수동 통합)

수동 통합 솔루션에서는 AppsFlyer SDK에서 setAdditionalData를 사용하여 TE 프로젝트의 게스트 ID와 계정 ID를 설정해야 합니다. 아래는 Java의 코드 예시입니다:

// TE의 방문자 ID를 가져옵니다. TE에서는 #distinct_id에 해당합니다.
String distinctId = ThinkingAnalyticsAPI.GetDistinctId();
// 계정 ID (또는 역할 ID)는 TE에서 #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가 됩니다.

# API 토큰과 App ID 획득

# 2.1 API 토큰 획득

관리자 계정으로 로그인한 후, AppsFlyer의 사이드바 메뉴에서 'API Access'를 찾아 Pull API Raw Data용 V2.0 API 토큰을 획득하십시오.

# 2.2 App ID 획득

AppsFlyer 백엔드의 'My Apps'에서, 앱의 App ID를 찾을 수 있습니다. Android의 경우 com.으로 시작하며, 예를 들어 com.demoapp.ta입니다. iOS의 경우 id로 시작하며, 예를 들어 id12345678입니다.

# 플랜 구성

AppsFlyer의 API 토큰과 App ID를 획득한 후, TE 시스템에 로그인하여 '서드 파티 통합'에서 새 플랜 설정을 완료할 수 있습니다. 아래는 AppsFlyer Pull Raw Data의 설정 화면입니다. 이 장의 내용에 따라 플랜을 생성하십시오.

# 3.1 인증 정보 설정

[설정] 버튼을 클릭하고, 팝업 내에 App ID와 API Token를 입력하세요.

# 3.2 동기화

[동기화] 모듈에서, TE 시스템이 AppsFlyer Pull API 데이터를 정기적으로 수집하는 규칙을 설정할 수 있습니다. 특정 시간대에 매일 일정 기간 데이터를 수집할 수 있습니다. 수집된 데이터도 데이터 양에 포함되므로, 긴 시간의 데이터를 정기적으로 수집하지 않는 것이 좋습니다.

# 3.3 수집 시간대

기본적으로, UTC+0이 설정되어 있어도, 취득하는 데이터의 시간대를 설정할 수 있습니다.

# 3.4 유저 식별 필드

AppsFlyer Pull Raw Data의 콜백은 사용자 레벨의 데이터이므로, 사용자 식별 규칙을 설정해야 합니다. 즉, AF로부터의 데이터와 #distinct_id 및 #account_id에 해당하는 필드를 연결하는 것입니다. TE 시스템은 이 설정에 기반하여, 콜백 데이터를 변환할 때 이러한 필드를 데이터 내의 사용자 식별 필드로 설정합니다.

만약 앞서 언급한 클라이언트 SDK의 설정 절차를 따르고 있다면, 아래 설정을 사용하십시오:

  • 계정 ID: custom_data.ta_account_id
  • 게스트 ID: customer_user_id, custom_data.ta_distinct_id

# 3.5 이벤트 데이터의 저장 설정

데이터가 이벤트 형식으로 기록되는지를 제어할 수 있습니다. 닫히면, 데이터는 이벤트 테이블에 기록되지 않으므로, 이 설정을 닫지 마십시오.

# 3.6 유저 속성의 저장 규칙

기본적으로, TE 시스템은 AF 콜백 데이터의 어트리뷰션 필드를 자동으로 표준화된 사용자 속성에 기록합니다. 아래는 유저 속성에 기록되는 필드와 그 의미입니다.

AppsFlyer 필드 표준화 필드 설명
media_source te_ads_object.media_source 미디어 소스
campaign te_ads_object.campaign_name 광고 캠페인 이름
af_adset te_ads_object.ad_group_name 광고 그룹 이름
af_ad te_ads_object.ad_name 광고 이름

[설정 규칙]을 클릭하여 저장 규칙의 설정 페이지로 이동하고, 필요한 변경을 수행하십시오.

[속성 매핑]버튼을 클릭한 후 사용자 속성에 기록해야 할 필드를 추가할 수 있습니다. 또한, 왼쪽의 [규칙] 버튼을 클릭하여 새로운 규칙 세트를 추가할 수도 있습니다. 예를 들어, AF로부터 전송된 수익 데이터에서 광고 수익을 추출하여 'user_add' 방식으로 사용자 속성에 기록하고 각 사용자의 누적 광고 수익을 기록하고 싶은 경우 등입니다.

모든 규칙을 중지함으로써 사용자 속성의 저장을 중지할 수 있습니다.

# 3.7 통합 구성

마지막으로, 데이터 연동의 상세 설정을 통합 구성 모듈에서 제어할 수 있습니다. 데이터의 유형, 취득할 차원, 및 저장 후의 이벤트명 등이 포함됩니다.

통합 설정의 내용은 JSON 형식이며, 아래의 내용에 따라 커스텀 설정을 할 수 있습니다.

API 이름 의미
sink_event event_mapping 저장 후의 이벤트는 커스텀이 가능
source report_types 취득하는 데이터의 유형은, 커스텀이 가능하며, 기본적으로 installs, ad_revenue
group_by 데이터의 그룹화, 리스트 타입은 커스텀 가능
extra_params double_columns 숫자 타입의 필드 정의는, 여기에 기록된 필드는 숫자 타입으로 데이터베이스에 저장됩니다. 저장 후의 필드명을 입력하십시오.

기본적으로, Pull API Raw Data는 아래의 데이터를 취득할 수 있습니다.

source.group_by에 필요한 필드를 기입할 수 있습니다. 추가적인 지원 필드에 대해서는, AppsFlyer 공식 웹사이트의 문서 (opens new window)도 확인하실 수 있습니다.

# 3.8 데이터 저장 규칙

Pull Raw Data 데이터 인터페이스는 다양한 데이터를 데이터베이스에 저장합니다. 각종 데이터의 처리 규칙은 다음과 같습니다:

  • 설치 데이터
    • 유저 획득(UA)만을 포함하는 Installs (opens new window) 데이터와 Organic Installs (opens new window) 데이터를 획득합니다.
    • 데이터는 이벤트 형식으로 작성되며, 이벤트 이름은 af_install입니다.
    • 데이터 내의 event_time, 즉 이벤트가 발생한 시간을 이벤트의 #event_time으로 사용합니다.
    • 기본 유저 속성의 저장 규칙에서, 설치 데이터의 일부 필드가 유저 테이블에 작성됩니다.
    • 유저 식별 필드 설정에 기반하여, 유저를 식별합니다. 유저 식별 규칙이 설정되어 있지 않은 경우, 데이터 내의 customer_user_id를 기본 게스트ID로 사용합니다. 유저 식별 필드를 획득할 수 없는 경우, 해당 데이터는 폐기됩니다.
    • 모든 필드는 데이터베이스에 저장되며, double_column 내의 필드는 데이터 타입으로 저장되고, 그 외의 필드는 문자열로 저장됩니다.
  • Ad Revenue
    • Attributed 광고 수익 (opens new window), Organic 광고 수익 (opens new window)의 획득이며, Attributed 광고 수익 (opens new window)에서는 유저 획득(UA)과 리타겟팅을 동시에 획득합니다.
    • 데이터는 이벤트 형식으로 작성되며, 이벤트 이름은 af_ad_revenue_raw입니다.
    • 데이터 내의 event_time, 즉 이벤트 발생 시간을 이벤트의 #event_time으로 사용합니다.
    • 유저 식별 필드 설정에 기반하여, 유저를 식별합니다. 유저 식별 규칙이 설정되어 있지 않은 경우, 데이터 내의 customer_user_id를 기본 게스트ID로 사용합니다. 유저 식별 필드를 획득할 수 없는 경우, 해당 데이터는 폐기됩니다.
    • 모든 필드는 데이터베이스에 저장되며, double_column 내의 필드는 데이터 타입으로 저장되고, 그 외의 필드는 문자열로 저장됩니다.

# 3.9 표준화 필드

다음 이벤트 속성은 표준화 처리가 이루어집니다:

메타 필드

표준화 필드

설명

media_source te_ads_object.media_source 미디어 채널
monetization_network(모네타이즈) te_ads_object.media_source 모네타이즈 채널
campaign te_ads_object.campaign_name 광고 캠페인 명
af_c_id te_ads_object.campaign_id 광고 캠페인 ID
af_adset te_ads_object.ad_group_name 광고 그룹명
ad_unit(모네타이즈) te_ads_object.ad_group_name 모네타이즈 광고의 Unit명
af_adset_id te_ads_object.ad_group_id 광고 그룹 ID
af_ad te_ads_object.ad_name 광고 명
af_ad_id te_ads_object.ad_id 광고 ID
placement(모네타이즈) te_ads_object.placement 광고 위치
af_cost_value te_ads_object.cost 비용
af_cost_currency te_ads_object.currency 비용 통화
event_revenue te_ads_object.revenue 수익
event_revenue_currency(모네타이즈) te_ads_object.currency 수익 통화
country_code te_ads_object.country 국가 지역 코드
platform te_ads_object.platform 플랫폼 Android, iOS 등
app_id te_ads_object.app_id APP ID
app_name te_ads_object.app_name APP 이름