SDK 마이그레이션 가이드 - 안드로이드 SDK (v4)

에어브릿지 안드로이드 SDK를 업데이트하는 과정에 필요한 내용을 확인할 수 있습니다. 현재 버전 이후부터 업데이트 이후 버전까지의 내용을 모두 확인하는 것을 권장합니다.

v2.x에서 v4.0으로 업데이트

에어브릿지 안드로이드 SDK를 v4.0으로 업데이트하면 확인해 주세요. 아래에서 모든 변경사항을 확인할 수 있습니다.

SDK 초기화

Airbridge.init(Application, AirbridgeConfig)Airbridge.initializeSDK(Application, AirbridgeOption)으로 변경됐습니다.

AirbridgeConfigAirbridgeOption으로 변경됐습니다. AirbridgeConfig.BuilderAirbridgeOptionBuilder로 변경됐습니다. AirbridgeOptionBuilder에 있는 일부 함수 이름이 변경되거나 삭제됐습니다.

아래 예시를 참고해 주세요.

123456
override fun onCreate() {
    super.onCreate()
    val option = AirbridgeOptionBuilder("YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN")
        .build()
    Airbridge.initializeSDK(this, option)
}

딥링크

함수 이름이 getDeeplink()에서 handleDeeplink()로 변경되었습니다. AirbridgeCallback이 삭제 되고 OnSuccess, OnFailure listener가 추가되었습니다. return 값을 통해 해당 함수의 동작 여부를 확인할 수 있습니다.

12345
val result = Airbridge.handleDeeplink(
    intent = intent
    onSuccess = { },
    onFailure = { }
)

listener을 추가하는 기존 디퍼드 딥링크 코드 로직을 더 편하게 화면 이동을 구현할 수 있도록 개선했습니다. listener을 추가하는 기존 방식은 삭제됐습니다. 대신 에어브릿지 인터페이스로 디퍼드 딥링크를 전달 받을 수 있습니다.

인앱 이벤트 및 유저 정보

아래 기존 API가 삭제되었습니다. 또한 StandardEventCategory, SemanticAttributes, Product가 삭제되었습니다.

  • trackEvent(category: StandardEventCategory, action: String? = null, label: String? = null, value: Number? = null, customAttributes: Map<String, Any?>? = null, semanticAttributes: Map<String, Any?>? = null)

  • trackEvent(category: String, action: String? = null, label: String? = null, value: Number? = null, customAttributes: Map<String, Any?>? = null, semanticAttributes: Map<String, Any?>? = null)

  • trackEvent(event: Event)

새로운 API 가 추가되었습니다.

  • trackEvent(category: String, semanticAttributes: Map<String, Any>? = null, customAttributes: Map<String, Any>? = null)

  • AirbridgeCategory가 추가되었습니다. event category string은 미리 정의되어 있습니다.

  • 기타 정보 전달을 위한 함수 override 와 객체(SemanticAttributes, Product)가 삭제됐습니다.

  • 대신 map 을 통해 어트리뷰트(attribute)을 전달하도록 수정되었습니다. map의 키 값은 AirbridgeAttribute에 string으로 미리 정의되어 있습니다. 커스텀 어트리뷰트는 string으로 직접하여 전달할 수 있습니다.

아래에서 AirbridgeCategory, AirbridgeAttribute 매핑과 trackEvent 함수를 참고해 주세요.

AirbridgeUser가 삭제되었습니다. 에어브릿지 인터페이스로 AirbridgeUser를 통해서 접근하는 인터페이스를 접근할 수 있습니다.

AirbridgeDeviceInfo가 삭제되었습니다. AirbridgeDeviceInfo를 통해서 접근하던 인터페이스는 에어브릿지 인터페이스로 접근할 수 있도록 수정되었습니다.

AirbridgeCallback이 삭제되고 OnSuccess, OnFailure listener가 추가되었습니다. 해당 listener 를 통해 성공 여부를 전달 받을 수 있습니다.

AirbridgeDeviceInfo가 삭제되었습니다. 에어브릿지 인터페이스를 통해서 attribution result를 전달 받는 함수는 제공되지 않습니다. 다만, AirbridgeOption의 listener를 통해 전달 받을 수 있습니다. 기존에도 제공하는 방법입니다.

123456789101112
class App : Application() {

    override fun onCreate() {
        super.onCreate()
        val option: AirbridgeOption = AirbridgeOptionBuilder("YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN")
            .setOnAttributionReceived { result ->
                // do something
            }
            .build()
        Airbridge.initializeSDK(this, option)
    }
}

AirbridgeCallback이 삭제되고 OnSuccess, OnFailure listener가 추가되었습니다. return 값을 통해 해당 함수의 동작 여부를 확인할 수 있습니다.

하이브리드 연동

함수 이름이 setJavascriptInterface()에서 setWebInterface()로 변경되었습니다.

1
Airbridge.setWebInterface(webview, "YOUR_WEB_TOKEN")

v2.x 업데이트

Android SDK 각 버전의 주요 변경사항을 참고해 주세요.

v2.24.0

2023년 9월 4일 이후 생성된 에어브릿지 앱은 딥링크 콜백에서 제공되는 딥링크 URL이 에어브릿지 대시보드에 입력된 내용을 2번 디코딩해 제공하는 문제를 해결했습니다.

해당 문제는 안드로이드 SDK v2.22.0 ~ v2.23.0에서 발생했습니다.

v2.21.2

앱이 background 상태에서 이벤트 전송을 중지하는 초기화 옵션이 추가되었습니다.

  • AirbridgeConfig#setTransmitEventOnBackgroundEnabled 함수로 앱이 background 상태에서 이벤트 중지를 설정할 수 있습니다.

  • 기본 값은 true입니다. true는 background 상태에서도 남은 이벤트를 전송합니다.

v2.21.1

deeplink.page를 지원하지 않습니다. 2.21.1 부터는 abr.ge 로 딥링크 도메인을 사용 하여 코드를 작성 권장 드립니다.

deeplink.page는 하위 호환을 위해 여전히 지원 및 동작은 되고 있습니다.

v2.19.1

세션 타임 이내에 발생된 ORGANIC_REOPEN, FOREGROUND 이벤트는 기본적으로 수집을 하지 않는 구조로 변경되었습니다.

  • 2.19.1 이전 버전을 사용 중 ORGANIC_REOPEN, FOREGROUND 이벤트를 수집하고 있다면 AirbridgeConfig#setTrackInSessionLifeCycleEventEnabled 을 통해 계속 해서 해당 이벤트를 수집할 수 있습니다.

  • default 값은 false 로 ORGANIC_REOPEN, FOREGROUND이벤트를 수집을 하지 않습니다.

BACKGROUND이벤트가 제거되었습니다.

v2.18.0

딥링크 페이지뷰 이벤트가 Airbridge.click 호출의 경우에만 수집될 수 있도록 변경되었습니다.

도움이 되었나요?

더 필요한 내용이 있나요?