메인 콘텐츠로 건너뛰기
노티플라이 Android SDK는 Android 앱에 노티플라이 서비스를 연동하기 위한 SDK입니다.
다음 기능을 지원합니다:
  • 기기 정보를 노티플라이에 등록하여 푸시 알림 수신 및 인앱 팝업 노출 (인앱 팝업은 Foreground 상태에서만 표시됩니다)
  • 이벤트 및 유저 정보를 노티플라이와 연동하여 캠페인 타깃팅 및 분석 활용
  • 유저 행동 데이터를 기반으로 한 이벤트 로깅 및 성과 측정

시작하기 전에

  1. Firebase 프로젝트 연동 완료
    노티플라이 iOS SDK는 푸시 발송을 위해 Firebase Cloud Messaging을 사용합니다.
👉 Firebase 프로젝트 연동 가이드
  1. Android 11 (API Level 30) 이상
    인앱 팝업 캠페인은 Android 11 이상에서만 지원됩니다.

1. SDK 설치

노티플라이 Android SDK는 JitPack을 통해 배포됩니다.

Gradle 설정

build.gradle (root)
dependencyResolutionManagement {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

SDK 의존성 추가

build.gradle (Module: app)
dependencies {
    implementation 'com.github.team-michael:notifly-android-sdk:1.12.0'
}
SDK는 기능/보안 업데이트가 자주 배포됩니다. JitPack 최신 버전을 사용하세요.

초기화 코드 추가

Application 클래스에서 초기화하는 것이 가장 안전합니다. 특정 Activity에서 초기화를 하게 되면 다른 Activity들에 초기화가 적용되지 않을 수 있습니다.
만약 Application 클래스가 없는 경우,
AndroidManifest.xmlandroid:name 속성을 추가하고 새로운 클래스를 만들어 주세요.
AndroidManifest.xml
<application
    ...
    android:name=".MainApplication"  <!-- Application 클래스 등록 -->
    ... >
</application>
다음 코드를 앱의 Application 클래스의 onCreate 함수에 추가해 주세요.
MainApplication.kt
import tech.notifly.Notifly

class MainApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        Notifly.initialize(
            applicationContext,
            NOTIFLY_PROJECT_ID,
            BuildConfig.NOTIFLY_USERNAME,
            BuildConfig.NOTIFLY_PASSWORD
        )
    }
}
NOTIFLY_PROJECT_ID, USERNAME, PASSWORD는 설정 페이지에서 확인할 수 있습니다.

2. 유저 정보 등록

노티플라이는 유저 식별자(userId)와 유저 프로퍼티(params)를 기반으로 개인화 마케팅 캠페인을 수행합니다.
등록된 유저 정보는 세그먼트 분류, 푸시 발송, 이메일 및 카카오 알림톡 등의 타깃팅에 활용됩니다.
SDK 초기화(Notifly.initialize())를 완료한 후 호출해야 합니다.

유저 ID 등록 (Notifly.setUserId())

Notifly.setUserId(context: Context, userId: String?)
userId는 앱 내부의 로그인 유저 식별자와 매핑됩니다.
노티플라이는 이 값을 기준으로 유저 이벤트를 추적하고 캠페인을 개인화합니다.
context
Context
필수
Android 컨텍스트 객체
userId
String
필수
로그인 유저 ID. 로그아웃 시 null로 설정하여 해제

유저 ID 해제

로그아웃 시에는 setUserId(null)을 호출하여 유저 등록을 해제하는 것이 권장됩니다. 이 호출은 현재 기기와 유저 간 연결을 해제합니다. 따라서, 동일한 유저 데이터를 유지하려면 서버 또는 앱 내부에서 별도로 관리해야 합니다.
setUserID
import tech.notifly.Notifly

// 로그인 시
Notifly.setUserId(context, "user_12345")

// 로그아웃 시
Notifly.setUserId(context, null)

유저 프로퍼티 등록 (Notifly.setUserProperties())

setUserProperties는 유저의 속성 정보를 등록합니다.
이 정보는 세그먼트 타깃팅, 메시지 개인화, 발송 채널 선택 등에 사용됩니다.
Notifly.setUserProperties(context: Context, params: Map<String, Any?>)
context
Context
필수
Android 컨텍스트 객체
params
Map<String, Any?>
필수
유저 속성 key-value 쌍. $email, $phone_number, $line_user_id 등 사전 정의된 키 지원
  • $email : 이메일 캠페인용 주소
  • $phone_number : 문자/카카오 캠페인용 전화번호
  • $line_user_id : LINE 메시지 캠페인용 LINE User ID
  • 기타 커스텀 필드: "plan", "tier", "country" 등 자유롭게 설정 가능
setUserProperties
import tech.notifly.Notifly

// 예시: 이메일, 전화번호, 요금제 정보를 등록
Notifly.setUserProperties(
    context,
    mapOf(
        "\$email" to "user@example.com",
        "\$phone_number" to "01012345678",
        "plan" to "premium",
        "language" to "ko"
    )
)

3. 이벤트 로깅 (Notifly.trackEvent())

유저 행동을 기록하여 캠페인 트리거, 세그먼트 조건, 성과 분석 등에 활용할 수 있습니다.
예를 들어 버튼 클릭, 페이지 진입, 구매 완료 같은 유저 행동을 이벤트로 수집합니다.
Notifly.trackEvent(
    context: Context,
    eventName: String,
    eventParams: Map<String, Any?> = emptyMap(),
    segmentationEventParamKeys: List<String> = null,
)
context
Context
필수
Android context 객체
eventName
String
필수
이벤트 이름 (예: “click_button”, “purchase_completed”)
eventParams
Map<String, Any?>
이벤트에 대한 추가 속성. 예: “plan”: “premium”, “duration”: 120
segmentationEventParamKeys
List<String>
세그먼트 분류 시 기준으로 사용할 키 목록 (최대 1개까지 지원)
현재 segmentationEventParamKeys최대 1개의 Key만 지정할 수 있습니다.
  • 예: listOf("plan")"plan" 속성을 기준으로 세그먼트 분류
Notifly.trackEvent
import tech.notifly.Notifly
...
Button(
    onClick = {
        Notifly.trackEvent(
            context,
            "click_button_1",
            mapOf(
                "signup_method" to "kakao",
                "purchased" to "true",
                "duration" to 45,
            ),
            listOf("signup_method") // segmentation key로 signup_method 사용
        )
    },
    modifier = Modifier.padding(top = 16.dp)
) {
    Text(text = "click_button_1")
}
...

4. 내부 유저 ID 확인

getNotiflyUserId() 메서드는 노티플라이가 내부적으로 관리하는 고유 User ID를 반환합니다.
이는 setUserId() 로 등록한 유저 ID와는 별개의 식별자이며, 일반적인 상황에서는 사용할 필요가 없습니다.
다만 외부 CRM 또는 서드파티 서비스와의 연동 과정에서 내부 User ID 값이 필요한 경우 활용할 수 있습니다.
Notifly.getNotiflyUserId(context)

5. 연동 테스트

SDK 설치 후 아래 페이지에서 실제 이벤트 및 푸시 수신 여부를 테스트하세요.
👉 SDK 연동 Test

6. 심화 연동


FAQ

노티플라이 Android SDK는 기존 앱에서 사용하고 있을 수 있는 Firebase Cloud Messaging과 함께 사용하실 수 있습니다.