2. Install the Airflux SDK

1. SDK Installation

1

Declare the SDK Repository

To install the Airflux Android SDK, you need to declare the SDK repository to only one file settings.gradle or build.gradle.

Case A: If your project-level settings.gradle file contains dependencyResolutionManagement block, add the SDK repository to the repositories block in the file.

dependencyResolutionManagement {
    repositories {
        maven { url = "https://sdk-download.airflux.ai/maven" }
    }
}

Case B: If your project-level build.gradle file contains allprojects block, add the SDK repository to the repositories block in the file.

allprojects {
    repositories {
        maven { url = "https://sdk-download.airflux.ai/maven" }
    }
}
2

Add the SDK Package

Add the SDK as a dependency in your app-level app/build.gradle file. Replace $HERE_LATEST_VERSION with the latest SDK version, available on the Airflux SDK Versions page.

dependencies {
    // Replace $HERE_LATEST_VERSION with the latest version from the SDK Versions page.
    implementation "ai.airflux:sdk-android:$HERE_LATEST_VERSION"
}

2. SDK Initialization

1

Create a Custom MainApplication

To enable this, create a custom MainApplication class and register it in your AndroidManifest.xml file.

AndroidManifest.xml
<application
    android:name=".MainApplication"
    ...>
2

Initialize the SDK

Initialize the SDK within the onCreate() method of your MainApplication class. This ensures the SDK is ready as soon as the app launches.

Your YOUR_APP_NAME and YOUR_APP_SDK_TOKEN credentials are available in the Airbridge dashboard via [Settings] > [Token Management].

SDK Option
Method
Data Type
Description
Required

App Name

AirfluxOptionBuilder()

string

Input the App Name from the Airbridge dashboard.

Required

App Token

AirfluxOptionBuilder()

string

Input the App Token from the Airbridge dashboard.

Required

SDK Enabled

setSDKEnabled()

boolean

Set whether to enable the SDK upon initialization.

  • true: The SDK is initialized in active mode.

  • false: The SDK is initialized in inactive mode and is enabled upon calling the Airflux.EnableSDK() function.

Optional

Auto Start Tracking Enabled

setAutoStartTrackingEnabled()

boolean

Set whether to collect events automatically upon SDK initialization.

  • true: Event collection starts automatically upon initialization.

  • false: Event collection starts upon calling the Airflux.StartTracking() function.

Optional

Log Level

setLogLevel()

AirfluxLogLevel

Set the log level for the Airflux SDK. Choose from debug, info, warning, error, fault .

Optional

Session Timeout

setSessionTimeout()

double

The default value is 300 seconds. Modify if needed.

Optional

Allow Every Country Enabled

setAllowEveryCountryEnabled()

boolean

When set to true, all countries are allowed to follow Airflux's optimization policies. To use a specific list of countries, set it to false and provide a list using setCountryAllowlist().

Optional

Country Allowlist

setCountryAllowlist()

List<String>

Set the countries where calling the Airflux's inference API should be allowed. Use country codes following the ISO 3166-1 alpha-2 format (e.g., US, KR). You can set multiple countries using the Country Allowlist. Airflux identifies a country based on the value tied to the device.

Optional

import ai.airflux.Airflux
import ai.airflux.AirfluxOptionBuilder
import ai.airflux.AirfluxLogLevel
import android.app.Application

class MainApplication : Application() {

    override fun onCreate() {
        super.onCreate()

        // Creates the option for initializing the Airflux SDK.
        // Replace "YOUR_APP_NAME" and "YOUR_APP_TOKEN" with your actual credentials.
        val option = AirfluxOptionBuilder("YOUR_APP_NAME", "YOUR_APP_TOKEN")
            // Automatically enables the SDK on startup.
            .setSDKEnabled(true)
            // Automatically starts tracking events.
            .setAutoStartTrackingEnabled(true)
            // Sets the log level to debug for detailed logs.
            .setLogLevel(AirfluxLogLevel.DEBUG)
            // Sets the session timeout to 300 seconds (5 minutes).
            .setSessionTimeout(300)
            // Allows Airflux features in all countries.
            .setAllowEveryCountryEnabled(true)
            // Uncomment the line below to allow only specific countries.
            // .setCountryAllowlist(listOf("US", "KR", "JP"))
            .build()

        Airflux.initializeSDK(this, option)
    }
}

3. Verification

Android Logcat check

To view detailed log information for your app, use the Android Logcat tool.


4. Frequently Asked Questions

Opt-in policy compliance

If player consent is required to send in-game data, implement the necessary setup by following the FAQ section below.

How can I set up the Airflux SDK to comply with the opt-in policy?

How can I set up the Airflux SDK to comply with the opt-in policy?

The opt-in policy requires user consent before collecting and using player data. To adhere to this policy, implement the following methods.

  1. SDK opt-in setup

Upon initialization of the Airflux SDK, set the initialization option setAutoStartTrackingEnabled()to false and call the startTracking() function at the point where you have received user consent for data tracking. The Airflux SDK will collect data after the startTracking() function is called.

// After player provided consent to data tracking
Airflux.startTracking()

// If player withdraws consent to data tracking
Airflux.stopTracking()
  1. Initializing the Airflux SDK in inactive mode

Set the initialization option setSDKEnabled() to false to initialize the SDK with all functions disabled until user consent for data tracking is obtained. Through this method, you can adhere to privacy policies to the highest level. Note that when the SDK is set in inactive mode, all features are disabled and no events and player attribute data is sent to Airflux.

How can I configure the Airflux SDK to call the Inference API only in specific countries

Set the initialization opeion setAllowEveryCountryEnabled() to false and add the countries you want to allow to the "Country Allowlist". Country codes should follow the ISO 3166-1 alpha-2 format (e.g., "US", "KR"), and multiple countries can be specified by separating codes with commas. Country codes are not case-sensitive.

Can I use other mediation platforms, such as MAX and AdMob, with Airflux?

Yes, Airflux is designed to work alongside existing mediation platforms.

How does Airflux determine a user’s country?

Airflux distinguishes a country based on the value tied to the deivce.

Does Airflux collect the ADID (Advertising ID)?

No. The Airflux SDK operates without collecting or requiring the ADID.

5. Troubleshooting

[Android] A coroutine dependency error occurs during the build process.

Issue

A coroutine dependency error occurs during the build process with the following message.

java.lang.NoClassDefFoundError: kotlin/coroutines/AbstractCoroutineContextKey
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
  ...

Cause

If the kotlinx-coroutines-core library version is 1.3.5 or later, the kotlin-stdlib library version must be at a certain level or later.

Solution

Check whether the kotlin-stdlib library version is v.1.3.70 or later with the gradlew dependencies command. If the version is earlier than v.1.3.70, you need to update it

Last updated