menu User Guide
개발자 가이드 chevron_right SDK 설치
React Native iOS Bridge SDK
Airbridge React Native iOS Bridge SDK

Agreement to Terms and Conditions on Advertising Identifier (IDFA)

To publish an app on App Store to track Airbridge iOS SDK install Advertising Identifier (IDFA), you must agree to its terms and conditions. The ad identifier is solely used as an unique ID to user install tracking, not for other uses such as personal information matching. Airbridge complies with the contents to Apple Program License Agreement.

  1. When you publish an app on App Store, check ‘Yes’ to the Advertising Identifier item.
  2. Also, please check the following two items: 'Attribute this app installation to a previously served advertisement.', and 'Limit Ad Tracking Setting in iOS'.

Quick Install and Setting

To Install with Cocoapods

Please set up the podfile as follows.

pod 'AirBridge'

With npm, install airbridge react-native sdk

npm install react-native-airbridge-bridge

after installation, you can link your project with the below command.

react-native link react-native-airbridge-bridge

drag-and-drop AirBridge.framework in Pods folder, the file to Framework folder of AirbridgeBridge project in Libraries.

Quick Settings

In javascript of React-Native, you can declare it such as the below for calling Airbridge API.

const AirbridgeApi = require('react-native-airbridge-bridge');

Initialize Airbridge SDK as the below along initializing point of app.

...
AirbridgeApi.init('[app name]', '[app token]');
...

'앱 영문명'과 '앱 토큰'은 대시보드의 '앱정보 관리 > 앱 기본 정보'에서 확인할 수 있습니다.

To Test SDK Execution

  1. Before testing, you must delete the app on device.
  2. Build the app with development tool, install on target device, and launch the app.
  3. Airbridge Dashboard → app selection → select 'Check SDK Installation' in 'Management' category of sidebar menu.
  4. Check the value as 'Device UUID (iOS IDFA)' in 'Check Mobile SDK Installation' menu.
  • iOS IDFA 확인: iOS 디바이스에서 '설정' → 개인 정보 보호 → 광고 → '광고 추적 제한' 끄기 → Safari 브라우저에서 'UDID.io' 검색 → Tap to find UDID → 허용 → 프로파일 설치 '설치' → 노출되는 페이지(get.udid.io)의 'UDID' 항목의 값이 iOS IDFA 입니다.
  • 'Mobile SDK 설치 확인' 메뉴에서 '디바이스 UUID (iOS IDFA)' 노출이 확인되지 않는다면 빠른 설치에 안내된 대로 설치되었는지 다시 한번 확인해주세요.
  • There will be 5 minutes delay(max) for showing Log.

To Integrate User Identity

Airbridge is a “People-based Analytics” service which integrates app, web, and offline ad performance analysis which stretches beyond the domain of mobile app.

To reach a purchase (conversion), a single user will go through multiple devices, platforms, and browsers, to ultimately reach to order placement based on compiled information through the process.

In this regard, data collected from a single device and/or single platform carries a limitation to perform a fragmented analysis. However, Airbridge’s People-Based analysis enables an integrated conversion analysis of the whole user because it bridges varying contact points across web, app, and offline platforms to a single user.

UserID & UserEmail Setup

As one method to User Identity integration, Airbridge strongly recommends at least one of ‘UserID’ or ‘UserEmail’ to be configured during iOS SDK install, as details below.

AirbridgeApi.setEmail('[User Email]');
AirbridgeApi.setUser('[User ID]');
  • When calling this method, we strongly recommend that you configure at least one value between UserID and UserEmail for an integrated analytics across web, mobile, and offline platforms.
  • Once this method is called, all values for user information will be hashed (SHA256) for it to be sent and managed.
  • For UserID and UserEmail of internal use, this method will retrieve that value again from S3 in csv format (externalUserID, externalUserEmail), so that funnel and/or attributed path as well as integration of identified user’s data can be confirmed. Later, it could be used for matching cross-platform users.

To Configure Default In-app Events

After installing app, user’s meaningful actions (conversions) can be registered as in-app events and you can measure performances by varying funnel and attributed paths.

The commonly looked up features such as “sign up”, “sign in”, “home view”, “product list view”, “search result view”, “product details view”, “add to cart”, and “purchase” will be offered with a separated method as a default in-app event. Also, for customized in-app events, when methods are dynamically called from SDK, it could be found from Dashboard once a single action is executed.

