安卓获取OAID方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓获取OAID方法相关的知识,希望对你有一定的参考价值。
参考技术A 安卓10及以上,不再支持获取imei,但是各个app还是需要获取一个唯一的设备id,那怎么办? 工信部牵头搞了个 移动安全联盟 ,里面提供了个方案。主要是让各个手机厂商提供获取方法,他们出个统一sdk方便普通厂商调用。工信部的sdk: http://www.msa-alliance.cn/col.jsp?id=120
下面还有两个开源的,也一样能获取各大厂商的设备id方案:
https://github.com/gzu-liyujiang/android_CN_OAID
https://github.com/shuzilm-open-source/Get_Oaid_CNAdid
实际上,大家都是调用各个厂商提供的接口,以调用努比亚的为例:
不同厂商的调用方式不一样,详见上述开源项目。
https://blog.csdn.net/qq_40460042/article/details/112966136
保护用户隐私安全,基于OAID进行个性化广告推荐
在大数据环境下,用户对数据安全和个人信息保护问题十分敏感,许多国家的法律对手机应用收集个人信息做出了规范,传统的移动端设备标识如国际移动设备识别码(IMEI)等已被部分国家认定为用户隐私的一部分,并存在篡改和冒用的风险,所以在Android10及后续版本中第三方App无法获取IMEI、MAC等设备信息。无法获取IMEI会在广告场景下的用户行为统计过程中对设备识别产生一定影响。
因此,如何在保护用户隐私的前提下,帮助开发者洞察用户行为、探索用户需求,进而提高移动广告效率和效果是广告平台需要思考的问题。
什么是OAID
面对以上问题,手机厂商对于用户的识别和跟踪也在发生变化。移动安全联盟联合国内手机厂商推出OAID设备识别字段,广告标识符(OAID)是一种非永久性设备标识符,旨在取代原来的IMEI,并逐渐成为广告场景中唯一非永久性设备标识符。
华为广告服务也提供OAID解决方案,基于广告标识符,可在保护用户个人数据隐私安全的前提下,向用户提供个性化广告,并为三方监测平台向广告主提供转化归因分析提供支撑。
华为广告服务OAID的优势
华为广告服务OAID在设备首次启动时立即生成,且用户可自行选择开启或关闭;华为已与多家终端厂商达成一致方案,安卓设备通用;另一方面,OAID可通过SDK或终端接口获取,开发难度低,易用性强。
OAID能够为华为广告合作伙伴带来以下利益点:首先是在保护隐私的前提下,为用户创造更好的广告体验;与AppsFlyer、Adjust、Kochava等全球头部的三方检测平台合作,为营销人员提供转化归因分析服务;开发者通过华为开放API获取广告标识符,并进行广告跟踪和个性化广告推荐。
OAID工作原理
1. 开发者App可调用华为广告服务(HUAWEI Ads)的接口,获得OAID和"限制广告跟踪"开关状态。
2. 开发者App请求广告时,如果用户未启用"限制广告跟踪",可根据OAID构建的细分人群,进行个性化的营销活动和商业广告推荐。
3. 开发者App向用户展示广告,当广告被用户点击后,开发者App可从应用市场下载、安装被推广的App。
4. 开发者App在曝光、点击、下载等事件中,携带OAID,用于平台对营销活动或商业广告的效果进行跟踪和分析。
如何集成OAID?
1集成ads-identifier SDK
1.1 配置HUAWEI Ads SDK的Maven仓地址
打开Android Studio项目级"build.gradle"文件,在"allprojects > repositories"里面配置SDK的Maven仓地址。
allprojects {
repositories {
google()
jcenter()
maven { url 'https://developer.huawei.com/repo/' }
}
}
1.2 配置依赖
打开子工程"app"下的"build.gradle"文件,在"dependencies"新增SDK的依赖,并将{version}替换为实际的HUAWEI Ads SDK版本号,请参见版本更新说明。
dependencies {
implementation 'com.huawei.hms:ads-identifier:{version}'
}
1.3 同步工程
在完成以上的配置后,点击工具栏中的gradle同步图标,完成“build.gradle”文件的同步,将相关依赖下载到本地。
1.4 配置混淆脚本
在编译APK前需要配置混淆配置文件,避免混淆HUAWEI Ads SDK导致功能异常。
打开Android工程应用级根目录下的混淆配置文件“proguard-rules.pro”,加入排除HUAWEI Ads SDK的混淆配置。
-keep class com.huawei.hms.ads.** {*; }
-keep interface com.huawei.hms.ads.** {*; }
2 调用getAdvertisingIdInfo静态方法获取OAID信息
创建子线程,并调用静态的AdvertisingIdClient.getAdvertisingIdInfo(mContext)方法获取OAID信息,请勿在主线程中调用该方法,代码示例如下:
public static void getOaid(Context context, OaidCallback callback) {
if (null == context || null == callback) {
Log.e(TAG, "invalid input param");
return;
}
try {
// 获取OAID信息,请勿在主线程中调用该方法
AdvertisingIdClient.Info info = AdvertisingIdClient.getAdvertisingIdInfo(context);
if (null != info) {
callback.onSuccess(info.getId(), info.isLimitAdTrackingEnabled());
} else {
callback.onFail("oaid is null");
}
} catch (IOException e) {
Log.e(TAG, "getAdvertisingIdInfo IOException");
callback.onFail("getAdvertisingIdInfo IOException");
}
}
3 运行结果
将工程编译生成APK文件,并将APK文件安装到设备。App运行后用户界面显示如下。点击"OAID Sample"即可获取OAID
>>访问华为广告服务官网,获取华为广告服务开发指导文档
关注我们,第一时间了解华为移动服务最新技术资讯~
以上是关于安卓获取OAID方法的主要内容,如果未能解决你的问题,请参考以下文章