OAID SDK 集成说明
OAID SDK 集成说明
背景信息
OAID
自 2.4.6 版本起,SDK 不再统一集成 OAID
Android 10 无法通过常规方式获取 IMEI 等设备ID,影响部分广告的加载、展示等业务,开发者需要接入 OAID SDK 才可以正常加载这些广告网络的广告。建议开发者优先集成 OAID
OAID SDK 1.0.25 版本起引入了证书机制,需要开发者申请证书信息并在应用初始化时配置证书信息,详见MSA联盟
集成指引
引入依赖
SDK 压缩包内提供了oaid_sdk_1.0.25
版本,其他版本请访问MSA联盟
dependencies {
implementation files('libs/oaid_sdk_x.y.z.aar')
}
配置 Assets
将supplierconfig.json
拷贝到项目 assets 目录下,并修改里边对应内容,特别是需要设置 appid 的部分。需要设置 appid 的部分需要去对应厂商的应用商店里注册自己的app
提示
1.0.26 及更高版本在拷贝supplierconfig.json
后,还需要按照官方文档拷贝证书文件(应用包名.cert.pem)拷贝到项目 assets 目录下,并在初始化时配置证书信息
配置 Gradle
在build.gradle
的android节点
和defaultConfig
节点内添加以下内容:
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a','x86','arm64-v8a','x86_64','armeabi'
}
}
packagingOptions {
doNotStrip "*/armeabi-v7a/*.so"
doNotStrip "*/x86/*.so"
doNotStrip "*/arm64-v8a/*.so"
doNotStrip "*/x86_64/*.so"
doNotStrip "armeabi.so"
}
}
配置混淆规则
在当前工程的混淆配置文件中追加以下内容:
点击展开混淆配置
# 1.0.25之后
# sdk
-keep class com.bun.miitmdid.** { *; }
-keep interface com.bun.supplier.** { *; }
# asus
-keep class com.asus.msa.SupplementaryDID.** { *; }
-keep class com.asus.msa.sdid.** { *; }
# freeme
-keep class com.android.creator.** { *; }
-keep class com.android.msasdk.** { *; }
# huawei
-keep class com.huawei.hms.ads.** { *; }
-keep interface com.huawei.hms.ads.** {*; }
# lenovo
-keep class com.zui.deviceidservice.** { *; }
-keep class com.zui.opendeviceidlibrary.** { *; }
# meizu
-keep class com.meizu.flyme.openidsdk.** { *; }
# nubia
-keep class com.bun.miitmdid.provider.nubia.NubiaIdentityImpl { *; }
# oppo
-keep class com.heytap.openid.** { *; }
# samsung
-keep class com.samsung.android.deviceidservice.** { *; }
# vivo
-keep class com.vivo.identifier.** { *; }
# xiaomi
-keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager { *; }
# zte
-keep class com.bun.lib.** { *; }
# coolpad
-keep class com.coolpad.deviceidsupport.** { *; }
# 1.0.25 之前
-dontwarn com.bun.**
-keep class com.bun.** {*;}
-keep class a.**{*;}
-keep class XI.CA.XI.**{*;}
-keep class XI.K0.XI.**{*;}
-keep class XI.XI.K0.**{*;}
-keep class XI.vs.K0.**{*;}
-keep class XI.xo.XI.XI.**{*;}
-keep class com.asus.msa.SupplementaryDID.**{*;}
-keep class com.asus.msa.sdid.**{*;}
-keep class com.huawei.hms.ads.identifier.**{*;}
-keep class com.samsung.android.deviceidservice.**{*;}
-keep class com.zui.opendeviceidlibrary.**{*;}
-keep class org.json.**{*;}
-keep public class com.netease.nis.sdkwrapper.Utils {public <methods>;}
错误码说明
CODE | 值 | 说明 |
---|---|---|
INIT_INFO_RESULT_OK | 1008610 | 调用成功,获取接口是同步的 |
INIT_INFO_RESULT_DELAY | 1008614 | 调用成功,获取接口是异步的 |
INIT_ERROR_CERT_ERROR | 1008616 | 证书未初始化或证书无效 |
INIT_ERROR_MANUFACTURER_NOSUPPORT | 1008611 | 不支持的厂商 |
INIT_ERROR_DEVICE_NOSUPPORT | 1008612 | 不支持的设备 |
INIT_ERROR_LOAD_CONFIGFILE | 1008613 | 加载配置文件出错 |
INIT_ERROR_SDK_CALL_ERROR | 1008615 | sdk调用出错 |
接入状态检查
可以通过以下两种方式排查应用的 OAID SDK 是否接入成功:
- 提供用户ID 给到我们进行排查
- 在
Logcat
中过滤tag:MdidSdkHelper
观察日志输出