This article contains the information required to update the Airbridge Expo SDK. We recommend checking the information regarding all versions.
Check the information below when updating the Airbridge Expo SDK to 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 | - |
The key values of airbridge.json have been changed. Change the key values as follows.
airbridge.json (v2) | airbridge.json (v4) |
---|---|
trackingAuthorizeTimeoutSeconds | autoDetermineTrackingAuthorizationTimeoutInSecond |
facebookDeferredAppLinkEnabled | trackMetaDeferredAppLinkEnabled |
sessionTimeoutSeconds | sessionTimeoutInSecond |
metaInstallReferrer | metaInstallReferrerAppID |
trackAirbridgeLinkOnly | trackAirbridgeDeeplinkOnlyEnabled |
userInfoHashEnabled | hashUserInformationEnabled |
sdkSignatureSecretID | sdkSignatureID |
sdkSignatureSecret | sdkSignatureSecret |
The Airbridge.setDeeplinkListener
function has been replaced with the Airbridge.setOnDeeplinkReceived
function.
- 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
를 덮어 쓰는 로직은 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초로 변경됩니다.
도움이 되었나요?