Skip to content

第三方广告网络配置说明
Third-party ad network configuration instructions

ToBid做为聚合SDK支持热插拔模式。我们为每个广告网络提供了一个aar文件的适配器,相应的适配器版本号,以及各广告网络的配置说明详见下文。
ToBid supports hot-swappable mode as an aggregation SDK. We provide an adapter of an aar file for each ad network. The corresponding adapter version number and configuration instructions of each ad network are detailed below.

注意:适配器上的版本号仅代表改适配器是基于ADN网络的哪个版本做的适配、对接ToBid的时候依然** 需要全部替换ZIP包内的aar**。

Note : The version number on the adapter only indicates which version of the ADN network the adapter is adapted based on. When connecting to ToBid, you still need to replace all the aar in the ZIP package.

1.第三方广告网络支持列表
List of third-party ad networks supported

广告网络
Ad Network
Version
适配器
adapter
第三方文档对接地址
Third-party document connection address
腾讯优量汇
Tencent
4.575.1445windmill-gdt-adapter-4.575.1445.aarhttps://developers.adnet.qq.com/doc/android/access_doc
穿山甲
CSJ
6.1.0.4windmill-csj-adapter-6.1.0.4.aarhttps://www.csjplatform.com/union/media/union/download/detail?id=4&osType=android&locale=zh-CN&backPath=/union/media/union/download/pangle
Gromore6.1.0.4windmill-gromore-adapter-6.1.0.4.aarhttps://www.csjplatform.com/union/media/union/download/detail?id=142&osType=android&locale=zh-CN&backPath=/union/media/union/download/groMore
快手广告
kuaishou
3.3.63windmill-kuaishou-adapter-3.3.63.aarhttps://u.kuaishou.com/?redirectUrl=%2Faccess
百度
baidu
9.35windmill-baidu-adapter-9.35.aarhttps://union.baidu.com/miniappblog/sdk/AndroidSDK.html
Mintegral_cn16.4.42windmill-mintegral-cn-adapter-16.4.42.aarhttps://dev.mintegral.com/doc/index.html?file=sdk-m_sdk-android&lang=en
AdScope4.90.4.11windmill-adscope-adapter-4.90.4.11.aarhttp://sdkdoc.beizi.biz/#/zh-cn/android/4xx/Configuration/SDK
趣盟3.461.14.427windmill-qumeng-adapter-3.461.14.427.aarhttps://docs.jietuhb.com/android_sdk/qumeng.html
TapTap3.16.3.25windmill-taptap-adapter-3.16.3.25.aarhttps://developer.taptap.cn/docs/sdk/tap-adn/tds-tapad/
OppoAdn5.6.3windmill-oppo-adapter-5.6.3.aarhttps://u.oppomobile.com/main/index.html#/main/download
MeiShu2.2.4.5windmill-meishu-adapter-2.2.4.5.aarhttps://admate.yuque.com/se0re5/wxrb2m/xm7t2gx3ar5e66xz
HuaWei13.4.71.300windmill-huawei-adapter-13.4.71.300.aarhttps://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/pps-commissioning-guide-0000001111513478#section59441812586
Honor1.0.18.300windmill-honor-adapter-1.0.18.300.aarhttps://developer.honor.com/cn/docs/20030/guides/getting-started
SigMob4.17.2没有适配器、已自动合并到windmill-sdk-xxx.aar里面
No adapter, automatically merged into windmill-sdk-xxx.aar
https://doc.sigmob.com/en/ToBid/SDK-Integration/Android/SDK-Configuration/

2. 仅中国大陆地区支持的广告网络
Ad networks supported only in Mainland China

手工适配器依赖管理:需要将AdNetworks 拷贝到 app/libs Manual adapter dependency management: AdNetworks needs to be copied to app/libs

groovy
dependencies {

    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs/AdNetworks')

}

2.1 腾讯广告
Tencent Advertising

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml

<uses-permission android:name="android.permission.INTERNET" /><uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission
android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission
android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
  • Provider定义
    Provider Definition
xml

