2.1. SDK Integration
2.1.1 Apply for Account and Ad Units
Go to the Hisavana Platform to apply for an advertising platform account and create a monetization app and corresponding ad units. When creating an application on the platform, please note whether the integration method is Mediation SDK or Hisavana SSP SDK, as different integration methods correspond to different SDK documentation.
2.1.2 Import Ad SDK
Step 1: Add the maven remote dependency addresses in the project-level build.gradle file:
buildscript {
repositories {
// Required
mavenCentral()
// Required
maven { url "https://mvn.shalltry.com/repository/maven-public/" }
// Required
maven { url "https://mvn.shalltry.com/repository/ad-releases/" }
// IronSource is deprecated and no longer maintained; add this for legacy integrations
maven { url 'https://android-sdk.is.com/'}
// Required if integrating Pangle
maven { url 'https://artifact.bytedance.com/repository/pangle'}
// Required if integrating Mintegral (domestic app markets, Android X Version)
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_china"}
// Required if integrating Mintegral (overseas app markets, Android X Version)
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea"}
}
}
allprojects {
repositories {
// Required
mavenCentral()
// Required
maven { url "https://mvn.shalltry.com/repository/maven-public/" }
// Required
maven { url "https://mvn.shalltry.com/repository/ad-releases/" }
// IronSource is deprecated and no longer maintained; add this for legacy integrations
maven { url 'https://android-sdk.is.com/'}
// Required if integrating Pangle
maven { url 'https://artifact.bytedance.com/repository/pangle'}
// Required if integrating Mintegral (domestic app markets, Android X Version)
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_china"}
// Required if integrating Mintegral (overseas app markets, Android X Version)
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea"}
}
}
Step 2: Add the ad libraries in the module-level build.gradle. mediation-lib is required; all others are optional — add only what you need.
Reminders:
- If integrating TopOn, first review the Third-party Version Compatibility notes.
- If integrating Facebook and encountering exceptions on Android 8 and below, refer to FAQ 5.3.21.
- For the environment requirements and third-party ad source versions in Mediation SDK 3.6.7.2 and later, see Third-party Ad Source Versions.
// Current latest SDK version
def versionName = "3.6.8.2"
// Required
implementation("com.cloud.hisavana.sdk.mediation:mediation-lib:$versionName")
// Optional — add if integrating AdMob (Legacy) (choose either Legacy or Next-Gen)
implementation("com.cloud.hisavana.sdk.mediation:admob-lib:$versionName")
// Optional — add if integrating AdMob Next-Gen (choose either Next-Gen or Legacy)
implementation("com.cloud.hisavana.sdk.mediation:admob-nextgen-lib:$versionName")
// Optional — add if integrating Facebook Audience Network
implementation("com.cloud.hisavana.sdk.mediation:fan-lib:$versionName")
// Optional — add if integrating AppLovin
implementation("com.cloud.hisavana.sdk.mediation:applovin-lib:$versionName")
// Optional — add if integrating Unity Ads
implementation("com.cloud.hisavana.sdk.mediation:unity-lib:$versionName")
// IronSource is deprecated and no longer maintained; add this for legacy integrations
implementation("com.cloud.hisavana.sdk.mediation:ironsource-lib:$versionName")
// Optional — add if integrating InMobi
implementation("com.cloud.hisavana.sdk.mediation:inmobi-lib:$versionName")
// Optional — add if integrating Liftoff (Vungle)
implementation("com.cloud.hisavana.sdk.mediation:liftoff-lib:$versionName")
// AdColony is deprecated and no longer maintained; add this for legacy integrations
implementation("com.cloud.hisavana.sdk.mediation:adcolony-lib:$versionName")
// Optional — add if integrating Pangle
implementation("com.cloud.hisavana.sdk.mediation:pangle-lib:$versionName")
// Optional — add if integrating Mintegral
implementation("com.cloud.hisavana.sdk.mediation:mintegral-lib:$versionName")
// Optional — add if integrating Yandex
// Yandex is multi-process; configure WebView data directory — see SDK Initialization
implementation("com.cloud.hisavana.sdk.mediation:yandex-lib:$versionName")
// Optional — add if integrating Bigo
implementation("com.cloud.hisavana.sdk.mediation:bigo-lib:$versionName")
// Optional — add if integrating TopOn
implementation("com.cloud.hisavana.sdk.mediation:topon-lib:$versionName")
// Admob Mediator adapted ad sources and versions
// Optional — add if using Admob Mediator AppLovin
implementation 'com.google.ads.mediation:applovin:13.6.3.0'
// Optional — add if using Admob Mediator Mintegral
implementation 'com.google.ads.mediation:mintegral:17.1.61.1'
// Optional — add if using Admob Mediator Pangle
implementation 'com.google.ads.mediation:pangle:8.1.0.5.0'
// Optional — add if using Admob Mediator Unity (must also add unity-lib; cannot be used standalone)
implementation 'com.google.ads.mediation:unity:4.19.0.0'
// Optional — add if using Admob Mediator Meta
implementation 'com.google.ads.mediation:facebook:6.21.0.4'
// Optional — add if using Admob Mediator InMobi
implementation 'com.google.ads.mediation:inmobi:11.3.0.1'
// IronSource is deprecated and no longer maintained; add this for legacy Admob Mediator integrations
implementation 'com.google.ads.mediation:ironsource:8.8.0.0'
// Optional — add if using Admob Mediator Liftoff (Vungle)
implementation 'com.google.ads.mediation:vungle:7.7.4.2'
Solution for 16kb Page Size Compatibility
SDK versions 3.4.8.2 and below have a hard dependency on native .so files from the Gif Library that do not support the 16KB page size. To resolve this, manually integrate version v1.2.29:
/**
* Version v1.2.29 supports 16kb page size.
*
* Requirements:
* - Gradle 8.0+
* - Android Gradle Plugin 8.1+ (excluding 8.3)
* - minSdkVersion 23
* - Kotlin Plugin 2.1.0+ (required), standard library and coroutines 1.8.0+ (required)
*/
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.29'
Starting from SDK 3.5.0.3, the hard dependency on the Gif Library has been removed. You may include it optionally based on your needs.
2.1.3 AdMob Next-Gen Integration Reminder
When integrating AdMob Next-Gen, you must exclude the AdMob Legacy dependencies and check whether other third-party SDKs depend on AdMob-related code to avoid crashes caused by missing classes. Add the following configuration as documented by Google:
configurations.configureEach {
exclude(group = "com.google.android.gms", module = "play-services-ads")
exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}
2.1.4 Add Admob App ID
If admob-lib is integrated, add the Admob App ID to AndroidManifest.xml:
<manifest>
<application>
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="[ADMOB_APP_ID]"/>
</application>
</manifest>
In a production app, replace the sample ID with your actual AdMob App ID. Omitting this step will cause a crash with the following message:
The Google Mobile Ads SDK was initialized incorrectly.
2.1.5 Add InMobi ProGuard Rules
If InMobi is integrated, add the following rules to proguard-rules.pro:
-keepattributes SourceFile,LineNumberTable
-keep class com.inmobi.** { *; }
-keep public class com.google.android.gms.**
-dontwarn com.google.android.gms.**
-dontwarn com.squareup.picasso.**
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient{
public *;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info{
public *;
}
# Skip the Picasso library classes
-keep class com.squareup.picasso.** {*;}
-dontwarn com.squareup.okhttp.**
# Skip Moat classes
-keep class com.moat.** {*;}
-dontwarn com.moat.**
# Skip IAB classes
-keep class com.iab.** {*;}
-dontwarn com.iab.**
-keep class com.hisavana.inmobi.**{
public *;
}