2.1. SDK integration
2.1.1 Apply for an account and advertising space
Apply for an advertising platform account and corresponding ad space from the advertising Operating Personnel. When creating an application on the platform, please pay attention to the access method you choose, whether it is Mediation SDK or Hisavana SDK, because different SDK documents will be different depending on the access method.
2.1.2 Import Ad SDK
Step 1: Add the maven remote dependency address to the project-level build.gradle file, as follows
buildscript {
repositories {
// Required
maven { url "https://mvn.shalltry.com/repository/maven-public/" }
// Required
maven { url "https://mvn.shalltry.com/repository/ad-releases/" }
// To access ironsource, please add
maven { url 'https://android-sdk.is.com/'}
// To access pangle, please add
maven { url 'https://artifact.bytedance.com/repository/pangle'}
// Domestic application market, Android X Version; if you need to access mintegral, please add
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_china"}
// Foreign application market, Android X Version; if you need to access mintegral, please add
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea"}
}
}
allprojects {
repositories {
// Required
maven { url "https://mvn.shalltry.com/repository/maven-public/" }
// Required
maven { url "https://mvn.shalltry.com/repository/ad-releases/" }
// To access ironsource, please add
maven { url 'https://android-sdk.is.com/'}
// To access pangle, please add
maven { url 'https://artifact.bytedance.com/repository/pangle'}
// Domestic application market, Android X Version; if you need to access mintegral, please add
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_china"}
// Foreign application market, Android X Version; if you need to access mintegral, please add
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea"}
}
}
Step 2: Introduce advertising-related libraries into Module’s build.gradle. Mediation-lib is a required dependent library, and others are optional. Please add them as needed.
// The latest sdk version
def versionName = "3.3.6.1"
// Required
implementation("com.cloud.hisavana.sdk.mediation:mediation-lib:$versionName")
// Optional, if you need to access admob, please add
implementation("com.cloud.hisavana.sdk.mediation:admob-lib:$versionName")
// Optional, if you need to access facebook, please add
implementation("com.cloud.hisavana.sdk.mediation:fan-lib:$versionName")
// Optional, if you need to access applovin, please add
implementation("com.cloud.hisavana.sdk.mediation:applovin-lib:$versionName")
// Optional, if you need to access ironsource, please add
implementation("com.cloud.hisavana.sdk.mediation:ironsource-lib:$versionName")
// Optional, if you need to access unity, please add
implementation("com.cloud.hisavana.sdk.mediation:unity-lib:$versionName")
// Optional, if you need to access inmobi, please add
implementation("com.cloud.hisavana.sdk.mediation:inmobi-lib:$versionName")
// Optional, if you need to access vungle, please add
implementation("com.cloud.hisavana.sdk.mediation:vungle-lib:$versionName")
// Optional, if you need to access adcolony, please add
implementation("com.cloud.hisavana.sdk.mediation:adcolony-lib:$versionName")
// Optional, if you need to access pangle, please add
implementation("com.cloud.hisavana.sdk.mediation:pangle-lib:$versionName")
// Optional, if you need to access mintegral, please add
implementation("com.cloud.hisavana.sdk.mediation:mintegral-lib:$versionName")
// Optional, if you need to access yandex, please add (Yandex is a multi-process, please pay attention to the WebView data directory settings, please refer to SDK initialization configuration for details)
implementation("com.cloud.hisavana.sdk.mediation:yandex-lib:$versionName")
// Optional, if you need to access bigo, please add
implementation("com.cloud.hisavana.sdk.mediation:bigo-lib:$versionName")
// The following are all Admob mediation group ad sources. If you need to access them, you must first access "admob-lib"
// Optional, if you need to access Admob Mediator Applovin, please add
implementation("com.cloud.hisavana.sdk.mediation:mediator-applovin:$versionName")
// Optional, if you need to access Admob Mediator Mintegral, please add
implementation("com.cloud.hisavana.sdk.mediation:mediator-mintegral:$versionName")
// Optional, if you need to access Admob Mediator Pangle, please add
implementation("com.cloud.hisavana.sdk.mediation:mediator-pangle:$versionName")
// Optional, if you need to access Admob Mediator Liftoff(Vungle), please add
implementation("com.cloud.hisavana.sdk.mediation:mediator-liftoff:$versionName")
implementation("com.cloud.hisavana.sdk.mediation:liftoff-lib:$versionName")
// Optional, if you need to access Admob Mediator Unity, please add
implementation("com.cloud.hisavana.sdk.mediation:mediator-unity:$versionName")
// Optional. If you want to access Admob Mediator Unity, you must add unity. You can also add it separately.
implementation("com.cloud.hisavana.sdk.mediation:unity-lib:$versionName")
Reminder: Liftoff(Vungle) and Vungle cannot be relied on at the same time.
2.1.3 Add Admob App Id
If admob-lib is integrated, you need to add Admob AppID in 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 real app, use your actual AdMob app ID, not the one listed above. If you just want to try out the SDK in a demo app, you can use the sample app ID shown above. Please also note that failure to add code as described above may result in a crash with the following message:
The Google Mobile Ads SDK was initialized incorrectly.
2.1.4 Add InMobi obfuscation
If the InMobi advertising source is connected, the following confusion needs to be set in the proguard-rules.pro file:
-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 *;
}