<provider android:name="com.qq.e.comm.GDTFileProvider"
    android:authorities="${applicationId}.gdt.fileprovider" android:exported="false"
    android:grantUriPermissions="true">
    <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/gdt_file_path" />
</provider>
  • gdt_file_path.xml 内容
    gdt_file_path.xml content
xml
<?xml version="1.0" encoding="utf-8"?>
<paths>
    <!-- 这个下载路径也不可以修改,必须为com_qq_e_download -->
    <external-cache-path name="gdt_sdk_download_path1" path="com_qq_e_download" />
    <cache-path name="gdt_sdk_download_path2" path="com_qq_e_download" />
</paths>
  • Jar包手动依赖
    Manual dependency of Jar package
groovy
dependencies {

    //腾讯优量汇
    implementation fileTree(include: ["*.jar", "*.aar"], dir: 'libs/AdNetworks/gdt')

}

2.2 穿山甲
CSJ

注:穿山甲SDK自3.9.0.0版本后,默认仅支持arm64-v8a和armeabi-v7a两种架构,不再支持armeabi

Note: Since version 3.9.0.0, Pangolin SDK only supports arm64-v8a and armeabi-v7a architectures by default, and no longer supports armeabi

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml
<!--必要权限-->
<uses-permission android:name="android.permission.INTERNET" /><uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" />

    <!--可选权限-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace" /><uses-permission
android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission
android:name="android.permission.REQUEST_INSTALL_PACKAGES" /><uses-permission
android:name="android.permission.GET_TASKS" />

    <!--可选,穿山甲提供“获取地理位置权限”和“不给予地理位置权限,开发者传入地理位置参数”两种方式上报用户位置,两种方式均可不选,添加位置权限或参数将帮助投放定位广告-->
    <!--请注意:无论通过何种方式提供给穿山甲用户地理位置,均需向用户声明地理位置权限将应用于穿山甲广告投放,穿山甲不强制获取地理位置信息-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <!-- 如果有视频相关的广告且使用textureView播放,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />

    <!-- 穿山甲3400版本新增:建议添加“query_all_package”权限,穿山甲将通过此权限在Android R系统上判定广告对应的应用是否在用户的app上安装,避免投放错误的广告,以此提高用户的广告体验。若添加此权限,需要在您的用户隐私文档中声明! -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
  • Provider定义
    Provider Definition
xml

<provider android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
    android:authorities="${applicationId}.TTFileProvider" android:exported="false"
    android:grantUriPermissions="true">
    <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</provider>

<provider android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"
android:authorities="${applicationId}.TTMultiProvider" android:exported="false" />
  • file_paths.xml 内容
    file_paths.xml content
xml
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <!--为了适配所有路径可以设置 path = "." -->
    <external-path name="tt_external_root" path="." />
    <external-path name="tt_external_download" path="Download" />
    <external-files-path name="tt_external_files_download" path="Download" />
    <files-path name="tt_internal_file_download" path="Download" />
    <cache-path name="tt_internal_cache_download" path="Download" />
</paths>
  • Jar包手动依赖
    Manual dependency of Jar package
groovy
dependencies {
    //穿山甲
    implementation fileTree(include: ["*.jar", "*.aar"], dir: 'libs/AdNetworks/csj')
}

2.3 Gromore

注:AndroidManiftest.xml及Provider配置同穿山甲

Note: AndroidManiftest.xml and Provider configuration are the same as CSJ

  • Jar包手动依赖
    Manual dependency of Jar package
groovy
dependencies {
    //Gromore
    implementation fileTree(include: ["*.jar", "*.aar"], dir: 'libs/AdNetworks/gromore')
}

2.4 快手广告
Kuaishou Advertising

注:快手SDK自3.3.17版本后,仅支持arm64-v8a和armeabi-v7a两种架构,不再支持armeabi

