menu User Guide
개발자 가이드 chevron_right SDK 설치
Android SDK
Airbridge Android SDK must be integrated to track install, launch, in-app event, and retention of an Android app via Airbridge service.

Quick Install and Setting

Quick Install

Installing with Android Studio

Open file named build.gradle from project’s app module folder (generally named app/) and insert the following to dependencies.

compile 'io.airbridge:sdk-android:1.3.+'

Setting Up AndroidManifest.xml

Please add the following permission to AndroidManifest.xml.

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
      <uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/>
      <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>

Google Play Install Referrer API Integration (for fraud prevention)

Please add Google Play Install Referrer API library to build.gradle file on app as follows. With a line break, integration with Google Play Install Referrer API will be completed.

dependencies {
    ...
    compile 'com.android.installreferrer:installreferrer:1.0'
}

Setting for Proguard

[Proguard] If you are using Proguard (https://d.android.com/studio/build/shrink-code.html), kindly refer to the following details.

In Android Studio, insert the following to the ‘lib-proguard-rules.txt’ file.

-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {public *;}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info { public *;}
-keep class com.android.installreferrer.api.InstallReferrerClient {public *;}
-keep class com.android.installreferrer.api.InstallReferrerClient$newBuilder { public *;}
-keep class com.android.installreferrer.api.InstallReferrerClient$Builder { public *;}
-keep class com.android.installreferrer.api.ReferrerDetails {public *;}
-keep class com.android.installreferrer.api.InstallReferrerStateListener {public *;}
-keep class io.airbridge.deviceinfo.** { *; }

In Eclipse, insert the following to the proguard-rules.pro file.

-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {public *;}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info { public *;}
-keep class com.android.installreferrer.api.InstallReferrerClient {public *;}
-keep class com.android.installreferrer.api.InstallReferrerClient$newBuilder { public *;}
-keep class com.android.installreferrer.api.InstallReferrerClient$Builder { public *;}
-keep class com.android.installreferrer.api.ReferrerDetails {public *;}
-keep class com.android.installreferrer.api.InstallReferrerStateListener {public *;}
-keep class io.airbridge.deviceinfo.** { *; }

Installs with Maven

[Maven] If you are with Maven (http://maven.apache.org/), please go to project’s pom.xml and find dependency to insert the details as below.

<dependency>
    <groupId>io.airbridge</groupId>
    <artifactId>sdk-android</artifactId>
    <version>1.3.0</version>
</dependency>

Installs in Eclipse

From Link, Download SDK .jar file from the link and go to project setting (Java Build Path > Libraries) to add the corresponding .jar file.

Quick Setting

Select onCreate method from Application class to insert the following codes.

public void onCreate() {
    super.onCreate();
    ...
    AirBridge.init(this, "[app name]", "[app token]");
}

'app name' and 'app token' can be checked by navigating Dashboard ('app information > app basic information'.

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 Android SDK install, as details below.

By calling and saving the following method on setting, you can setup UserID and UserEmail. We recommend calling methods to activities with sign-in/sign-up or app’s default activity (introduction).

AirBridge.getTracker().setUserId("test-user-id");
AirBridge.getTracker().setUserEmail("test-email@foo.com");
  • When calling this method, we strongly recommend that you save 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 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 also be used for cross-platform user matching.

Setting Period for Cross Platform Matching(Web - App)

Airbridge is able to provide total analytics for Cross Platform Matching(Web-App) via ADID-Cookie Matching. For effective Cross Platform Matching(Web-App), you can add code snippets in Application class as the below.

class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        // 다음 코드를 추가
        AirBridge.setCookieMatchingPeriod(3);
    }
}

Type of this period is a long type, the unit is d(day), also default value is 7(days), it should be more than 1(day).

To Configure Default In-app Events

After app install, 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 used “sign up”, “sign in”, “look up home”, ““look up product list”, ““look up search result”, ““look up product details”, “add to cart”, and “purchase” features will be offered with a separate method as a default in-app event. Also, for custom in-app events, when dynamically calling method from SDK, the result data could be found from Dashboard once a single action is executed.

Airbridge basically supports a sum of 8 default in-app events. And tracking is enabled with a separate method call while installing SDK. All information attached to the events are optional, so it can also 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 advised that people send this information.

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

Sign Up

To track in-app events during sign up, please send SignUpEvent while users are signing up.

Constructor Type Details
SignUpEvent - null sign up event
method type details
setAction String event action
setLabel String event label
setUserId String UserID
setUserEmail String UserEmail

Code Example :

SignUpEvent event = new SignUpEvent()
        .setUserId("test-user-id")
        .setUserEmail("test-email@foo.com");

AirBridge.getTracker().sendEvent(event);
  • 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 send SignInEvent while users are signing in.

Constructor Type Details
SignInEvent - null sign up event
method type details
setAction String event action
setLabel String event label
setUserId String UserID
setUserEmail String UserEmail

Code Example :

SignInEvent event = new SignInEvent()
        .setUserId("test-user-id")
        .setUserEmail("test-email@foo.com");

AirBridge.getTracker().sendEvent(event);
  • 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 send HomeViewEvent while users are in home view.

Constructor Type Details
HomeViewEvent - Home View Event

Code Example :

HomeViewEvent event = new HomeViewEvent();
AirBridge.getTracker().sendEvent(event);

Product List View

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

Constructor Type Details
ProductListViewEvent - look up events with null product list
ProductListViewEvent String, List<Product> look up events with list of products including list ID and product name
ProductListViewEvent String, Product look up events with list of products including list ID and a single product item
method type details
setListId String product list ID
addProduct Product add to product list

Code Example :

// Add Product Information
Product product1 = new Product();
product1.setProductId("product_id_100600");
product1.setName("Apple MacBook Pro");
product1.setPrice(2160000);
product1.setPositionInList(1);

Product product2 = new Product();
product2.setProductId("product_id_100800");
product2.setName("Samsung Notebook5");
product2.setPrice(1420000);
product2.setPositionInList(2);

// Add Product List
List<Product> products = Arrays.asList(product1, product2);
ProductListViewEvent event = new ProductListViewEvent("list_id_200400", products);

AirBridge.getTracker().sendEvent(event);
  • 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 while looking up for search result, please send SearchResultViewEvent while users are searching products.

Creator Type Details
SearchResultViewEvent - search result event
SearchResultViewEvent String, List<Product> search result events with search query and product search result list
SearchResultViewEvent String, Product search result events with search query and search result on a single product item
method type details
setQuery String add search word (query) information from the search
addProduct Product add product to search result

Code Example :

SearchResultViewEvent event = new SearchResultViewEvent ("24inch monitor", products);

AirBridge.getTracker().sendEvent(event);

For more information on Product class, kindly refer to [details below] for Product class.

Product Details View

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

Constructor Type Details
ProductDetailsViewEvent - Events looking up for product details page
ProductDetailsViewEvent List <Product> Events looking up for product details page for multiple products
ProductDetailsViewEvent Product Events looking up for product detail page of a single product item

Code Example :

ProductDetailsViewEvent event = new ProductDetailsViewEvent(product);
AirBridge.getTracker().sendEvent(event);

For more information on Product class, kindly refer to [details below] for Product class.

Add to Cart

To track in-app events during add-to-cart, please send AddedToCartEvent while users are adding products to cart.

Constructor Type Details
AddedToCartEvent - Add to Cart Event
AddedToCartEvent String, List<Product> events with added carts including cart ID and multiple products
AddedToCartEvent String, Product events with added carts including cart ID and a single product item
method type details
setCartId (for DSP Integration) String unique ID of cart
addProduct (for DSP Integration) Product products added to cart
setCurrency (for Campaign Attribution Analytics) String Setting currency for total amount added to cart. Currency information follows ISO 4217 standard(ex. KRW)
setTotalValue (for Campaign Attribution Analytics) int total amount added to cart

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

AddedToCartEvent event = new AddedToCartEvent()
       .setCurrency("KRW")
       .setTotalValue(10000);

AirBridge.getTracker().sendEvent(event);

Code Example for ‘DSP Integration’ (for Ecommerce platforms attempting to integrate data on DSP) :

AddedToCartEvent event = new AddedToCartEvent()
       .setCartId("cart_id_51243")
       .addProduct(product)

AirBridge.getTracker().sendEvent(event);

For more information on Product class, kindly refer to [details below] for Product class.

Purchase

To track in-app events during purchase, please send PurchaseEvent while users are completing order.

Constructor Type Details
PurchaseEvent - purchase event
PurchaseEvent List<Product> events with a purchase of multiple product items
PurchaseEvent Product events with a purchase of a single product item
Method Type Details
addProduct (for DSP Integration) Product Information on purchased product.
setInAppPurchase (universal) Boolean In-app purchased.
setTotalValue (for Campaign Attribution Analytics) int total purchasing amount.
setTransactionId (for Campaign Attribution Analytics) String Unique ID for transaction.
setCurrency (for Campaign Attribution Analytics) String Currency unit of purchased amount. We follow currency information according to ISO 4217 standard (ex. KRW)

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

PurchaseEvent event = new PurchaseEvent(product)
       .setInAppPurchased(false)
       .setCurrency("KRW")
       .setTotalValue(10000);


AirBridge.getTracker().sendEvent(event);

Code Example for ‘DSP Integration’ (for Ecommerce platforms attempting to integrate data on DSP) :

// Add Product Information
Product product1 = new Product();
product1.setProductId("product_id_100600");
product1.setName("Apple MacBook Pro");
product1.setPrice(2160000);
product1.setPositionInList(1);

Product product2 = new Product();
product2.setProductId("product_id_100800");
product2.setName("Samsung Notebook5");
product2.setPrice(1420000);
product2.setPositionInList(2);

// Add Product List
List<Product> products = Arrays.asList(product1, product2);
PurchaseEvent event = new PurchaseEvent(products)
        .setTransactionId("transact-purchase-01")
        .setInAppPurchase(true);

AirBridge.getTracker().sendEvent(event);

For more information on Product class, kindly refer to [details below] for Product class.

Product Class

This is a model class that offers product’s information. It is used to attach product information to in-app events looking up for product list, search results, product details, add to cart, and purchase.

Constructor Type Details
Product - null product
Method Type Details
setProductId (recommended value) String Product’s unique ID. It is a recommended value for DSP integration.
setName String product name
setCurrency 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.
setPrice int price of item
setQuantity int quantity of items purchased
setPositionInList 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.
getProductId - -
getName - -
getCurrency - -
getPrice - -
getQuantity - -
getPositionInList - -

Code Example :

Product product1 = new Product();
product1.setProductId("product_id_100600");
product1.setName("Apple MacBook Pro");
product1.setPrice(2160000);
product1.setCurrency("KRW");
product1.setQuantity(2);
product1.setPositionInList(0);

// Product is used to attach product information to in-app events.
AirBridge.getTracker().sendEvent(new PurchaseEvent(product1));

Sign Out

To track in-app events during sign out, please send SignOutEvent when users are signing out.

Constructor Type Details
SignOutEvent - null sign out event
method type details
expireUser void event action

Code Example :

SignOutEvent event = new SignOutEvent()

AirBridge.getTracker().sendEvent(event);

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.

Constructor Type Details
GoalEvent String custom events including category
GoalEvent String,String custom events including category and action
method type details
setLabel String event label
setCategory String event category
setAction String event action
setValue int event value
setCustomAttribute String, Object event key value, Object value

Code Example :

GoalEvent event = new GoalEvent("category")
        .setAction("action")
        .setLabel("label");
        .setValue(3412)
        .setCustomAttribute("customAttribute", purchaseObject);

AirBridge.getTracker().sendEvent(event);

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.

Sending In-app Events within WebView

For apps with WebView, in-app events can be sent through calling Airbridge SDK via WebView’s JavaScript Interface function.

public class MyWebAppInterface {
    Context mContext;

    MyWebAppInterface(Context c) {
        mContext = c;
    }

    /**
     * Sends goal event.
     */
    @JavascriptInterface
    public void goal(int value) {
       // TODO: Send the goal of in-app event.
        GoalEvent event = new GoalEvent("my-category")
                .setAction(my-action);            
                .setValue(value);            
        Airbridge.getTracker().sendEvent(event);
    }
}

...
webView.addJavascriptInterface(new MyWebAppInterface(this), "myAndroid");

As such, once the JavaScript Interface is created, in-app event method can be called across web apps as follows.

myAndroid.goal(1234);

To Configure Deep Link

To Prepare Integration

To integrate, Custom URI Scheme (ex. your-app-name://) from the existing app should be registered to Airbridge Dashboard.

Once registered, a deep link with JavaScript branching logic is activated so that marketers can submit path and query string parameters on deep links as they create tracking links on Dashboard (Please note that the integration must include at least one of the two: Custom URI Scheme or SHA256 fingerprint.).

Airbridge supports a deep link integration with Android Applinks.

Once Android Applinks are integrated, a deep link with HTTPS branching logic is activated so that marketers can submit path and query string parameters on deep links as they create tracking links on Dashboard (Please note that the integration must include at least one of the two: Custom URI Scheme or SHA256 fingerprint). The integration process is as follows.

To Add URI Mapping to AndroidManifest.xml

Please register the intent filter to the linked Activity via Airbridge deep link with the following details. YOUR_APP_NAME must be edited with the app name as registered on Airbridge Dashboard.

<activity android:name=".ContentActivity" >
     <intent-filter android:autoVerify="true">
         <action android:name="android.intent.action.VIEW" />
         <category android:name="android.intent.category.DEFAULT" />
         <category android:name="android.intent.category.BROWSABLE" />

         <data android:scheme="YOUR_APP_NAME" />
         <data android:host="airbridge.io.deeplink" />
     </intent-filter>
</activity>

To Register of SHA256 Fingerprint on Airbridge Dashboard

To enable deep link, first the SHA256 fingerprint from app’s signed key must be registered. Through Android's Digital Asset Links Verification, this information will be used to determine credible app links.

platform information to be retrieved example of corresponding value
android
(App Links)
https 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5

*To Register Released Key *
When distributing the app, released key’s extension, .jks, will be used for signature. This released key must be registered with the same procedure.

When using Google Play App Signing, signature is changed while APK is uploaded to the store. Therefore, that corresponding key must be registered as well.

After calling this command, copy SHA256 to register on Airbridge Dashboard > Deep Link Setting > SHA256 Fingerprint.

keytool -list -v -keystore my-release-key.keystore

Once Airbridge Dashboard registration is completed, you can visit Digital Asset Links Tester to check with registered information (Hosting Site Domain : YOURAPPNAME.airbridge.io).

※ Attention: Airbridge currently supports registration of a single entry of the fingerprint via Android Applinks support. This function will be expanded to multiple fingerprints later while we momentarily support a released key registration.

To track deep link execution on Airbridge, codes must be added to the deep link handler.

@Override
public void onNewIntent(Intent intent)
{ super.onNewIntent(intent); AirBridge.getTracker().onNewIntent(intent); }
AirBridge.getTracker().sendEvent(new DeepLinkLaunchEvent(String uri));

To receive deep links from Facebook, Facebook’s delayed deep link function should be disabled. Please do not call AppLinkData.fetchDeferredAppLinkData method for this. For more details on code levels, kindly refer to the link.

For Google Play Store and other external deep links, Airbridge can automatically parse that link for statistical analytics, when the link includes an UTM parameter without an Airbridge parameter.

To keep these external deep links separate from data collection and statistical reportings, you can either manually filter the external deep links calling DeepLink.trackAirbridgeOnly() method after initializing Airbridge in Application class.

Based on this method, we can prevent the collection of unwanted external deep links to be included in statistics and/or log history.

//Deeplink Filtering Execution
AirBridge.init(this, );
DeepLink.trackAirbridgeOnly();

To Configure Custom Android 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.

AirBridge.setCustomSessionTimeOut(300);
Airbridge.init()

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).

To Integrate Google Play Install Referrer API(for fraud prevention)

This is a guide to integrate Google Play Install Referrer API on Android.

Configuration Setting

Please add Google Play Install Referrer API library to app’s build.gradle file as follows. With a line break, integration with Google Play Install Referrer API will be completed.

dependencies {
    ...
    compile 'com.android.installreferrer:installreferrer:1.0'
}

To Configure Flag for Collecting Installed App List

This is a guide to flag setting for collecting installed app list and related flags on Android.

Default Value

The default value is ‘true’ for flags that collect installed app list on Airbridge Android.

To Configure On/Off for Collecting Installed App List

On Airbridge Android, collection of installed app list can be set on/off according to user’s needs.

Before calling AirBridge.init (initializing Airbridge), the following method can be called to adjust collection setting of installed app list.

AirBridge.setInstalledAppEnable(true);        // Turn On to Collect Installed App List
Airbridge.init();
AirBridge.setInstalledAppEnable(true);        // Turn Off to Collect Installed App List
Airbridge.init();

To Configure Flag for Collected Information with Android WIFI Scanning (for Offline Data Analytics)

This is a guide to flag setting for collected information with WIFI scanning on Android.

Default Value

The default value is ‘false’ for flags with collected information with WIFI scanning on Airbridge Android.

To Configure On/Off for Collected Information with WIFI Scanning

On Airbridge Android, collected information with WIFI Scanning can be set on/off according to user’s needs.

Before calling AirBridge.init (initializing Airbridge), the following method can be called to adjust configuration on collecting WIFI scanning information.

AirBridge.setWifiInfoEnable(true);              //  Turn On to Collect WIFI Scanning Information
Airbridge.init()
AirBridge.setWifiInfoEnable(false);      //  Turn Off to Collect WIFI Scanning Information
Airbridge.init();  
  • In Android M(6.0 above), Android N(7.0 above), Android O(8.0 above), for WIFI list scanning, you have to add some code snippets according to Android Official Guide in your project. You can follow this reference, Android Official Guide

Other Settings

For cases as below, it is required that additional settings are adjusted for each situation.

For Apps Under Android SDK 1.0.0 or Lower

When updating to the latest version, kindly refer to the details below while running on Android SDK 1.0.0 or lower.

Update to version 1.1.0

To Move SDK Initialization Code to Application

In case AirBridge.init was executed from onCreate method from existing Activity, please move it to onCreate of Application class. Please note that apps previously reset via Application does not require additional code editing.

class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();


        // Move to Next Line
        AirBridge.init(this, "[app name]", "[app token]");
    }
}