Airbridge basically supports a sum of 8 default in-app events. And tracking can be enabled with a separate method calling while installing SDK. All information attached to the events are optional, so it can be used without an attachment. Nonetheless, more information on events can translate into detailed and accurate statistical analysis (e.g. remarketing campaign, DSP integration). Therefore, it is recommended that people send this information.

  1. Sign Up
  2. Sign In
  3. Home View
  4. Product Instance
  5. Product List View
  6. Search Result View
  7. Product Details View
  8. Add to Cart
  9. Purchase
  10. Sign Out

Sign Up

To track in-app events during sign up, please call signUp while users are signing up. You can create user instance with calling makeUserObject.

makeUserObject: function(user) {
    return {
        userId: user['userId'] || '',
        userEmail: user['userEmail'] || ''
    };
}

Code Example :

_user = AirbridgeApi.makeUserObject({action: 'testAction', userId: 'UserAB'});
AirbridgeApi.signUp(_user);
  • When calling this method, we strongly recommend that you configure at least one value between UserID and UserEmail for effective data analysis.
  • Once this method is called, all values for user information will be hashed (SHA256) for it to be sent and managed.
  • For UserID and UserEmail for internal use, this method will retrieve that value again from S3 in a csv format (externalUserID, externalUserEmail), so that funnel and/or attributed path as well as integration of identified user’s data can be confirmed. Also, this value can be used to send server-to-server in-app events and for matching cross-platform users.

Sign In

To track in-app events during sign-in, please call signIn while users are signing in. You can create user instance with calling makeUserObject.

makeUserObject: function(user) {
    return {
        userId: user['userId'] || '',
        userEmail: user['userEmail'] || ''
    };
}

Code Example :

_user = AirbridgeApi.makeUserObject({action: 'testAction', userId: 'UserAB'});
AirbridgeApi.signIn(_user);
  • When calling this method, we strongly recommend configuring at least one value between UserID and UserEmail for effective data analysis.
  • Once this method is called, all values for user information will be hashed (SHA256) to be sent and managed.
  • For UserID and UserEmail for internal use, this method will retrieve that value again from S3 in csv format (externalUserID, externalUserEmail), so that funnel and/or attributed path as well as integration of identified user’s data can be confirmed. Also, this value can be used to send server-to-server in-app events and for matching cross-platform users.

Home View

To track in-app events looking up for home view, please call AirbridgeApi.sendViewHome while users are in home view.

Code Example :

AirbridgeApi.sendViewHome();

Create Product Instance

To track info related product, please create instance including product information via calling makeProduct. Product instance that were created, it can be used for 'product list views', 'search result view', 'product details page view', 'add to cart' and 'purchase'.

