Android SDK OAID 使用文档

最后更新于:2019-11-06 11:23:35

1. OAID 简介

在 Android 10 版本中,广告渠道商们作为非厂商系统应用将无法获取 IMEI、MAC 等设备信息。旧版本的手机系统在用户手动升级前将保持不变,但是搭载 Android 10 系统的手机系统将不支持获取 IMEI。在一段时间内,将处于新旧版手机系统共存的状态,但是新版手机系统的用户占比将会逐渐提高,会造成新版系统用户无法进行推广渠道的匹配。

近日移动安全联盟针对该问题联合国内手机厂商推出补充设备标准体系方案,选择 OAID 字段作为 IMEI 等的替代字段 。广告渠道商选择 OAID 作为 IMEI 的替代字段。OAID 字段是由中国信通院联合华为、小米、OPPO、VIVO 等厂商共同推出的设备识别字段,具有一定的权威性。OAID 的准确性和覆盖率均满足广告场景的使用需求。

关于 OAID 更多信息可参考移动安全联盟官网

2. 适配 OAID 渠道匹配基本步骤

1. 渠道追踪链接部分

以今日头条为例:

旧的渠道追踪链接:

https://xxx.xxx.com?token=21f2e56df73988c7&project=chenru&channel_name=toutiao_track&callback_url=__CALLBACK_URL__&os=__OS__&idfa=__IDFA__&ip=__IP__&ua=__UA1__&mac=__MAC__

新的渠道追踪链接:

https://xxx.xxx.com?token=21f2e56df73988c7&project=chenru&channel_name=toutiao_track&callback_url=__CALLBACK_URL__&oaid=__OAID__&os=__OS__&idfa=__IDFA__&ip=__IP__&ua=__UA1__&mac=__MAC__

通过上面对比可以发现新的渠道追踪链接相比旧的渠道追踪链接,增加了 &oaid=__OAID__ 一项。

2. Android SDK 部分

App 端参照移动安全联盟集成文档(下载链接:http://www.msa-alliance.cn/col.jsp?id=120),进行 OAID SDK 集成,并且将神策 Android SDK 升级到至少 3.2.7 版本。

3. 神策后台部分

  1. SA

    • 1.13 需要大于等于 1.13.5812
    • 1.14 需要大于等于 1.14.687
  2. SP

    • 1.15 需要大于等于 1.15.870
    • 1.16 需要大于等于 1.16.869

3. 在项目中集成 OAID SDK 步骤

App 端集成步骤,主要是参照移动安全联盟给的集成文档(http://www.msa-alliance.cn/col.jsp?id=120)。

1. 把 miit_mdid_x.x.x.aar 拷⻉到项目的 libs ⽬录,并设置依赖,其中 x.x.x 代表版本号。(注意,要及时关注移动联盟更新文档,保持版本及时更新。)

2. 将 supplierconfig.json 拷贝到项目 assets ⽬录下。

3. 在项目 Module 的 build.gradle 文件中配置依赖。

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation files('libs/miit_mdid_1.0.10.aar')
}

4. 混淆设置

-keep class com.bun.miitmdid.core.** {*;}

5. 设置 gradle 编译选项,这块可以根据⾃己对平台的选择进行合理配置。

android {
    compileSdkVersion 28
    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"
        }
    }
}

6. 调用神策 SDK 的 trackInstallation 代码触发激活事件

集成获取 OAID 的第三方 SDK 后,调用神策 SDK 中的 trackInstallation 方法即可完成激活,可通过日志查看激活事件中的 $ios_install_source 字段,oaid 有值表示集成成功

"$ios_install_source":"android_id=8bc673b56ca9c1bc##imei=867436048638793##imei_old=867436047338791##mac=20:34:FB:1A:E3:AA##oaid=47befdff-fb1f-4b96-ddff-bf3fb77f744e",

这里需要注意的是,OAID 只是在 Android Q 上的渠道匹配字段,在其它版本,仍然利用 IMEI 作为渠道匹配字段,所以 trackInstallation 的代码仍然需要在 READ_PHONE_STATE 权限申请回调中触发。可参考示例代码