Note: Kuaishou SDK only supports arm64-v8a and armeabi-v7a architectures since version 3.3.17, and no longer supports armeabi

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission
android:name="android.permission.INTERNET" /><uses-permission
android:name="android.permission.READ_PHONE_STATE" /><uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission
android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission
android:name="android.permission.REQUEST_INSTALL_PACKAGES" /><uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" /><!--SDK内⾃定义的权限,与下载相关,aar中已经申请-->
<permission android:name="${applicationId}.permission.KW_SDK_BROADCAST"
android:protectionLevel="signature" /><uses-permission
android:name="${applicationId}.permission.KW_SDK_BROADCAST" />
  • 如果您的应⽤启⽤了资源混淆或资源缩减,您需要保留SDK的资源,SDK的资源名都是以ksad_开头的。您可以在资源混淆配置⽂件添加如下配置:
    If your application has resource obfuscation or resource reduction enabled, you need to keep the SDK resources. The SDK resource names all start with ksad_. You can add the following configuration to the resource obfuscation configuration file:
xml
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@layout/ksad_*,@id/ksad_*,@style/ksad_*,
  @drawable/ksad_*,@string/ksad_*,@color/ksad_*,@attr/ksad_*,@dimen/ksad_*" />
  • Jar包手动依赖
    Manual dependency of Jar package
groovy
dependencies {

    //建议使⽤的26以上的support库版本,建议使⽤28最新的即可。
    implementation "com.android.support:appcompat-v7:28.0.0"
    implementation "com.android.support:recyclerview-v7:28.0.0"
    // AndroidX依赖和上面Supprot库依赖,二选一
    implementation "androidx.appcompat:appcompat:$version"
    implementation "androidx.recyclerview:recyclerview:$version"

    // 快⼿SDK aar包,请将提供的aar包拷⻉到libs⽬录下,添加依赖。根据接⼊版本修改SDK包名
    implementation fileTree(include: ["*.jar", "*.aar"], dir: 'libs/AdNetworks/kuaishou')
}
  • 混淆配置
    Obfuscation Configuration
java
-keep

class org.chromium.**{*;}
        -keep

class org.chromium.**{*;}
        -keep

class aegon.chrome.**{*;}
        -keep

class com.kwai.**{*;}
        -dontwarn com.kwai.**
        -dontwarn com.kwad.**
        -dontwarn com.ksad.**
        -dontwarn aegon.chrome.**

2.5 百度广告
Baidu Advertising

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml

<uses-permission android:name="android.permission.INTERNET" /><uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission
android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission
android:name="android.permission.READ_PHONE_STATE" /><uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission
android:name="android.permissio.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission" />
  • Jar包手动依赖
    Manual dependency of Jar package
groovy
dependencies {

    //建议使⽤的26以上的support库版本,建议使⽤28最新的即可。
    implementation "com.android.support:appcompat-v7:28.0.0"
    implementation "com.android.support:recyclerview-v7:28.0.0"
    // AndroidX依赖和上面Supprot库依赖,二选一
    implementation "androidx.appcompat:appcompat:$version"
    implementation "androidx.recyclerview:recyclerview:$version"

    // 百度SDK aar包,请将提供的aar包拷⻉到libs⽬录下,添加依赖。根据接⼊版本修改SDK包名
    implementation fileTree(include: ["*.jar", "*.aar"], dir: 'libs/AdNetworks/baidu')
}
  • 混淆配置
    Obfuscation Configuration
java
-ignorewarnings
        -dontwarn com.baidu.mobads.sdk.api.**
        -keepclassmembers class *extends android.app.Activity{
public void*(android.view.View);
        }

        -keepclassmembers enum *{
public static **[]values();
public static **valueOf(java.lang.String);
        }

        -keep

class com.baidu.mobads.**{*;}
        -keep

class com.style.widget.**{*;}
        -keep

class com.component.**{*;}
        -keep

class com.baidu.ad.magic.flute.**{*;}
        -keep

class com.baidu.mobstat.forbes.**{*;}

2.6 Mintegral_cn

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml

<uses-permission android:name="android.permission.INTERNET" /><uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- 如果中国大陆流量版本SDK ,以下两条权限必须加上 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission
android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
  • Provider定义
    Provider Definition
xml

<provider android:name="com.mbridge.msdk.foundation.tools.MBFileProvider"
    android:authorities="${applicationId}.mbFileProvider" android:exported="false"
    android:grantUriPermissions="true">
    <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/mb_provider_paths" />
