安卓获取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工作原理

https://developer.huawei.com/consumer/cn/codelab/HMSAdsOAID/img/147ac0006585f185.png

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

>>访问华为广告服务官网,获取华为广告服务开发指导文档

>>请戳华为开发者联盟官网开发指导文档,了解更多相关内容

>>华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解华为移动服务最新技术资讯~

 

以上是关于安卓获取OAID方法的主要内容,如果未能解决你的问题,请参考以下文章

Android 获取唯一Id

华为开机出现oaid是啥意思

接入移动安全联盟SDK

安卓手机root权限获取都有哪些方法

安卓Launcher之获取手机安装的应用列表,安卓launcher

安卓获取输入法高度与ViewTreeObserver讲解