Android SDK
블럭스 Android SDK 를 설치하고 사용하는 방법을 알아봅니다.
SDK 설치
프로젝트의 Gradle 설정을 아래와 같이 설정하면 블럭스 Android SDK를 사용할 수 있어요.
- 블럭스 Android SDK는 jitpack package manager를 통해 배포되었어요.
dependencyResolutionManagement {
...
repositories {
...
maven { url "https://jitpack.io" }
}
}
dependencies {
...
implementation "com.github.zaikorea:Blux-Android-SDK:0.5.27"
}
BluxClient 초기화
initialize()
블럭스 Android SDK의 모든 메서드는 BluxClient 객체의 static 메서드입니다. initialize()을 호출해서 SDK를 초기화하세요. 내 서비스의 애플리케이션 아이디와 API 키 정보는 연동 키 확인하기 에서 자세히 확인하세요.
* 모든 메서드는 SDK가 초기화 된 이후에 호출해야 합니다.
BluxClient.initialize(
this,
"BLUX_APPLICATION_ID",
"BLUX_API_KEY",
true,
new BluxClient.CompletionCallback() {
@Override
public void onSuccess() {
// SDK 초기화 완료
// 자동 로그인인 경우 signIn() 호출
BluxClient.signIn(
MainApplication.this,
"USER_ID",
null
);
}
@Override
public void onFailure(Exception e) {
// SDK 초기화 실패
}
}
);
파라미터
context필수Context
Context 객체입니다.
bluxApplicationId필수String
고객님의 서비스를 식별하는 고유 아이디입니다.
bluxAPIKey필수String
블 럭스에서 발급하는 API 키입니다.
requestPermissionOnLaunch필수boolean
true라면, 앱 실행 시에 앱푸시 허용과 관련된 권한 요청 팝업을 띄웁니다.
handler@NullableInitializeCompleteHandler
SDK 초기화 완료 시 호출되는 핸들러입니다.
onSuccess()필수void
SDK 초기화에 성공했을 때 호출됩니다.
onFailure(Exception e)필수void
SDK 초기화에 실패했을 때 호출됩니다.
응답
void
유저
signIn()
유저 로그인을 요청합니다. signIn()을 호출하지 않으면 블럭스 SDK는 유저를 식별할 수 없어요. 아래의 경우에 반드시 호출하세요.
① 회원 유저가 자동 로그인 한 시점
② 비회원 유저가 로그인하여 회원 유저로 식별되는 시점
// 회원 유저가 자동 로그인 한 시점
BluxClient.initialize(
this,
"BLUX_APPLICATION_ID",
"BLUX_API_KEY",
true,
new BluxClient.CompletionCallback() {
@Override
public void onSuccess() {
BluxClient.signIn(
MainApplication.this,
"USER_ID",
null
);
}
@Override
public void onFailure(Exception e) {}
}
);
// 비회원 유저가 로그인하여 회원 유저로 식별되는 시점
BluxClient.signIn(
this,
"USER ID"
);
응답
void
signOut()
유저 로그아웃을 요청합니다. 회원 유저가 로그아웃하는 시점에 호출하세요.
BluxClient.signOut(
this
);
파라미터
context필수Context
Context 객체입니다.
응답
void
setUserProperties()
유저의 전화번호, 이메일 주소, 광고 수신 동의 여부 등을 설정합니다.
BluxClient.setUserProperties(
this,
new UserProperties("01012345678", "test@blux.ai", true)
);
파라미터
context필수Context
Context 객체입니다.
userProperties필수UserProperties
유저의 기본 정보를 담고 있는 객체입니다.
phoneNumberString
유저의 전화번호입니다. 블럭스의 문자/카카오톡 발송에 사용되고 있어요.
-없이 숫자로만 구성된 문자열입니다.emailAddressString
유저의 이메일 주소입니다. 블럭스의 이메일 발송에 사용되고 있어요.
ageInteger
유저의 나이입니다.
genderGender
유저의 성별입니다.
Gender.MALE,Gender.FEMALE중 하나를 입력하세요.marketingNotificationConsentBoolean
광고 수신 전역 동의 설정입니다. 전역 동의 또는 채널별 동의 둘 중 하나라도
false면 해당 채널의 광고 수신은 거부됩니다. 둘 다 미설정이어도 해당 채널은 거부됩니다.marketingNotificationSmsConsentBoolean
광고 문자 수신 동의 여부입니다.
marketingNotificationEmailConsentBoolean
광고 이메일 수신 동의 여부입니다.
marketingNotificationPushConsentBoolean
광고 푸시 알림 수신 동의 여부입니다.
marketingNotificationKakaoConsentBoolean
광고 카카오톡 수신 동의 여부입니다.
nighttimeNotificationConsentBoolean
야간 수신 동의 여부입니다.
isAllNotificationBlockedBoolean
true이면 광고/비광고 구분 없이 모든 채널의 수신이 거부됩니다.
응답
void
setCustomUserProperties()
setUserProperties()로 설정하는 기본 정보 이외의 추가 정보를 설정합니다.
JSONObject customUserProperties = new JSONObject();
customUserProperties.put("membership_level", "GOLD");
customUserProperties.put("age", 25);
customUserProperties.put("is_active", true);
customUserProperties.put("last_login_date", "2025-06-17T11:15:00.123+09:00");
BluxClient.setCustomUserProperties(
this,
customUserProperties
);
파라미터
context필수Context
Context 객체입니다.
customUserProperties필수JSONObject
유저의 추가 정보입니다. 예를 들어, 회원 등급, 나이, 활성 여부, 최근 로그인 일시 등을 설정할 수 있습니다. 블럭스의 유저 세그멘테이션에 사용되고 있어요.
응답
void
이벤트
Event 객체
유저의 행동 데이터를 담고 있는 객체입니다. 행동의 종류, 정보, 발생 시간 등을 자세히 알 수 있습니다.
기본 이벤트
기본 이벤트는 블럭스가 미리 정의해 둔 이벤트 객체입니다. 자주 쓰이는 장바구니 담기, 좋아요 누르기, 상세페이지 진입하기 등의 이벤트를 포함합니다.
Details
AddProductDetailViewEvent
유저가 상품의 상세 정보를 탐색한 순간이에요. 예를 들어, 유저가 상품의 상세페이지에 진입한 순간을 의미해요.java BluxClient.sendEvent( this, AddProductDetailViewEvent.Builder("ITEM_ID") .customEventProperties(new JSONObject()) .build() ) 객체 상세
itemId필수String
상품을 식별하는 고유 아이디입니다. 연동 시 사용한 상품 아이디를 입력하세요.
customEventPropertiesMap<string, object>
이벤트 추가 속성입니다. 위 속성 이외의 속성을 추가하고 싶다면 이 필드를 사용하세요.
Details
AddCartaddEvent
유저가 상품에 대한 강한 선호를 표현한 순간이에요. 예를 들어, 유저가 상품을 장바구니에 담은 순간을 의미해요.java BluxClient.sendEvent( this, AddCartaddEvent.Builder("ITEM_ID") .customEventProperties(new JSONObject()) .build() ) 객체 상세
itemId필수String
상품을 식별하는 고유 아이디입니다. 연동 시 사용한 상품 아이디를 입력하세요.
customEventPropertiesMap<string, object>
이벤트 추가 속성입니다. 위 속성 이외의 속성을 추가하고 싶다면 이 필드를 사용하세요.
Details
AddOrderEvent
유저가 상품을 구매하여 비용을 지불한 순간이에요.java BluxClient.sendEvent( this, AddOrderEvent.Builder() .addItem("ITEM_ID_1", 2000.0, 1) .addItem("ITEM_ID_2", 4000.0, 2) .orderId("ORDER_ID") .orderAmount(12000.0) .paidAmount(10000.0) .customEventProperties(new JSONObject()) .build() ) 객체 상세
items필수List<item>
주문에 포함된 상품 목록입니다. 상품 아이디 (id), 상품 가격 (price), 상품 수량 (quantity)을 입력하세요.
orderId필수String
주문을 식별하는 고유 아이디입니다.
orderAmount필수Number
해당 주문건의 총 주문 금액입니다.
paidAmount필수Number
유저가 해당 주문에서 실제 결제한 금액입니다. 캠페인 성과 페이지에서 해당 필드를 기준으로 계산됩니다.
customEventPropertiesMap<string, object>
이벤트 추가 속성입니다. 위 속성 이외의 속성을 추가하고 싶다면 이 필드를 사용하세요.
Details
AddLikeEvent
유저가 상품에 대한 약한 선호를 표현한 순간이에요. 예를 들어, 유저가 상품에 좋아요 버튼을 누른 순간을 의미해요.java BluxClient.sendEvent( this, AddLikeEvent.Builder("ITEM_ID") .customEventProperties(new JSONObject()) .build() ) 객체 상세
itemId필수String
상품을 식별하는 고유 아이디입니다. 연동 시 사용한 상품 아이디를 입력하세요.
customEventPropertiesMap<string, object>
이벤트 추가 속성입니다. 위 속성 이외의 속성을 추가하고 싶다면 이 필드를 사용하세요.
Details
AddRateEvent
유저가 상품에 대한 선호를 구체적인 숫자로 표현한 순간이에요. 예를 들어, 유저가 상품에 별점을 남기는 순간을 의미해요.java BluxClient.sendEvent( this, AddRateEvent.Builder("ITEM_ID", 4.0) .customEventProperties(new JSONObject()) .build() ) 객체 상세
itemId필수String
상품을 식별하는 고유 아이디입니다. 연동 시 사용한 상품 아이디를 입력하세요.
rating필수Number
상품에 대한 유저의 평가 점수입니다.
customEventPropertiesMap<string, object>
이벤트 추가 속성입니다. 위 속성 이외의 속성을 추가하고 싶다면 이 필드를 사용하세요.
Details
AddPageViewEvent
유저가 특정 페이지를 방문한 순간이에요.java BluxClient.sendEvent( this, AddPageViewEvent.Builder("PAGE") .customEventProperties(new JSONObject()) .build() ) 객체 상세
page필수String
유저의 현재 페이지를 식별하는 문자열입니다.
customEventPropertiesMap<string, object>
이벤트 추가 속성입니다. 위 속성 이외의 속성을 추가하고 싶다면 이 필드를 사용하세요.
커스텀 이벤트
커스텀 이벤트는 고객님이 직접 정의할 수 있는 이벤트 객체입니다. 기본 이벤트가 아닌 행동 데이터를 수집해야 할 때 이용하세요
* 커스텀 이벤트 사용이 필요하다면, 블럭스에 문의하세요.
BluxClient.sendEvent(
this,
AddCustomEvent.Builder("CUSTOM_EVENT_TYPE")
.itemId("ITEM_ID")
.addItem("ITEM_ID_1", 2000.0, 1)
.addItem("ITEM_ID_2", 4000.0, 2)
.orderId("ORDER_ID")
.orderAmount(12000.0)
.paidAmount(10000.0)
.page("PAGE")
.customEventProperties(new JSONObject())
.build()
)