</provider>
  • mb_provider_paths.xml 内容
    mb_provider_paths.xml content
xml
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path="." />
</paths>
  • Mintegral Maven自动依赖
    Mintegral Maven automatic dependencies
groovy
dependencies {
    //mintegral provider 依赖androidx
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'

    //mintegral
    implementation fileTree(include: ["*.jar", "*.aar"], dir: 'libs/AdNetworks/mintegral-cn')
}
  • Mintegral 混淆配置
    Mintegral obfuscation configuration
java
-keepattributes Signature
        -keepattributes*Annotation*
        -keep

class com.mbridge.**{*;}
        -keep

interface com.mbridge.**{*;}
        -keep

interface androidx.**{*;}
        -keep

class androidx.**{*;}
        -keep public class *extends androidx.**{*;}
        -dontwarn com.mbridge.**
        -keep class **.R$*{public static final int mbridge*;}

2.7 AdScope

注:媒体如果使用移动安全联盟提供的获取oaid的sdk版本不是1.0.25、AdScope则需要在Sdk初始化之前请调用如下方法: WindMillAd.sharedAds().setOaidVersion("x.x.x");

Note: If the media uses the SDK version provided by the Mobile Security Alliance to obtain oaid but it is not 1.0.25, AdScope needs to call the following method before initializing the SDK: WindMillAd.sharedAds().setOaidVersion("xxx");

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml
<!--必要权限-->
<!--⽹络访问权限-->
<uses-permission android:name="android.permission.INTERNET" /><!--访问⽹络状态:检测当前⽹络状态是2G、3G、4G还是WiFi-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!--磁盘读写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" /><!--应⽤安装权限-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
  • 因SDK内部采用http协议。如果App的targetSdkVersion>=28,需要在AndroidManifest.xml 添加依赖声明:
    Because the SDK uses the http protocol internally. If the App's targetSdkVersion>=28, you need to add a dependency declaration in AndroidManifest.xml:
xml

<application

    android:networkSecurityConfig="@xml/network_security_config">

</application>
  • network_security_config.xml 内容
    network_security_config.xml content
xml

<network-security-config>

    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </base-config>

    <domain-config>
        <domain includeSubdomains="true">i.snssdk.com</domain>
        <domain includeSubdomains="true">is.snssdk.com</domain>
        <domain includeSubdomains="true">pangolin.snssdk.com</domain>
        <domain includeSubdomains="true">extlog.snssdk.com</domain>
        <domain includeSubdomains="true">sf3-ttcdn-tos.pstatp.com</domain>
        <domain includeSubdomains="true">bds.snssdk.com</domain>
        <domain includeSubdomains="true">dig.bdurl.net</domain>
    </domain-config>

</network-security-config>
  • Jar包手动依赖
    Manual dependency of Jar package
groovy
dependencies {
    //AdScope
    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs/AdNetworks/adscope')
}
  • 混淆配置
    Obfuscation Configuration
java
# 倍孜混淆
        -dontwarn com.beizi.fusion.**
        -dontwarn com.beizi.ad.**
        -keep

class com.beizi.fusion.**{*;}
        -keep

class com.beizi.ad.**{*;}

2.8 趣盟

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml
<!-- 广告SDK已添加的权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission
android:name="android.permission.INTERNET" /><uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  • Jar包手动依赖
    Manual dependency of Jar package
groovy
dependencies {
    //QuMeng
    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs/AdNetworks/qumeng')
}

2.9 TapTap

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml
<!-- 广告SDK已添加的权限 -->
<uses-permission android:name="android.permission.INTERNET" />><uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission
android:name="android.permission.READ_PHONE_STATE" /><uses-permission
android:name="android.permission.QUERY_ALL_PACKAGES" /><uses-permission
android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

    <!-- 为了获取更精准的推送数据、建议游戏加上的权限 -->
<uses-permission
android:name="android.permission.BLUETOOTH" /><!-- targetVersion 31 及以上 建议游戏加上这个权限 -->
<uses-permission
android:name="android.permission.BLUETOOTH_CONNECT" /><!-- 为了获取更好的广告体验,建议游戏加上以下权限来获取用户信息 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" /><!-- 加上下列权限可以提高广告的转化率 -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
  • Jar包手动依赖
    Manual dependency of Jar package
