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

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

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

에어브릿지 iOS SDK를 v4.0으로 업데이트하면 확인해 주세요.

iOS SDK 이름이 AirBridge에서 Airbridge로 변경되었습니다. AirBridge 클래스가 Airbridge 클래스로 변경되었습니다. 함수와 옵션의 이름이 변경되었습니다.

SDK 설치 및 초기화

CocoaPods 패키지명, SwiftPackageManager Git 주소, 직접 설치 다운로드 URL 등이 변경되었습니다. 기존 iOS SDK를 삭제한 후에 에어브릿지 가이드에 따라 다시 설치해 주세요.

SDK 초기화에 사용하는 AirBridge.getInstance 함수가 Airbridge.initializeSDK 함수로 변경되었습니다. 또한 옵션 설정 함수가 AirbridgeOption, AirbridgeOptionBuilder 클래스들로 변경되었습니다. SDK의 옵션은 더는 런타임에 변경되지 않습니다.

아래 맵핑을 참고해 새로운 SDK 초기화 코드를 작성해 주세요.

1234567
import Airbridge
...
let option = AirbridgeOptionBuilder(name: "YOUR_APP_NAME", token: "YOUR_APP_SDK_TOKEN")
    .setLogLevel(.warning)
    .setSessionTimeout(second: 300)
    .build()
Airbridge.initializeSDK(option: option)

딥링크

AirBridge.setDeeplinkCallback 함수가 Airbridge.handleDeeplink 함수와 handleDeferredDeeplink 함수로 대체되었습니다.

AirBridge.deeplink().handle (또는 handleUniversalLink)와 AirBridge.deeplink().handleURLSchemeDeeplinkAirbridge.trackDeeplink로 대체되었습니다.

커스텀 도메인을 등록하는 방법이 변경되었습니다. 기존에는 Info.plist의 co.ab180.airbridge.trackingLink.customDomains 키에 커스텀 도메인을 밸류로 추가했습니다.

변경된 방식은 SDK 초기화 단계에서 setTrackingLinkCustomDomains 함수를 호출하여 추가하는 방식입니다.

인앱 이벤트 및 유저 정보

주의하세요

기존 totalValue 대신 AirbridgeAttribute.VALUE에 값을 입력해 주세요.

setSemantics의 totalValue를 사용하고 setValue로 밸류를 정의하면 totalValue가 밸류를 덮어 쓰는 로직은 iOS SDK v4부터 삭제되었습니다.

ABInAppEvent 클래스가 Airbridge.trackEvent 함수로 대체되었습니다.

아래 가이드에 따라 ABInAppEvent 클래스와 setAction, setLabel, setValue, setSemantics, setCustoms를 Airbridge.trackEvent함수로 변경해 주세요.

  • setCategory: ABCategory를 사용하고 있다면 AirbridgeCategory를 사용해야 합니다. String을 사용하고 있다면 그대로 category 파라미터에 입력합니다.

  • setAction: semanticAttributes 파라미터의 AirbridgeAttribute.ACTION 키에 입력합니다.

  • setLabel: semanticAttributes 파라미터의 AirbridgeAttribute.LABEL 키에 입력합니다.

  • setValue: semanticAttributes 파라미터의 AirbridgeAttribute.VALUE 키에 입력합니다.

  • setSemantics: semanticAttributes 파라미터에 키로 ABSemanticsKey를 사용하고 있다면 AirbridgeAttribute를 사용합니다. String을 사용하고 있다면 그대로 입력합니다. 밸류는 키와 관계 없이 그대로 입력합니다.

  • setCustoms: customAttributes 파라미터에 키, 밸류를 그대로 입력합니다.

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

AirBridge.setDeviceAlias 관련 함수가 Airbridge.setDeviceAlias 관련 함수로 대체되었습니다.

12345
import Airbridge
...
Airbridge.setDeviceAlias(key: "string", value: "string")
Airbridge.removeDeviceAlias(key: "string")
Airbridge.clearDeviceAlias()

AirBridge.state().setUser 관련 함수가 Airbridge.setUser 관련 함수로 대체되었습니다. 유저 정보를 한번에 설정하는 setUser 함수는 지원하지 않습니다.

1234567891011121314151617181920
import Airbridge
...
// identifier
Airbridge.setUserID("string")
Airbridge.clearUserID()
// addtional identifier
Airbridge.setUserAlias(key: "string", value: "string")
Airbridge.removeUserAlias(key: "string")
Airbridge.clearUserAlias()
...
// email, phone
Airbridge.setUserEmail("string")
Airbridge.clearUserEmail()
Airbridge.setUserPhone("string")
Airbridge.clearUserPhone()
// addtional attribute
Airbridge.setUserAttribute(key: "string", value: "string")
Airbridge.setUserAttribute(key: "number", value: 1000)
Airbridge.removeUserAttribute(key: "string")
Airbridge.clearUserAttributes()

추가 설정하기

AirBridge.placement().click 함수와 AirBridge.placement().impression 함수가 Airbridge.click 함수와 Airbridge.impression 함수로 대체되었습니다.

1234567891011121314151617181920
import Airbridge
...
let isHandled = Airbridge.click(trackingLink: url) {
    // when url is tracking link and succeed
} onFailure: { error in
    // when url is tracking link and failed
    // example: url is another app's tracking link, internet is not connected
}
if !isHandled {
    // when url is not tracking link
}
...
let isHandled = Airbridge.impression(trackingLink: url) {
    // when url is tracking link and succeed
} onFailure: { error in
    // when url is tracking link and failed
}
if !isHandled {
    // when url is not tracking link
}

AirBridge.webInterface().inject 함수가 Airbridge.setWebInterface 함수로 대체되었습니다.

123456
import Airbridge
...
Airbridge.setWebInterface(
    controller: controller,
    webToken: "YOUR_WEB_TOKEN"
)

v1.x 업데이트

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

v1.36.0 - 딥링크

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

해당 문제는 iOS SDK v1.34.0 ~ 1.35.1에서 발생했습니다.

v1.34.0 - 딥링크

2023년 9월 4일 이후 생성된 에어브릿지 앱은 딥링크 콜백에 제공되는 딥링크 URL에 airbridge_referrer를 추가하지 않고 에어브릿지 대시보드에 입력한 정보로 전달됩니다.

2023년 9월 4일 이전에 생성된 에어브릿지 앱을 사용하는 고객사 중에서 해당 기능이 필요한 고객사는 에어브릿지 CSM에게 요청해 주세요. 담당 CSM이 없는 경우 문의하기를 통해 요청해 주세요.

v1.33.0 - SKAdNetwork

SKAdNetwork 4.0을 지원하면서 전환값 계산 방식이 변경되었습니다. 유저가 iOS SDK v1.33.0 미만을 설치한 앱에서 v1.33.0 이상이 있는 앱으로 업데이트하면 마지막에 계산된 전환값을 최종 값으로 확정합니다.

v1.32.1 - 개인정보보호 설정

trackingAuthorizeTimeout의 기본 설정이 0초에서 30초로 변경되었습니다.

도움이 되었나요?

더 필요한 내용이 있나요?