메인 콘텐츠로 건너뛰기
AppsFlyer 연동 기능은 노티플라이 프로 플랜, 엔터프라이즈 플랜 사용시 제공하는 기능입니다.
현재 AppsFlyer 연동은 Beta 버전으로 제공됩니다. 연동 신청 후 실제 데이터는 2월 중부터 활용 가능합니다. Beta 기간 동안 연동 데이터는 데이터 포인트 집계에서 제외되며 별도 비용이 발생하지 않습니다.

개요

AppsFlyer는 모바일 어트리뷰션 분석 플랫폼입니다. AppsFlyer를 사용 중인 고객은 install 어트리뷰션 데이터를 노티플라이에 연동하여 세그먼트 생성 및 CRM 캠페인 타겟팅에 활용할 수 있습니다. 노티플라이는 AppsFlyer analytics partner postback으로 들어오는 데이터를 유저에 매칭하여 적재합니다. 유저 매칭을 위해 고객 앱에서 AppsFlyer ID를 읽어 노티플라이 유저 속성으로 저장해야 합니다. 저장 키는 유저 속성 $appsflyer_id를 사용합니다.

어트리뷰션 데이터 필드

AppsFlyer postback을 통해 제공되는 어트리뷰션 데이터 필드는 다음과 같습니다:
필드명설명
appsflyer_idAppsFlyer에서 생성한 고유 디바이스 ID
app_id앱 식별자
platform플랫폼 (ios, android)
country_code국가 코드 (ISO 3166 alpha-2)
media_source어트리뷰션된 미디어 소스
pid어트리뷰션된 광고 네트워크 ID
c캠페인명
af_ad광고명
af_ad_id광고 ID
af_adset광고 세트명
af_adset_id광고 세트 ID
af_siteid퍼블리셔/사이트 ID
install_time설치 시각
match_type어트리뷰션 매칭 방식
customer_user_id광고주가 설정한 유저 ID
advertising_idAndroid GAID
idfaiOS IDFA

연동 가이드

1. AppsFlyer 콘솔에서 Notifly 파트너 활성화

  1. AppsFlyer 사이드 메뉴에서 협업 > 파트너 마켓플레이스를 엽니다.
  2. 검색창에서 Notifly를 검색하고 연동 설정으로 이동합니다.
  3. 파트너 활성화를 켜고 나머지 연동 섹션을 설정합니다.
  4. 연동 설정 화면에 Postback 관련 섹션이 있는 경우, install postback이 활성화되어 있는지 확인합니다.
AppsFlyer 파트너 연동에 대한 자세한 내용은 AppsFlyer 파트너 마켓플레이스 가이드를 참고하세요.

2. SDK에서 AppsFlyer ID 저장

AppsFlyer ID는 SDK가 앱 설치 시 생성하는 unique device ID입니다. 각 플랫폼에서 getAppsFlyerUID API로 조회한 후, 노티플라이 SDK의 setUserProperties를 통해 $appsflyer_id 유저 속성으로 저장합니다.

사전 준비

  • AppsFlyer SDK가 설치 및 초기화되어 있어야 합니다.
  • Notifly SDK가 설치 및 초기화되어 있어야 합니다.
MainApplication.kt
import android.app.Application
import com.appsflyer.AppsFlyerLib
import tech.notifly.Notifly

class MainApplication : Application() {
    override fun onCreate() {
        super.onCreate()

        Notifly.initialize(
            applicationContext,
            NOTIFLY_PROJECT_ID,
            NOTIFLY_USERNAME,
            NOTIFLY_PASSWORD
        )

        AppsFlyerLib.getInstance().init(AF_DEV_KEY, null, this)
        AppsFlyerLib.getInstance().start(this)

        val appsflyerId = AppsFlyerLib.getInstance().getAppsFlyerUID(this)

        Notifly.setUserProperties(
            applicationContext,
            mapOf("\$appsflyer_id" to appsflyerId)
        )
    }
}

캠페인 활용 예시

연동 완료 후, 노티플라이 캠페인에서 어트리뷰션 속성을 활용하여 타겟팅할 수 있습니다.

세그먼트 조건 예시

  • $appsflyer_id가 존재하는 유저: AppsFlyer를 통해 유입된 유저를 식별
  • media_source가 특정 값인 유저: 특정 광고 네트워크를 통해 유입된 유저를 타겟팅 (예: media_source = "googleadwords_int")

메시지 캠페인 예시

  • 특정 캠페인(c) 유입 유저에게 온보딩 푸시/인앱 캠페인 실행: 광고 캠페인별로 차별화된 온보딩 메시지 발송

FAQ

AppsFlyer postback 데이터가 노티플라이에 도착해도 유저와 매칭할 수 없습니다. 어트리뷰션 데이터가 유저에게 연결되지 않아 세그먼트 및 캠페인에서 활용할 수 없습니다.
$appsflyer_id가 설정되기 전에 도착한 postback 데이터는 유저에게 매칭되지 않습니다. 앱 시작 시점에 가능한 빨리 $appsflyer_id를 설정하는 것을 권장합니다.
  1. 앱에서 $appsflyer_id 설정 코드가 정상 동작하는지 확인합니다.
  2. 노티플라이 콘솔에서 해당 유저의 속성에 $appsflyer_id가 저장되었는지 확인합니다.
  3. AppsFlyer 콘솔에서 테스트 install을 발생시키고, 노티플라이에서 어트리뷰션 데이터가 수신되는지 확인합니다.