groovy
dependencies {
    //TapTap
    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs/AdNetworks/taptap')
    implementation "com.github.bumptech.glide:glide:4.9.0"
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
    implementation 'io.reactivex.rxjava2:rxjava:2.0.1'
    implementation 'com.squareup.okhttp3:okhttp:3.12.1'
    implementation "com.android.support:appcompat-v7:28.0.0"
    implementation "com.android.support:support-annotations:28.0.0"
    implementation "com.android.support:support-v4:28.0.0"
    implementation 'com.android.support:recyclerview-v7:28.0.0'
}
  • 混淆配置
    Obfuscation Configuration
java
# TapTap混淆
        -dontwarn com.tapsdk.**
        -dontwarn com.tapadn.**
        -keep

class com.tapsdk.**{*;}
        -keep

class com.tapadn.**{*;}

2.10 OppoAdn

1、默认仅支持arm64-v8a和armeabi-v7a两种架构 2、展示Oppo开屏的广告Acitivty要用全屏主题

1、By default, only arm64-v8a and armeabi-v7a architectures are supported. 2、To display the Oppo opening screen advertisement, Acitivty must use the full screen theme.

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml
<!--SDK 可选权限配置开始;建议应用配置定位权限,可以提升应用的广告收益-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><!--如果应用需要精准定位的话加上该权限-->
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" /><!--Android Q 上如果应用需要精准定位的话加上该权限-->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /><!--SDK 可选权限配置结束-->

    <!--适配android Q,支持sdCard存储-->
    <!--如果targetSdk >= androidP 需要配置android:usesCleartextTraffic="true"-->
<application android:usesCleartextTraffic="true" android:requestLegacyExternalStorage="true">

</application>
  • Jar包手动依赖
    Manual dependency of Jar package
groovy
dependencies {

    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.multidex:multidex:2.0.0'

    implementation 'com.squareup.okio:okio:2.5.0'
    implementation 'org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.72'
    implementation 'android.arch.persistence:db-framework:1.1.1'//410版本新增
    implementation 'androidx.palette:palette:1.0.0'//490版本新增

    // OppoSDK aar包,请将提供的aar包拷⻉到libs⽬录下,添加依赖。根据接⼊版本修改SDK包名
    implementation fileTree(include: ["*.jar", "*.aar"], dir: 'libs/AdNetworks/oppoadn')
}
  • 混淆配置
    Obfuscation Configuration
java
-keep

class com.opos.**{*;}
        -keep

class com.heytap.msp.mobad.**{*;}
        -keep

class com.heytap.openid.**{*;}

        -keep

class okio.**{*;}

        -keeppackagenames com.heytap.nearx.tapplugin

2.11 美数广告
Meishu Advertising

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml
<!--必要权限-->
<uses-permission android:name="android.permission.INTERNET" />

    <!--可选权限-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission
android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission
android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission
android:name="android.permission.READ_PHONE_STATE" /><uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission
android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission
android:name="android.permission.REQUEST_INSTALL_PACKAGES" /><uses-permission
android:name="android.permission.WAKE_LOCK" /><!--可选 建议应用配置定位权限,可以提升应用的广告收益-->
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" /><!--可选 如果应用需要精准定位的话加上该权限-->
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" /><!--可选 Android Q 上如果应用需要精准定位的话加上该权限-->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
  • Provider定义
    Provider Definition
xml

<provider android:name="com.meishu.sdk.core.service.MeishuFileProvider"
    android:authorities="${applicationId}.MeishuFileProvider" android:exported="false"
    android:grantUriPermissions="true">
    <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/meishu_file_path" />
</provider>
  • meishu_file_path.xml 内容
    meishu_file_path.xml content
xml

<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-files-path name="download" path="Download" />
</paths>
  • Jar包手动依赖
    Manual dependency of Jar package