Policy changes to tracking app execution can deter a thorough tracking of app installs and executions if SDK is initialized in Activity class.

New Changes to Default In-app Event API

SignInGoalBuilder and SignUpGoalBuilderhas been deprecated. Please replace in-app event builders to SignInEvent and SignUpEvent for use.

Event event = new SignInEvent()
        .setUserEmail("foo@ab180.co")
        .setAction("auto-signin");

AirBridge.getTracker().sendEvent(event);

Update to version 1.0.0

To Change SDK Initialization

To bolster our security system, we no longer use existing SDKs’ UserToken and App ID which is written in numerical form. Instead, we adopted a newly released App Token, with the app name users submitted during app registration.

'app name' and 'app token' can be checked by navigating Dashboard ('app information > app basic information'.

  • Before: AirBridge.init("APP_ID", "USER_TOKEN");
  • ** Change**: AirBridge.init("APP_NAME (app name)", "APP_TOKEN (app token)");

The newly changed values can be verified from 'app information > app basic information' on Dashboard.

If these changes are not saved, statistical data after install cannot be offered, showing exceptions. Please save setting after changes are made.

To Change Default In-app Event API

In-app event APIs such as AirBridge.userSignup are no longer in use. We have modified sending method for in-app events via Tracker for the new APIs. Kindly refer to the guide Guide on In-app Event Integration for more details.

SignUpEvent event = new SignUpEvent()
        .setUserEmail("you@gmail.com")
        .setUserId("1234");  

AirBridge.getTracker().sendEvent(event);

To Modify Custom In-app Event API

The existing Airbridge.goal(label, value) method is no longer in use, so please send goal event using GoalEvent class with identified in-app event types as follows.

By navigating 'Dashboard > In-app Event Management' menu, you will be able to register custom in-app events and check in-app event types. For more details, kindly refer to Guide on In-app Event Integration for more details.

GoalEvent event = new GoalEvent("In-app Event Type");
AirBridge.getTracker().send(event);

To Use Additional Analytics Tools for Referrer Tracking(e.g. Google Analytics)

Please register a third-party receiver, customized with your preferred name, under Install Referrer Receiver item.

<receiver android:name="io.airbridge.DeferredLinkReceiver" android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
    <!-- For GA Campaign Receiver -->
    <meta-data android:name="GAReceiver" android:value="com.google.android.gms.analytics.CampaignTrackingReceiver"/>
    <!-- For Custom Receiver -->
    <meta-data android:name="CustomReceiver1" android:value="io.airbridge.test.TPReceiver"/>
</receiver>

For Apps Under Android 4.0 (API 14) or Lower

Airbridge SDK automatically tracks app life cycles for installs and performance statistics. However, for apps under Android 4.0 (API Level 14) and lower versions, automatic tracking is not possible, hindering an accurate statistical analytics.In such case, a manual tracking is required to collect statistics.

To Turn Off Tracking on Automatic Life Cycle

Before calling AirBridge.init (initializing Airbridge), please call the following method to turn off an automatic tracking.

PageTracker.disableAutoLifecycleTracking();
AirBridge.init(this, ...);

To Manually Call Life Cycle Handler in Activity

When handler is called manually in Base Activity, where all of in-app activities are inherited, tracking is enabled to measure life cycles of in-app activities.

class BaseActivity extends Activity {
    @Override
    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);
        AirBridge.getLifecycleTracker().onActivityCreated(this, savedState);
    }

    @Override
    public void onResume() {
        super.onResume();
        AirBridge.getLifecycleTracker().onActivityResumed(this);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        AirBridge.getLifecycleTracker().onActivityDestroyed(this);
    }
}

To Make Exceptions to Tracking Events

Normally, Airbridge automatically tracks activities for statistical analytics. But some non-generic activities can bring unintended statistical results. For example, if the app offers a lock screen function, Airbridge will count user unlocks as an event action. To prevent such unintended statistical reporting, you can mark these activities with an annotation @DontTrack to make exceptions.

@DontTrack
class LockscreenActivity extends Activity { ... }

With activities that are marked as exceptions, Airbridge will keep them out of tracking.

To Test SDK Execution

  1. Before testing, you have to delete the app on device.
  2. Create a random tracking link from Dashboard, and then open the link from web browser on device.
  3. Build the app to launch on device.
  4. On 'Tracking Links Statistics' page, you will see the number of installs will be increasing for the tracked link. If the number of installs remains unchanged, please visit [Guide on SDK Install] and check the details carefully again.

displaying debug log while debugging

When debugging, you want to check debug log, you can add the below code snippets in onCreate method in Application class.

AirBridge.setDebugMode(true);
Search Results
keyboard_return Back