에어브릿지 Expo SDK의 업데이트에 필요한 사항을 확인할 수 있습니다. 현재 버전 이후부터 업데이트 이후 버전까지의 사항을 모두 확인하는 것을 권장합니다.
에어브릿지 Expo SDK를 v4.0으로 업데이트하면 확인해 주세요.
airbridge.json (v2) | airbridge.json (v4) | 변경점 |
---|---|---|
- | sdkEnabled | 새로운 기능이 추가되었습니다. |
logLevel | logLevel | - |
autoStartTrackingEnabled | autoStartTrackingEnabled | - |
trackingAuthorizeTimeoutSeconds | autoDetermineTrackingAuthorizationTimeoutInSecond | 이름이 변경되었습니다. |
facebookDeferredAppLinkEnabled | trackMetaDeferredAppLinkEnabled | 이름이 변경되었습니다. |
sessionTimeoutSeconds | sessionTimeoutInSecond | 이름이 변경되었습니다. |
metaInstallReferrer | metaInstallReferrerAppID | 이름이 변경되었습니다. |
trackAirbridgeLinkOnly | trackAirbridgeDeeplinkOnlyEnabled | 이름이 변경되었습니다. |
- | trackInSessionLifecycleEventEnabled | 새로운 기능이 추가되었습니다. |
userInfoHashEnabled | hashUserInformationEnabled | 이름이 변경되었습니다. |
sdkSignatureSecretID | sdkSignatureID | 이름이 변경되었습니다. |
sdkSignatureSecret | sdkSignatureSecret | 이름이 변경되었습니다. |
- | clearEventBufferOnInitializeEnabled | 새로운 기능이 추가되었습니다. |
- | eventBufferCountLimit | 새로운 기능이 추가되었습니다. |
- | eventBufferSizeLimitInGibibyte | 새로운 기능이 추가되었습니다. |
- | eventTransmitIntervalInSecond | 새로운 기능이 추가되었습니다. |
Airbridge (v2) | Airbridge (v4) | 변경점 |
---|---|---|
state.setAttributionListener | setOnAttributionReceived | 이름이 변경되었습니다. |
deeplink.setDeeplinkListener | setOnDeeplinkReceived | 이름이 변경되었습니다. |
event.trackEvent | trackEvent | 이름이 변경되었습니다. 어트리뷰트를 입력받는 방식이 변경되었습니다. |
state.deviceUUID | fetchDeviceUUID | 이름이 변경되었습니다. 값을 콜백으로 제공하도록 변경되었습니다. |
- | fetchAirbridgeGeneratedUUID | 새로운 기능이 추가되었습니다. |
- | isUninstallTrackingNotification | 새로운 기능이 추가되었습니다. |
placement.click | click | 이름이 변경되었습니다. 콜백 기능이 추가되었습니다. |
placement.impression | impression | 이름이 변경되었습니다. 콜백 기능이 추가되었습니다. |
state.setUser | - | User 관련 함수들로 대체되었습니다. |
state.updateUser | - | User 관련 함수들로 대체되었습니다. |
- | setUserID | 새로운 기능이 추가되었습니다. |
- | clearUserID | 새로운 기능이 추가되었습니다. |
- | setUserEmail | 새로운 기능이 추가되었습니다. |
- | clearUserEmail | 새로운 기능이 추가되었습니다. |
- | setUserPhone | 새로운 기능이 추가되었습니다. |
- | clearUserPhone | 새로운 기능이 추가되었습니다. |
- | setUserAttribute | 새로운 기능이 추가되었습니다. |
- | removeUserAttribute | 새로운 기능이 추가되었습니다. |
- | clearUserAttributes | 새로운 기능이 추가되었습니다. |
- | setUserAlias | 새로운 기능이 추가되었습니다. |
- | removeUserAlias | 새로운 기능이 추가되었습니다. |
- | clearUserAlias | 새로운 기능이 추가되었습니다. |
- | clearUser | 새로운 기능이 추가되었습니다. |
setDeviceAlias | setDeviceAlias | - |
removeDeviceAlias | removeDeviceAlias | - |
clearDeviceAlias | clearDeviceAlias | - |
registerPushToken | registerPushToken | - |
- | enableSDK | 새로운 기능이 추가되었습니다. |
- | disableSDK | 새로운 기능이 추가되었습니다. |
- | isSDKEnabled | 새로운 기능이 추가되었습니다. |
state.startTracking | startTracking | 이름이 변경되었습니다. |
- | stopTracking | 새로운 기능이 추가되었습니다. |
- | isTrackingEnabled | 새로운 기능이 추가되었습니다. |
createWebInterface | - | WebInterface 관련 함수들로 대체되었습니다. |
- | createWebInterfaceScript | 새로운 기능이 추가되었습니다. |
- | handleWebInterfaceCommand | 새로운 기능이 추가되었습니다. |
AirbridgeCategory (v2) | AirbridgeCategory (v4) | 변경점 |
---|---|---|
SIGN_UP | SIGN_UP | - |
SIGN_IN | SIGN_IN | - |
SIGN_OUT | SIGN_OUT | - |
HOME_VIEWED | HOME_VIEWED | - |
PRODUCT_LIST_VIEWED | PRODUCT_LIST_VIEWED | - |
SEARCH_RESULTS_VIEWED | SEARCH_RESULTS_VIEWED | - |
PRODUCT_VIEWED | PRODUCT_VIEWED | - |
ADD_PAYMENT_INFO | ADD_PAYMENT_INFO | - |
ADD_TO_WISHLIST | ADD_TO_WISHLIST | - |
ADD_TO_CART | ADDED_TO_CART | - |
INITIATE_CHECKOUT | INITIATE_CHECKOUT | - |
ORDER_COMPLETED | ORDER_COMPLETED | - |
ORDER_CANCELED | ORDER_CANCELED | - |
START_TRIAL | START_TRIAL | - |
SUBSCRIBE | SUBSCRIBE | - |
UNSUBSCRIBE | UNSUBSCRIBE | - |
AD_IMPRESSION | AD_IMPRESSION | - |
AD_CLICK | AD_CLICK | - |
COMPLETE_TUTORIAL | COMPLETE_TUTORIAL | - |
ACHIEVE_LEVEL | ACHIEVE_LEVEL | - |
UNLOCK_ACHIEVEMENT | UNLOCK_ACHIEVEMENT | - |
RATE | RATE | - |
SHARE | SHARE | - |
SCHEDULE | SCHEDULE | - |
SPEND_CREDITS | SPEND_CREDITS | - |
AirbridgeAttributes (v2) | AirbridgeAttribute (v4) | 변경점 |
---|---|---|
- | ACTION | 새로운 기능이 추가되었습니다. |
- | LABEL | 새로운 기능이 추가되었습니다. |
- | VALUE | 새로운 기능이 추가되었습니다. |
TOTAL_VALUE | - | VALUE로 대체되었습니다. |
CURRENCY | CURRENCY | - |
ORIGINAL_CURRENCY | ORIGINAL_CURRENCY | - |
PRODUCTS | PRODUCTS | - |
PERIOD | PERIOD | - |
IS_RENEWAL | IS_RENEWAL | - |
RENEWAL_COUNT | RENEWAL_COUNT | - |
PRODUCT_LIST_ID | PRODUCT_LIST_ID | - |
CART_ID | CART_ID | - |
TRANSACTION_ID | TRANSACTION_ID | - |
TRANSACTION_TYPE | TRANSACTION_TYPE | - |
TRANSACTION_PAIRED_EVENT_CATEGORY | TRANSACTION_PAIRED_EVENT_CATEGORY | - |
TRANSACTION_PAIRED_EVENT_TIMESTAMP | TRANSACTION_PAIRED_EVENT_TIMESTAMP | - |
TOTAL_QUANTITY | TOTAL_QUANTITY | - |
QUERY | QUERY | - |
IN_APP_PURCHASED | IN_APP_PURCHASED | - |
CONTRIBUTION_MARGIN | CONTRIBUTION_MARGIN | - |
ORIGINAL_CONTRIBUTION_MARGIN | ORIGINAL_CONTRIBUTION_MARGIN | - |
LIST_ID | LIST_ID | - |
RATE_ID | RATE_ID | - |
RATE | RATE | - |
MAX_RATE | MAX_RATE | - |
ACHIEVEMENT_ID | ACHIEVEMENT_ID | - |
SHARED_CHANNEL | SHARED_CHANNEL | - |
DATE_TIME | DATE_TIME | - |
DESCRIPTION | DESCRIPTION | - |
IS_REVENUE | IS_REVENUE | - |
PLACE | PLACE | - |
SCHEDULE_ID | SCHEDULE_ID | - |
TYPE | TYPE | - |
LEVEL | LEVEL | - |
SCORE | SCORE | - |
AD_PARTNERS | AD_PARTNERS | - |
IS_FIRST_PER_USER | IS_FIRST_PER_USER | - |
AirbridgeProduct (v2) | AirbridgeAttribute (v4) | 변경점 |
---|---|---|
PRODUCT_ID | PRODUCT_ID | - |
PRODUCT_NAME | PRODUCT_NAME | - |
PRODUCT_PRICE | PRODUCT_PRICE | - |
PRODUCT_QUANTITY | PRODUCT_QUANTITY | - |
PRODUCT_CURRENCY | PRODUCT_CURRENCY | - |
PRODUCT_POSITION | PRODUCT_POSITION | - |
PRODUCT_CATEGORY_ID | PRODUCT_CATEGORY_ID | - |
PRODUCT_CATEGORY_NAME | PRODUCT_CATEGORY_NAME | - |
PRODUCT_BRAND_ID | PRODUCT_BRAND_ID | - |
PRODUCT_BRAND_NAME | PRODUCT_BRAND_NAME | - |
AirbridgeRN (v2) | AirbridgeReactNative (v4) | 변경점 |
---|---|---|
getInstance | initializeSDK | 이름이 변경되었습니다. |
deeplink.handleURLSchemeDeeplink | trackDeeplink | 이름이 변경되었습니다. |
deeplink.handleUserActivity | trackDeeplink | 이름이 변경되었습니다. |
AirbridgeRN (v2) | AirbridgeReactNative (v4) | 변경점 |
---|---|---|
init | initializeSDK | 이름이 변경되었습니다. |
processDeeplinkData | trackDeeplink | 이름이 변경되었습니다. |
setLifecycleIntegration | - |
airbridge.json 의 키값이 변경되었습니다. 아래와 같이 키값을 변경해 주세요.
airbridge.json (v2) | airbridge.json (v4) |
---|---|
trackingAuthorizeTimeoutSeconds | autoDetermineTrackingAuthorizationTimeoutInSecond |
facebookDeferredAppLinkEnabled | trackMetaDeferredAppLinkEnabled |
sessionTimeoutSeconds | sessionTimeoutInSecond |
metaInstallReferrer | metaInstallReferrerAppID |
trackAirbridgeLinkOnly | trackAirbridgeDeeplinkOnlyEnabled |
userInfoHashEnabled | hashUserInformationEnabled |
sdkSignatureSecretID | sdkSignatureID |
sdkSignatureSecret | sdkSignatureSecret |
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
+ })
주의하세요
기존
AirbridgeAttributes.TOTAL_VALUE
대신AirbridgeAttribute.VALUE
에 값을 입력해 주세요.
AirbridgeAttributes.TOTAL_VALUE
를 사용하고value
를 정의하면AirbridgeAttributes.TOTAL_VALUE
가value
를 덮어 쓰는 로직은 Expo SDK 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} />
Expo SDK 각 버전의 주요 변경사항을 참고해 주세요.
2023년 9월 4일 이후에 생성된 에어브릿지 앱의 경우, 딥링크 콜백에서 제공하는 딥링크 URL 이 에어브릿지 대시보드에 입력된 내용을 2번 디코딩하여 제공하는 문제가 v2.5.0 ~ v2.5.2 에 있었던 것이 해결되었습니다.
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 는 하위 호환을 위해 계속 지원 및 동작할 예정입니다.
trackingAuthorizeTimeout
의 기본값이 30초로 변경됩니다.
도움이 되었나요?