跳到主要内容

2.1.SDK集成

2.1.1 申请账号和广告位

向广告运营人员申请广告平台账号及相应广告位。平台上创建应用时请注意选择的接入方式是Mediation SDK还是Hisavana SDK,因为选择不同接入方式,对接的SDK文档有所不同。

2.1.2 导入广告SDK

第一步:在项目级build.gradle文件加入maven远程依赖地址,如下

buildscript {
repositories {
// 必选项
mavenCentral()
// 必选项
maven { url "https://mvn.shalltry.com/repository/maven-public/" }
// 必选项
maven { url "https://mvn.shalltry.com/repository/ad-releases/" }
// 如需接入 ironsource ,请添加
maven { url 'https://android-sdk.is.com/'}
// 如需接入 pangle ,请添加
maven { url 'https://artifact.bytedance.com/repository/pangle'}
// 国内应用市场,Android X Version;如需接入 mintegral ,请添加
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_china"}
// 国外应用市场,Android X Version;如需接入 mintegral ,请添加
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea"}
}
}
allprojects {
repositories {
// 必选项
mavenCentral()
// 必选项
maven { url "https://mvn.shalltry.com/repository/maven-public/" }
// 必选项
maven { url "https://mvn.shalltry.com/repository/ad-releases/" }
// 如需接入 ironsource ,请添加
maven { url 'https://android-sdk.is.com/'}
// 如需接入 pangle ,请添加
maven { url 'https://artifact.bytedance.com/repository/pangle'}
// 国内应用市场,Android X Version;如需接入 mintegral ,请添加
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_china"}
// 国外应用市场,Android X Version;如需接入 mintegral ,请添加
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea"}
}
}

第二步:在Module的build.gradle中引入广告相关库,其中mediation-lib为必须依赖库,其他为可选,请按需添加

提醒

  1. 假如选择接入topon时,请先了解三方版本库适配情况
  2. 假如选择接入facebook时,在安卓8以下手机出现异常,请参考常见问题5.2.21
// 当前最新sdk版本
def versionName = "3.5.1.2"
// 必选项
implementation("com.cloud.hisavana.sdk.mediation:mediation-lib:$versionName")
// 可选项,如需接入 admob ,请添加
implementation("com.cloud.hisavana.sdk.mediation:admob-lib:$versionName")
// 可选项,如需接入 facebook ,请添加
implementation("com.cloud.hisavana.sdk.mediation:fan-lib:$versionName")
// 可选项,如需接入 applovin ,请添加
implementation("com.cloud.hisavana.sdk.mediation:applovin-lib:$versionName")
// 可选项,如需接入 unity ,请添加 unity
implementation("com.cloud.hisavana.sdk.mediation:unity-lib:$versionName")
// 可选项,如需接入 ironsource ,请添加
implementation("com.cloud.hisavana.sdk.mediation:ironsource-lib:$versionName")
// 可选项,如需接入 inmobi ,请添加
implementation("com.cloud.hisavana.sdk.mediation:inmobi-lib:$versionName")
// 可选项,如需接入 liftoff(vungle) ,请添加
implementation("com.cloud.hisavana.sdk.mediation:liftoff-lib:$versionName")
// 可选项,如需接入 adcolony ,请添加
implementation("com.cloud.hisavana.sdk.mediation:adcolony-lib:$versionName")
// 可选项,如需接入 pangle ,请添加
implementation("com.cloud.hisavana.sdk.mediation:pangle-lib:$versionName")
// 可选项,如需接入 mintegral ,请添加
implementation("com.cloud.hisavana.sdk.mediation:mintegral-lib:$versionName")
// 可选项,如需接入 yandex ,请添加(yandex属于多进程,注意WebView数据目录设置,详情请参考SDK初始化配置)
implementation("com.cloud.hisavana.sdk.mediation:yandex-lib:$versionName")
// 可选项,如需接入 bigo ,请添加
implementation("com.cloud.hisavana.sdk.mediation:bigo-lib:$versionName")
// 可选项,如需接入 topon ,请添加
implementation("com.cloud.hisavana.sdk.mediation:topon-lib:$versionName")

// '以下均为 Admob 中介组已适配广告源及版本'
// 可选项,如需接入 Admob Mediator Applovin ,请添加
implementation 'com.google.ads.mediation:applovin:13.2.0.1'
// 可选项,如需接入 Admob Mediator Mintegral ,请添加
implementation 'com.google.ads.mediation:mintegral:16.9.71.0'
// 可选项,如需接入 Admob Mediator Pangle ,请添加
implementation 'com.google.ads.mediation:pangle:7.1.0.8.0'
// 可选项,如需接入 Admob Mediator Unity,必须添加unity-lib,不可单独添加
implementation 'com.google.ads.mediation:unity:4.14.2.0'
// 可选项,如需接入 Admob Mediator Inmobi ,请添加
implementation 'com.google.ads.mediation:inmobi:10.8.3.1'
// 可选项,如需接入 Admob Mediator Ironsource ,请添加
implementation 'com.google.ads.mediation:ironsource:8.8.0.0'
// 可选项,如需接入 Admob Mediator Liftoff(Vungle) ,请添加
implementation 'com.google.ads.mediation:vungle:7.5.0.1'

适配16kb page size方案

SDK(3.4.8.2 及以下版本)使用的 Gif 库 携带的 so 文件不支持 16kb page size,需适配时请自行接入支持版本 v1.2.29。

/**
* 版本(v1.2.29)已适配16kb page size
*
* 环境要求:
* - Gradle 8.0以上
* - Gradle插件 8.1以上(8.3除外)
* - min sdk 23
* - kotlin插件 2.1.0以上(要求),标准库、协程库 1.8.0以上(要求)
*/
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.29'

2.1.3 添加 Admob App Id

如果集成了admob-lib,需要在AndroidManifest.xml 添加 Admob AppID。

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

在真实应用中,请使用您的实际 AdMob 应用 ID,而不是上面列出的 ID。如果您只是想在demo应用中试用 SDK,则可使用上面显示的示例应用 ID。 另请注意,如果未能按照上叙步骤添加代码,可能导致崩溃并显示以下信息:

The Google Mobile Ads SDK was initialized incorrectly.

2.1.4 添加 InMobi 混淆

如果接入了InMobi广告源,需要在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 *;
}