makeProduct: function(product) {
    return {
        productId: product['productId'] || '',
        name: product['name'] || '',
        currency: product['currency'] || 'KRW',
        price: product['price'] || 0,
        quantity: product['quantity'] || 0,
        positionInList: product['positionInList'] || 0
    };
}
...
_product = AirbridgeApi.makeProduct({productId: '1', price: 100},
_products = [AirbridgeApi.makeProduct({productId: '1', price: 100})]
Variable Type Details
productId (recommend) String Product’s unique ID. It is a recommended value for DSP integration.
name String Product name
currency String We follow currency information (ex. KRW) according to ISO 4217 standard
※ This value will later be added to the total amount of purchase for multinational servicing in future.
price int Price of item
quantity int Quantity of items purchased
positionInList int Actual position of the product from the list
※ It is used to reflect search result and priority information that are displayed to users from the product list.

Code Example :

_products = [AirbridgeApi.makeProduct({productId: '1', price: 100}), AirbridgeApi.makeProduct({productId: '2', quantity: 3})];
AirbridgeApi.sendCompleteOrder(_products, 'Transaction-123', true, 'KRW', 10000);

Product List View

To track in-app events during product list views, please call AirbridgeApi.sendViewProductList while users are looking up the list of products.

Code Example :

_product1 = AirbridgeApi.makeProduct({productId: '1', price: 100})
_product2 = AirbridgeApi.makeProduct({productId: 2, quantity: 3})
 _list = [AirbridgeApi.makeProduct(_product1,product2)];

 AirbridgeApi.sendViewProductList(‘리스트 ID, _list);

  • When users load new information through scrolling the list, we recommend that you send product information additionally loaded via that new event.
  • In case sent list of products to events do not match user’s viewed list, we recommend that you send an actual list order of products looked up by users via setPositionInList method of Product class. This information will be used to process ranking for products.
  • For more information on Product class, kindly refer to details below.

Search Result View

To track in-app events during product details page view, please call AirbridgeApi.sendViewSearchResult while users are looking up for product details.

Code Example :

_product1 = AirbridgeApi.makeProduct({productId: '1', price: 100})
_product2 = AirbridgeApi.makeProduct({productId: 2, quantity: 3})
_list = [AirbridgeApi.makeProduct(_product1,product2)];

AirbridgeApi.sendViewSearchResult(query, _list);

For more information on Product Instance, kindly refer to Create Product Instance.

Product Details View To track in-app events during product details page view, please send `AirbridgeApi.sendViewProductDetail` while users are looking up for product details. Code Example : ```javascript AirbridgeApi.sendViewProductDetail(AirbridgeApi.makeProduct({productId: '1', currency: 'KRW', price: 100})); ``` > For more information on Product Instance, kindly refer to [Create Product Instance](#product_instance_react_native_ios_en).

Add to Cart

To track in-app events during add-to-cart, please call AirbridgeApi.sendAddToCart while users are adding products to cart.

Code Example for ‘Campaign Attribution Analytics’ (for simple ROI measurement) :

AirbridgeApi.sendAddToCart(AirbridgeApi.makeProduct({productId: '1', currency: 'KRW', price: 100}),
cartId='Cart-123', currency='KRW', totalValue=10000);

For more information on Product Instance, kindly refer to Create Product Instance.

Purchase

To track in-app events during purchase, please call AirbridgeApi.sendCompleteOrder while users are completing order.

Code Example for ‘Campaign Attribution Analytics’ (for simple ROI measurement) :

_product1 = AirbridgeApi.makeProduct({productId: '1', price: 100})
_product2 = AirbridgeApi.makeProduct({productId: 2, quantity: 3})
_list = [AirbridgeApi.makeProduct(_product1,product2)];

AirbridgeApi.sendCompleteOrder(_list, ‘트랜잭션 ID, 인앱구매여부, ‘통화’, 총가격);

For more information on Product Instance, kindly refer to Create Product Instance.

Sign Out

To track in-app events during sign out, please call AirbridgeApi.expireUser() when users are signing out.

Method Type Details
expireUser void Logout event action

코드 예시 :

AirbridgeApi.expireUser();

Configuring Custom In-app Events

When dynamically calling method on SDK for desired in-app event, the result data could be viewed on Dashboard after at least one calling.

Variable Type Details
category String Event category
label String Event label
action String Event action
value int Event value

코드 예시 :

AirbridgeApi.goal('category', 'action', 'label', 100);

For more information on Category, Action, and Label, kindly refer to details as below.

In-app Events Grouping with Category / Action / Label

Airbridge offers in-app statistics based on a combination of three separate values: Category, Action, and Label. With default in-app event, the Category is pre-fixed so that values of Action and Label can be used freely. Also, there are four default in-app events capable of combining separated values: “Sign Up”, “Sign In”, “Add to Cart”, and “Purchase”. Customized statistical reports can make use of all three separate values of Category, Action, and Label. The following are real use cases.

  1. (Default) Category : Sign In (fixed) / Action : “Seoul” / Label : “Male”
  2. (Default) Category : Sign In (fixed) / Action : “Busan” / Label : “Female”
  3. (Default) Category : Purchase (fixed) / Action : “Use discount coupon” / Label : “Use Kakao Pay”
  4. (Custom) Category : “user-subscription-canceled” / Action : “premium” / Label : null

Combining too many Actions and Labels can delay real-time statistical reporting. Hence we strongly recommend to use the combination of a maximum number of 10,000 or below including all in-app events.

To track deep link execution on Airbridge, below codes must be called.

AirbridgeApi.deeplinkLaunched('http://deeplink?q=123');

To Configure Custom iOS App Time Duration

This guide will help you to make custom settings for app time duration on Android.

Default Value

On Airbridge Android, default app time duration is 300 seconds (5 min).

To Configure Custom App Time Duration

On Airbridge Android, app time duration can be adjusted to user’s needs.

Before calling AirBridge.init (initializing Airbridge), the following method can be called to adjust app time duration.

AirbridgeApi.setCustomSessionTimeOut(100);
...
AirbridgeApi.init('[app name]', '[app token]');
...

The setting period must be an integer, with a base unit of s (sec) that is no less than 0, and with a maximum value of 604,800 (7 days).

Search Results
keyboard_return Back