메인 콘텐츠로 건너뛰기
노티플라이 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 설정

  • version≥7.0
  • version<7.0
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>
  • Kotlin
  • Java
다음 코드를 앱의 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
required
Android 컨텍스트 객체
userId
String
required
로그인 유저 ID. 로그아웃 시 null로 설정하여 해제

유저 ID 해제

로그아웃 시에는 setUserId(null)을 호출하여 유저 등록을 해제하는 것이 권장됩니다. 이 호출은 현재 기기와 유저 간 연결을 해제합니다. 따라서, 동일한 유저 데이터를 유지하려면 서버 또는 앱 내부에서 별도로 관리해야 합니다.
  • Kotlin
  • Java
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
required
Android 컨텍스트 객체
params
Map<String, Any?>
required
유저 속성 key-value 쌍. $email, $phone_number 등 사전 정의된 키 지원
  • $email : 이메일 캠페인용 주소
  • $phone_number : 문자/카카오 캠페인용 전화번호
  • 기타 커스텀 필드: "plan", "tier", "country" 등 자유롭게 설정 가능
  • Kotlin
  • Java
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
required
Android context 객체
eventName
String
required
이벤트 이름 (예: “click_button”, “purchase_completed”)
eventParams
Map<String, Any?>
이벤트에 대한 추가 속성. 예: “plan”: “premium”, “duration”: 120
segmentationEventParamKeys
List<String>
세그먼트 분류 시 기준으로 사용할 키 목록 (최대 1개까지 지원)
현재 segmentationEventParamKeys최대 1개의 Key만 지정할 수 있습니다.
  • 예: listOf("plan")"plan" 속성을 기준으로 세그먼트 분류
  • Kotlin with JetPack Compose
  • Kotlin with xml
  • Java
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과 함께 사용하실 수 있습니다.