groovy
dependencies {

    //美数
    implementation fileTree(include: ["*.jar", "*.aar"], dir: 'libs/AdNetworks/meishu')

    implementation 'com.squareup.okhttp3:okhttp:3.12.1'
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'com.googlecode.android-query:android-query:0.25.9'
    implementation 'androidx.cardview:cardview:1.0.0'

}
  • 混淆配置
    Obfuscation Configuration
java
# 美数混淆
        # GSON
        -keepattributes Signature
        -keepattributes*Annotation*
        -dontwarn sun.misc.**
        -keep

class com.google.gson.examples.android.model.**{<fields>; }
        -keep class *implements com.google.gson.TypeAdapterFactory
        -keep class *implements com.google.gson.JsonSerializer
        -keep class *implements com.google.gson.JsonDeserializer
        -keepclassmembers,allowobfuscation class *{
@com.google.gson.annotations.SerializedName<fields>;
}
        # 美数
        # msad
        -keep

class com.meishu.sdk.**{*;}

2.12 华为广告
Huawei Advertising

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
xml

<uses-sdk tools:overrideLibrary="com.huawei.openalliance.ad" /><uses-permission
android:name="android.permission.READ_PHONE_STATE" tools:node="replace" />
  • Jar包手动依赖
    Manual dependency of Jar package
groovy
dependencies {
    // huawei
    implementation fileTree(include: ["*.jar", "*.aar"], dir: 'libs/AdNetworks/huawei')
}
  • 混淆配置
    Obfuscation Configuration
java
# HuaWei混淆  

-keep class com.huawei.openalliance.ad.**{*;}

2.13 荣耀广告
Honor Advertisement

荣耀渠道必须集成oaid的sdk(重要)
Honor channel must integrate oaid sdk (important)

  • 更新 AndroidManiftest.xml
    Update AndroidManiftest.xml
<uses-permission
        android:name="android.permission.QUERY_ALL_PACKAGES"
        tools:ignore="QueryAllPackagesPermission" />
  • 多进程场景接入注意事项(重要)
    Notes on multi-process scene access (important)

媒体存在多进程场景主/多子进程都使用了广告SDK需要在初始化时调用setSupportMultiProcess( true),由于多进程场景大数据SDK上报涉及时涉及使用MMKV,还需要单独依赖MMKV的依赖,以保证埋点准确,否则将可能影响收益数据。

In a multi-process scenario where the main/multi-sub-processes of the media all use the advertising SDK, it is necessary to call setSupportMultiProcess(true) during initialization. Since the big data SDK reporting in a multi-process scenario involves the use of MMKV, it is also necessary to rely on MMKV separately to ensure accurate tracking, otherwise it may affect the revenue data.

implementation "com.tencent:mmkv:1.2.13"
  • Jar包手动依赖
    Manual dependency of Jar package
dependencies {

    //荣耀
    implementation fileTree(include: ["*.jar","*.aar"], dir: 'libs/AdNetworks/honor')
    
    implementation "androidx.constraintlayout:constraintlayout:2.0.4"
    implementation 'com.airbnb.android:lottie:6.0.1'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'com.squareup.okhttp3:okhttp:4.9.1'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.14.9'
    implementation 'com.google.code.gson:gson:2.10.1'
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation 'androidx.lifecycle:lifecycle-livedata:2.2.0'
    implementation 'androidx.room:room-compiler:2.3.0'
    implementation 'androidx.room:room-runtime:2.3.0'
    //由于多进程场景大数据SDK上报涉及时涉及使用MMKV,还需要单独依赖MMKV的依赖
    implementation "com.tencent:mmkv:1.2.13"

 }
  • 混淆配置
    Obfuscation Configuration
# 荣耀混淆
-keep class com.hihonor.ads.** {*; }
-keep class com.hihonor.adsdk.** {*;}

2.14 SigMob广告
SigMob Advertising

  • 如仅支持Android Support V4环境, 请将一下代码添加到AndroidManifest.xml中
    If only Android Support V4 environment is supported, please add the following code to AndroidManifest.xml
xml

<provider android:name="com.sigmob.sdk.SigmobFileV4Provider"
    android:authorities="${applicationId}.sigprovider" android:exported="false"
    android:initOrder="200" android:grantUriPermissions="true">
    <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/sigmob_provider_paths" />
</provider>