React native 2.X.X migration guide
변경사항
기존에 1.X.X 버전 에 있던 있던 event 전송 API 가 삭제 되고 아래의 API 로 대체 되었습니다.
/**
* Send event to server.
* @param {string} category event name
* @param {EventOption} [option={}] event options
*/
trackEvent(category: string, option?: EventOption): void;
option 정보는 null 일 수 있고 해당 정보에 action, label, value, customAttributes, semanticAttributes 사용이 가능합니다.
이벤트 설정 에서 자세한 내용을 확인하세요.
1.X.X 버전을 사용하신다면 아래의 React-native SDK 사용 가이드를 확인 바랍니다.
이벤트 전송 관련 된 API 가 변경 되어 이벤트 전송에 따른 코드를 아래와 같이 변경이 필요합니다.
1.X.X 에서 아래의 method 를 사용 중이라면 trackEvent(category: string, option?: EventOption)
로 전환 해야 합니다.
사용자 이벤트 전송 바로가기
회원가입
- Airbridge.event.signUp(user, option);
+ Airbridge.state.setUser({
+ ID: ...,
+ email: ...,
+ phone: ...,
+ alias: {},
+ attributes: {},
+ });
+ Airbridge.trackEvent(AirbridgeCategory.SIGN_UP, option);
Airbridge.event.signUp(user, option)
를 사용하고 있다면 변경이 필요합니다.
매개변수로 전달 하던 user 정보를 Airbridge.state.setUser()
에 채워주고 Airbridge.trackEvent(AirbridgeCategory.SIGN_UP, option)
으로 SIGN_UP
이벤트를 전달합니다.
로그인
- Airbridge.event.signIn(user, option);
+ Airbridge.state.setUser({
+ ID: ...,
+ email: ...,
+ phone: ...,
+ alias: {},
+ attributes: {},
+ });
+ Airbridge.trackEvent(AirbridgeCategory.SIGN_IN, option);
Airbridge.event.signIn(user, option)
를 사용하고 있다면 변경이 필요합니다.
매개변수로 전달 하던 user 정보를 Airbridge.state.setUser()
에 채워주고 Airbridge.trackEvent(AirbridgeCategory.SIGN_IN, option)
으로 SIGN_IN
이벤트를 전달합니다.
로그아웃
- Airbridge.event.signOut(option);
+ Airbridge.trackEvent(AirbridgeCategory.SIGN_OUT, option);
+ Airbridge.state.setUser({});
Airbridge.event.signOut(option)
를 사용하고 있다면 변경이 필요합니다.
Airbridge.trackEvent(AirbridgeCategory.SIGN_OUT, option)
으로 SIGN_OUT
이벤트를 전달하고,
Airbridge.state.setUser()
에 빈객체를 전달하여 현재 유저정보를 비워주세요.
이커머스 이벤트 전송 바로가기
홈 화면 조회
- Airbridge.event.viewHome(option);
+ Airbridge.trackEvent(AirbridgeCategory.HOME_VIEW, option);
Airbridge.event.viewHome(category, option)
를 사용하고 있다면 변경이 필요합니다.
Airbridge.trackEvent(AirbridgeCategory.HOME_VIEW, option)
으로 HOME_VIEW
이벤트를 전달합니다.
상품 상세 조회
- Airbridge.event.viewProductDetail(data?: {products?: Product[];}, option?: EventOption)
+ Airbridge.trackEvent(AirbridgeCategory.PRODUCT_DETAILS_VIEW, {
+ semanticAttributes: {
+ [AirbridgeAttributes.PRODUCTS]: [
+ {
+ [AirbridgeProduct.PRODUCT_ID]: '1',
+ [AirbridgeProduct.NAME]: 'product custom A name',
+ [AirbridgeProduct.PRICE]: 1000000,
+ [AirbridgeProduct.CURRENCY]: 'KRW',
+ [AirbridgeProduct.POSITION]: 1,
+ [AirbridgeProduct.QUANTITY]: 1,
+ },
+ ]
+ }
+ });
Airbridge.event.viewProductDetail(data, option)
를 사용하고 있다면 변경이 필요합니다.
Airbridge.trackEvent(AirbridgeCategory.PRODUCT_DETAILS_VIEW, option)
으로 PRODUCT_DETAILS_VIEW
이벤트를 전달합니다.
기존 api 의 매개변수에 값을 option 에 객체에 담아서 전달 한다.
product
=>semanticAttributes.[AirbridgeAttributes.PRODUCTS]
상품 리스트 조회
- Airbridge.event.viewProductList(data?: {listID?: string; products?: Product[];}, option?:EventOption);
+ Airbridge.trackEvent(AirbridgeCategory.PRODUCT_LIST_VIEW, {
+ semanticAttributes: {
+ [AirbridgeAttributes.PRODUCT_LIST_ID]: 'ID-1234567890'
+ [AirbridgeAttributes.PRODUCTS]: [
+ {
+ [AirbridgeProduct.PRODUCT_ID]: '1',
+ [AirbridgeProduct.NAME]: 'product A',
+ [AirbridgeProduct.PRICE]: 1000000,
+ [AirbridgeProduct.CURRENCY]: 'KRW',
+ [AirbridgeProduct.POSITION]: 1,
+ [AirbridgeProduct.QUANTITY]: 1,
+ },
+ {
+ [AirbridgeProduct.PRODUCT_ID]: '2',
+ [AirbridgeProduct.NAME]: 'product B',
+ [AirbridgeProduct.PRICE]: 1000000,
+ [AirbridgeProduct.CURRENCY]: 'KRW',
+ [AirbridgeProduct.POSITION]: 2,
+ [AirbridgeProduct.QUANTITY]: 1,
+ },
+ ]
+ }
+ });
Airbridge.event.viewProductList(data, option)
를 사용하고 있다면 변경이 필요합니다.
Airbridge.trackEvent(AirbridgeCategory.PRODUCT_LIST_VIEW, option)
으로 PRODUCT_LIST_VIEW
이벤트를 전달합니다.
기존 api 의 매개변수에 값을 option 에 객체에 담아서 전달 한다.
listID
=>semanticAttributes.[AirbridgeAttributes.PRODUCT_LIST_ID]
product
=>semanticAttributes.[AirbridgeAttributes.PRODUCTS]
검색결과 조회
- Airbridge.event.viewSearchResult(data?: {query?: string; products?: Product[];}, option?:EventOption)
+ Airbridge.trackEvent(AirbridgeCategory.SEARCH_RESULT_VIEW, {
+ semanticAttributes: {
+ [AirbridgeAttributes.QUERY]: 'product'
+ [AirbridgeAttributes.PRODUCTS]: [
+ {
+ [AirbridgeProduct.PRODUCT_ID]: '1',
+ [AirbridgeProduct.NAME]: 'product A',
+ [AirbridgeProduct.PRICE]: 1000000,
+ [AirbridgeProduct.CURRENCY]: 'KRW',
+ [AirbridgeProduct.POSITION]: 1,
+ [AirbridgeProduct.QUANTITY]: 1,
+ },
+ {
+ [AirbridgeProduct.PRODUCT_ID]: '2',
+ [AirbridgeProduct.NAME]: 'product B',
+ [AirbridgeProduct.PRICE]: 1000000,
+ [AirbridgeProduct.CURRENCY]: 'KRW',
+ [AirbridgeProduct.POSITION]: 2,
+ [AirbridgeProduct.QUANTITY]: 1,
+ },
+ ]
+ }
+ });
Airbridge.event.viewSearchResult(data, option)
를 사용하고 있다면 변경이 필요합니다.
Airbridge.trackEvent(AirbridgeCategory.SEARCH_RESULT_VIEW, option)
으로 SEARCH_RESULT_VIEW
이벤트를 전달합니다.
기존 api 의 매개변수에 값을 option 에 객체에 담아서 전달 한다.
query
=>semanticAttributes.[AirbridgeAttributes.QUERY]
product
=>semanticAttributes.[AirbridgeAttributes.PRODUCTS]
장바구니 담기
- Airbridge.event.addToCart(data?: {cartID?: string; products?: Product[]; currency?: string; total?: number;}, option?: EventOption)
+ Airbridge.trackEvent(AirbridgeCategory.ADD_TO_CART, {
+ semanticAttributes: {
+ [AirbridgeAttributes.CART_ID]: 'ID-1234567890',
+ [AirbridgeAttributes.CURRENCY]: 'KRW',
+ [AirbridgeAttributes.TOTAL_VALUE]: 2000000,
+ [AirbridgeAttributes.PRODUCTS]: [
+ {
+ [AirbridgeProduct.PRODUCT_ID]: '1',
+ [AirbridgeProduct.NAME]: 'product A',
+ [AirbridgeProduct.PRICE]: 1000000,
+ [AirbridgeProduct.CURRENCY]: 'KRW',
+ [AirbridgeProduct.POSITION]: 1,
+ [AirbridgeProduct.QUANTITY]: 1,
+ },
+ {
+ [AirbridgeProduct.PRODUCT_ID]: '2',
+ [AirbridgeProduct.NAME]: 'product B',
+ [AirbridgeProduct.PRICE]: 1000000,
+ [AirbridgeProduct.CURRENCY]: 'KRW',
+ [AirbridgeProduct.POSITION]: 2,
+ [AirbridgeProduct.QUANTITY]: 1,
+ },
+ ]
+ }
+ });
Airbridge.event.addToCart(data, option)
를 사용하고 있다면 변경이 필요합니다.
Airbridge.trackEvent(AirbridgeCategory.ADD_TO_CART, option)
으로 ADD_TO_CART
이벤트를 전달합니다.
기존 api 의 매개변수에 값을 option 에 객체에 담아서 전달 한다.
cartID
=>semanticAttributes.[AirbridgeAttributes.CART_ID]
product
=>semanticAttributes.[AirbridgeAttributes.PRODUCTS]
currency
=>semanticAttributes.[AirbridgeAttributes.CURRENCY]
total
=>semanticAttributes.[AirbridgeAttributes.TOTAL_VALUE]
결제
- Airbridge.event.purchase(data?: {transactionID?: string; products?: Product[]; isInAppPurchase?: boolean; currency?: string; total?: number;}, option?: EventOption)
+ Airbridge.trackEvent(AirbridgeCategory.ORDER_COMPLETED, {
+ semanticAttributes: {
+ [AirbridgeAttributes.TRANSACTION_ID]: 'transactionID-purchase',
+ [AirbridgeAttributes.CURRENCY]: 'KRW',
+ [AirbridgeAttributes.TOTAL_VALUE]: 2000000,
+ [AirbridgeAttributes.IN_APP_PURCHASED]: true,
+ [AirbridgeAttributes.PRODUCTS]: [
+ {
+ [AirbridgeProduct.PRODUCT_ID]: '1',
+ [AirbridgeProduct.NAME]: 'product A',
+ [AirbridgeProduct.PRICE]: 1000000,
+ [AirbridgeProduct.CURRENCY]: 'KRW',
+ [AirbridgeProduct.POSITION]: 1,
+ [AirbridgeProduct.QUANTITY]: 1,
+ },
+ {
+ [AirbridgeProduct.PRODUCT_ID]: '2',
+ [AirbridgeProduct.NAME]: 'product B',
+ [AirbridgeProduct.PRICE]: 1000000,
+ [AirbridgeProduct.CURRENCY]: 'KRW',
+ [AirbridgeProduct.POSITION]: 2,
+ [AirbridgeProduct.QUANTITY]: 1,
+ },
+ ]
+ }
+ });
Airbridge.event.purchase(data, option)
를 사용하고 있다면 변경이 필요합니다.
Airbridge.trackEvent(AirbridgeCategory.ORDER_COMPLETED, option)
으로 ORDER_COMPLETED
이벤트를 전달합니다.
기존 api 의 매개변수에 값을 option 에 객체에 담아서 전달 한다.
transactionID
=>semanticAttributes.[AirbridgeAttributes.TRANSACTION_ID]
product
=>semanticAttributes.[AirbridgeAttributes.PRODUCTS]
isInAppPurchase
=>semanticAttributes.[AirbridgeAttributes.IN_APP_PURCHASED]
total
=>semanticAttributes.[AirbridgeAttributes.TOTAL_VALUE]
사용자 이벤트
- Airbridge.event.custom(category, option)
+ Airbridge.trackEvent(category, option);
Airbridge.event.custom(category, option)
를 사용하고 있다면 변경이 필요합니다.
Airbridge.trackEvent(category, option)
으로 이벤트를 전달합니다.