본문으로 건너뛰기

Client SDK - Android

Notifly Android SDK는 노티플라이를 Android 어플리케이션과 연동하기 위해 사용할 수 있습니다. 다음과 같은 기능들을 지원합니다:

  • 기기 정보를 노티플라이에 등록하여 노티플라이를 통해 발송된 앱 푸시를 Android 앱에서 수신할 수 있습니다.
  • 노티플라이에서 만든 인앱 팝업 캠페인을 Android 앱에서 띄울 수 있습니다.
    • 현재 인앱 팝업은 Android 11 (API Level 30) 이상에서만 지원되며, 이외의 디바이스에서는 인앱 팝업이 표시되지 않습니다.
  • 이벤트, 유저 정보를 노티플라이와 연동하여 모든 캠페인에서 활용할 수 있습니다.
  • 캠페인의 성과를 측정할 수 있도록 이벤트를 로깅합니다.

노티플라이에서는 푸시를 발송하기 위해 Firebase Cloud Messaging을 활용하고 있습니다. Firebase 프로젝트 연동을 마친 후, Notifly Android SDK 연동을 시작해주세요.

1. Notifly SDK 셋업

1-1. SDK 설치

Notifly Android SDK는 오픈소스 패키지 배포 플랫폼 JitPack을 통해 배포되고 있습니다. JitPack의 패키지를 앱에 설치하기 위해 다음과 같이 설정해 주세요.

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

Notifly Android SDK를 다음과 같이 설치해 주세요. (현재 최신 버전: )

build.gradle (Module: app)
dependencies {
implementation 'com.github.team-michael:notifly-android-sdk:1.5.0'
}
최신 버전 SDK를 사용해주세요

Notifly Android SDK는 업데이트가 빈번하게 이루어지고 있으며, 매 업데이트마다 새로운 기능, 안정성 및 보안을 개선하고 있습니다. 원활한 서비스 이용을 위해 항상 최신 버전의 SDK를 사용하시기를 권장합니다.

1-2. Notifly SDK 초기화 코드 추가

초기화는 Application 클래스에서 해주시는 것을 권장합니다. 특정 Activity에서 초기화를 하시게 되면 다른 Activity들에 초기화가 적용되지 않을 수 있습니다.

만약 Application 클래스가 없다면 프로젝트 앱 모듈의 AndroidManifest.xml 파일에 android:name을 추가하고 Application 클래스 파일을 만들어 주세요.

AndroidManifest.xml
    // Your Main Application
<application
...
android:name=".MainApplication" // Use an appropriate name for your app
...

다음 코드를 앱의 Application 클래스의 onCreate 함수에 추가해 주세요.

Example Kotlin code for initialization
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, NOTIFLY_USERNAME, NOTIFLY_PASSWORD 값은 노티플라이 홈페이지의 설정 페이지에서 확인하실 수 있습니다.

2. 유저 프로퍼티 등록하기

  • 노티플라이에서는 유저의 아이디 (userId) 및 프로퍼티 (params)를 설정하여 마케팅 캠페인 집행 시에 활용할 수 있습니다.
    • 노티플라이에서는 채널 별 푸시 알림 수신 동의 여부를 유저 프로퍼티로 설정하여, 푸시 알림 전송 전에 필터링 할 수 있습니다.
    • 카카오 알림톡, 친구톡, 문자 발송을 위해서는 전화번호를 유저 프로퍼티로 설정해야 합니다.
    • 이메일 발송을 위해서는 이메일 주소를 유저 프로퍼티로 설정해야 합니다.
    • 전화번호와, 이메일의 프로퍼티 필드명은 꼭 각각 $phone_number, $email로 설정해 주세요.
    • Notifly SDK 초기화 코드 추가를 마친 후 프로퍼티 등록을 시작해 주세요.
    • (권장사항) 로그아웃 시 userId를 null로 하여 setUserId 호출함으로써 유저의 userId 등록을 해지해 주세요.
    • 유저 아이디 등록해지를 호출할 경우, 유저 프로퍼티 및 캠페인 피로도 관리 데이터 등 모든 유저 정보가 삭제됩니다.
유저 아이디 등록해지 주의사항

유저 아이디 등록해지를 호출할 경우, 유저 프로퍼티 및 캠페인 피로도 관리 데이터 등 모든 유저 정보가 삭제되니 주의해 주세요.

2-1. 유저 아이디 등록

ParameterTypeRequired
contextContextYes
userIdStringYes
Notifly.setUserId(context: Context, userId: String)
Example Kotlin code for Notifly.setUserId
import tech.notifly.Notifly

Notifly.setUserId(context, "exampleUserId")

2-2. 유저 프로퍼티 등록

ParameterTypeRequired
contextContextYes
paramsMap<String, Any?>Yes
Notifly.setUserProperties(context: Context, params: Map<String, Any?>)
Example Kotlin code for Notifly.setUserProperties
import tech.notifly.Notifly

Notifly.setUserProperties(
context,
mapOf("exampleKey" to "exampleValue")
)

3. 이벤트 로깅

  • 노티플라이에서는 유저의 행동 등 이벤트를 트래킹하여 캠페인 집행 시 타겟팅에 활용할 수 있습니다. 트래킹 된 이벤트는 푸시 알림 발송 타이밍, 발송 대상 설정에 활용할 수 있습니다.
    • Notifly SDK 초기화 코드 추가를 마친 후 이벤트 로깅을 시작해 주세요.
  • segmentationEventParamKeys 활용하여 이벤트 변수 (eventParams)를 발송 대상 설정 등에 활용할 수 있습니다. 이를 위해서, 발송 대상 설정에 활용할 eventParams의 특정 field의 key 값을 segmentationEventParamKeys에 지정해주세요.
    • 현재는 segmentationEventParamKeys 한 개까지 지원하고 있기 때문에, segmentationEventParamKeys 길이는 1이하인 List이어야합니다.

3-1. 이벤트 로깅

ParameterTypeRequired
contextContextYes
eventNameStringYes
eventParamsMap<String, Any?>No
segmentationEventParamKeysList<String>No
Notifly.trackEvent(
context: Context,
eventName: String,
eventParams: Map<String, Any?> = emptyMap(),
segmentationEventParamKeys: List<String> = null,
)
Example Kotlin code for Notifly.trackEvent with JetPack Compose
import tech.notifly.Notifly
...
Button(
onClick = {
Notifly.trackEvent(
context,
"click_button_1",
mapOf(
"keyString" to "value1",
"keyBoolean" to true,
"keyInt" to 100,
),
)
},
modifier = Modifier.padding(top = 16.dp)
) {
Text(text = "click_button_1")
}
...

4. 연동 테스트

Client SDK - 연동 Test 섹션에서 테스트를 진행합니다.

5. (Advanced) 푸시 알림 아이콘 등록 & 푸시 알림 동의 프롬프트

(Advanced) Client SDK - Android 를 참고해 주세요.

6. (Advanced) 푸시 알림 클릭 이벤트 구독

(Advanced) Client SDK - Android 를 참고해 주세요.

FAQ

  • Q. 이미 Firebase Cloud Messaging을 사용 중인데 어떻게 해야 할까요?
    • A. Notifly Android SDK는 기존 앱에서 사용하고 있을 수 있는 Firebase Cloud Messaging과의 충돌을 방지하기 위한 처리를 이미 자체적으로 구현해 두었기 때문에 안전하게 사용하실 수 있습니다.