• 개발자 가이드
  • SDK Integration
  • Expo SDK

SDK 마이그레이션 가이드 - 엑스포 SDK

에어브릿지 엑스포 SDK의 업데이트에 필요한 사항을 확인할 수 있습니다. 현재 버전 이후부터 업데이트 이후 버전까지의 사항을 모두 확인하는 것을 권장합니다.

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

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

SDK 설치 및 초기화

airbridge.json 의 키값이 변경되었습니다. 아래와 같이 키값을 변경해 주세요.

딥링크

Airbridge.setDeeplinkListener 함수가 Airbridge.setOnDeeplinkReceived 함수로 대체되었습니다.

- import Airbridge from 'airbridge-react-native-sdk'- ...- Airbridge.setDeeplinkListener((url) => {- // show proper content- })+ import { Airbridge } from 'airbridge-react-native-sdk'+ ...+ Airbridge.setOnDeeplinkReceived((url) => {+ // show proper content+ })

커스텀 도메인 설정하기

v2.x 에서 사용 되던 커스텀 도메인 주소 플랫폼 별로 설정하던 방식이 변경되었습니다.

에어브릿지 SDK 초기화시 airbridge.json 의 trackingLinkCustomDomains에 커스텀 도메인 링크를 추가 할 수 있습니다

{ "trackingLinkCustomDomains": ["YOUR_APP_CUSTOM_DOMAIN"]}

인앱 이벤트 및 유저 정보

주의하세요

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

AirbridgeAttributes.TOTAL_VALUE 를 사용하고 value 를 정의하면 AirbridgeAttributes.TOTAL_VALUEvalue 를 덮어 쓰는 로직은 v4부터 삭제되었습니다.

Airbridge.event.trackEvent 함수가 Airbridge.trackEvent 함수로 대체되었습니다.

아래 예시코드를 따라 Airbridge.event.trackEvent 함수를 Airbridge.trackEvent함수로 변경해 주세요.

- import Airbridge, { AirbridgeAttributes } from 'airbridge-react-native-sdk'- ...- Airbridge.event.trackEvent('event', {- action: '...',- label: '...',- value: 100,- semanticAttributes: {- [AirbridgeAttributes.QUERY]: '...',- },- customAttributes: {- 'key1': '...',- 'key2': '...',- 'key3': '...',- },- })+ import { Airbridge, AirbridgeAttribute } from 'airbridge-react-native-sdk'+ ...+ Airbridge.trackEvent('event', {+ [AirbridgeAttribute.ACTION]: '...',+ [AirbridgeAttribute.LABEL]: '...',+ [AirbridgeAttribute.VALUE]: 100,+ [AirbridgeAttribute.QUERY]: '...',+ }, {+ 'key1': '...',+ 'key2': '...',+ 'key3': '...',+ })

주의하세요

Airbridge.event.trackEvent 함수의 두 번째 파라미터에 해당하는 action , label , value , semanticAttributes 값은 Airbridge.trackEvent 함수의 두 번째 파라미터에 포함되어야 합니다.

Airbridge.event.trackEvent 함수의 두 번째 파라미터에 해당하는 customAttributes 값은 Airbridge.trackEvent 함수의 세 번째 파라미터에 포함되어야 합니다.

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

- import Airbridge from 'airbridge-react-native-sdk'- ...- Airbridge.state.setUser({ ID: '...', email: '...' })- Airbridge.state.updateUser({ phone: '...' })+ import { Airbridge } from 'airbridge-react-native-sdk'+ ...+ Airbridge.setUserID('...')+ Airbridge.setUserEmail('...')+ Airbridge.setUserPhone('...')

추가 설정하기

Airbridge.setAttributionListener 함수가 Airbridge.SetOnAttributionReceived 함수로 대체되었습니다.

- import Airbridge from 'airbridge-react-native-sdk'- ...- Airbridge.setAttribuitonListener((attribution) => {- // using attribution- })+ import { Airbridge } from 'airbridge-react-native-sdk'+ ...+ Airbridge.setOnAttributionReceived((attribution) => {+ // using attribution+ })

Airbridge.placement.click , Airbridge.placement.impression 함수가 Airbridge.click , Airbridge.impression 함수로 대체되었습니다.

- import Airbridge from 'airbridge-react-native-sdk'- ...- Airbridge.placement.click(url)- Airbridge.placement.impression(url)+ import { Airbridge } from 'airbridge-react-native-sdk'+ ...+ Airbridge.click(url)+ Airbridge.impression(url)

Airbridge.createWebInterface 함수가 Airbridge.createWebInterfaceScript , Airbridge.handleWebInterfaceCommand 함수로 대체되었습니다.

- import Airbridge from 'airbridge-react-native-sdk'- ...- const { script, handle } = Airbridge.createWebInterface(- 'YOUR_WEB_TOKEN',- (command) => { - return `window.ReactNativeWebView.postMessage(${command})`- },- )- <WebView- source={{ uri: 'https://...' }}- onMessage={(command) => { handle(command) }}- injectedJavaScript={script} />+ import { Airbridge } from 'airbridge-react-native-sdk'+ ...+ const script = await Airbridge.createWebInterface(+ 'YOUR_WEB_TOKEN',+ 'window.ReactNativeWebView.postMessage(payload)',+ )+ <WebView+ source={{ uri: 'https://...' }}+ onMessage={(command) => { Airbridge.handleWebInterfaceCommand(command) }}+ injectedJavaScript={script} />

v2.x 업데이트

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

v2.6.0 - 딥링크

2023년 9월 4일 이후에 생성된 에어브릿지 앱의 경우, 딥링크 콜백에서 제공하는 딥링크 URL 이 에어브릿지 대시보드에 입력된 내용을 2번 디코딩하여 제공하는 문제가 v2.5.0 ~ v2.5.2 에 있었던 것이 해결되었습니다.

v2.5.1 - 딥링크

2023년 9월 4일 이후에 생성된 에어브릿지 앱에는 딥링크 콜백에서 제공하는 딥링크 URL에 airbridge_referrer가 추가되지 않습니다.

ios app을 업데이트하면 마지막으로 계산된 SKAdNetwork Conversion Value 로 확정됩니다. 추가적인 계산은 진행하지 않습니다.

  • 2.5.1 미만 버전에서는 SKAdNetwork Conversion Value 를 최대 24시간 동안만 계산합니다.

  • 새롭게 앱을 설치하는 유저는 해당하지 않습니다.

deeplink.page 가 deprecated 되었습니다. 2.5.1 부터는 abr.ge 로 딥링크 도메인을 사용해 코드를 작성하는 것을 권장합니다.

  • deeplink.page 는 하위 호환을 위해 계속 지원 및 동작할 예정입니다.

v2.5.0 - 개인정보보호 설정

trackingAuthorizeTimeout 의 기본값이 30초로 변경됩니다.