iOS端标识符历史
在 iOS5 之前,获取设备唯一标识都是采用 UDID。12 年 9 月份 iOS6 发布。IDFA 面世,用于给开发者跟踪广告的投放效果。一直到 13 年 5 月份 App Store 明令禁止获取 UDID 的应用上架,但是人们也找到了其他方法,比如:获取 Mac 地址和 OpenUDID。再到 13 年 9 月份 iOS7 的发布,苹果又采取别的措施,获取到的 Mac 地址在 iOS7 上都是相同的值,并且对剪贴板进行限制,导致 OpenUDID 无法被不同的应用共享相同的值。最后 IDFA 成为了目前为止苹果跟踪广告的主要标识。
iOS端的广告标识符(IDFA)
在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的。广告标示符是由系统存储着的。适用于对外:例如广告推广,换量等跨应用的用户追踪等。但是,这个值不是唯一确定的!也就是说用户可以根据自己的意愿来还原或者禁止获取这个值。用户可以通过 设置--->隐私--->广告 来操作。
在获取 IDFA 之前可以先进行判断用户是否限制广告追踪。开关切换的时候 IDFA 会变,还原的时候会变,用户重置手机系统的时候也会变。
使用本原生插件对提交 App Store 的影响
使用本原生插件时提交 App Store 需要设置使用广告标识符的目的,如下图所示:
上图中 4 项代表的含义:
在 App 内投放广告服务应用中的广告。如果你的应用中集成了广告的时候,你需要勾选这一项。
将此 App 安装归因于先前投放的特定广告。跟踪广告带来的安装。如果你使用了第三方的工具来跟踪广告带来的激活以及一些其他事件,但是应用里并没有展示广告你需要勾选这一项。
将此 App 中发生的操作归因于先前投放的特定广告。跟踪广告带来的用户的后续行为。如果你使用了第三方的工具来跟踪广告带来的激活以及一些其他事件。
iOS 中的“限制广告跟踪”设置。对您的应用使用 IDFA 的目的做下确认,只要您获取了 IDFA,那么这一项都是需要勾选的。
提交时:
检查项目中是否使用IDFA:
步骤:
1、打开终端(Mac 系统下的) cd 到要检查的文件的根目录。
2、执行下列语句:grep -r advertisingIdentifier . (别少了最后那个点号)。
本原生插件文档参考简书作者:nil_C 链接:https://www.jianshu.com/p/8e2846dc8a03
注意:适配 iOS14 及以上系统版本时,云编译必须申请访问广告权限
判断用户是否限制广告追踪
adTrackingEnable(callback(ret))
ret:
{
status: true //布尔型;true||false
state: //数字类型;iOS14及以上版本返回获取id权限状态,取值范围如下:
//0:NotDetermined
//1:Restricted
//2:Denied
//3:Authorized
}
var iAd = api.require('iAd');
iAd.adTrackingEnable(function(ret){
if (ret.status) {
api.alert({msg:'限制了'});
}
});
iOS 系统
可提供的 1.0.0 及更高版本
请求获取广告ID权限
adRequest(callback(ret))
ret:
{
state: //数字类型;iOS14及以上版本返回获取id权限状态,取值范围如下:
//0:NotDetermined
//1:Restricted
//2:Denied
//3:Authorized
}
var iAd = api.require('iAd');
iAd.adRequest(function(ret){
if (ret.status) {
api.alert({msg:'限制了'});
}
});
iOS 系统
可提供的 1.0.0 及更高版本
获取 IDFA
getIDFA({params},callback(ret))
lowerCase:
ret:
{
status: true, //布尔型;true||false
IDFA: '' //字符串类型;广告标识符
}
var iAd = api.require('iAd');
var iAd = iAd.getIDFA({
lowerCase:false
},function(ret){
if (ret.status) {
api.alert({msg:JSON.stringify(ret)});
}
});
iOS 系统
可提供的 1.0.0 及更高版本