2020年09月03日
目前蘋果已發(fā)出通知,關(guān)于idfa權(quán)限問(wèn)題將會(huì)在明年才開(kāi)始實(shí)行
在 Apple,我們認(rèn)為隱私是一項(xiàng)基本人權(quán)。正如在 WWDC20 上所宣布的,App Store 產(chǎn)品頁(yè)面將包含一個(gè)新的隱私信息部分,幫助用戶了解 app 的隱私保護(hù)做法。今天我們將為開(kāi)發(fā)者發(fā)布更多詳情,列明新的隱私部分所涵蓋的內(nèi)容。此功能將在年底之前向用戶推出。而在下個(gè)月底前,您將能夠通過(guò) App Store Connect 提交相關(guān)信息,為其做好準(zhǔn)備。
此外,在 iOS 14、iPadOS 14 和 Apple tvOS 14 上,您需要征得用戶的許可,才能在其他公司所擁有的 app 和網(wǎng)站上跟蹤用戶,或訪問(wèn)其設(shè)備的廣告標(biāo)識(shí)符。我們致力于確保用戶擁有是否接受 app 跟蹤的選擇權(quán)。為讓開(kāi)發(fā)者有時(shí)間進(jìn)行必要的更改,app 需要獲得跟蹤用戶許可的要求將從明年年初開(kāi)始實(shí)行。更多相關(guān)信息,包括 App Store 審核指南的更新,將在今年秋天發(fā)布。
2020年08月17日
測(cè)試發(fā)現(xiàn),如果將APP追蹤的總開(kāi)關(guān)關(guān)閉的話,新安裝的APP就算是調(diào)用申請(qǐng)idfa權(quán)限的方法,系統(tǒng)權(quán)限彈窗也不會(huì)彈出

idfa是App推廣過(guò)程中識(shí)別用戶的重要標(biāo)識(shí)數(shù)據(jù)!在iOS 14 之后,關(guān)于idfa的獲取發(fā)生了變化,將會(huì)對(duì)APP的推廣產(chǎn)生較大的影響
今天我們從代碼層次來(lái)進(jìn)行探討 關(guān)于idfa的變動(dòng)
在iOS14 之前我們都是這樣獲取的
引入頭文件
#import <AdSupport/AdSupport.h>
代碼實(shí)現(xiàn)
if ([ASIdentifierManager.sharedManager isAdvertisingTrackingEnabled]) {
NSString * idfa = [ASIdentifierManager.sharedManager advertisingIdentifier].UUIDString;
}else {
NSLog(@"用戶開(kāi)啟了限制廣告追蹤");
}
但是在iOS14中,獲取我們還是通過(guò)同樣的方法進(jìn)行獲取,但是我們需要先進(jìn)行權(quán)限的申請(qǐng)(和使用定位相機(jī)一樣),如果不申請(qǐng)權(quán)限,獲取到的idfa 將會(huì)是 0000-0.......000
- 在info.plist 中添加 權(quán)限申請(qǐng)描述
<key>NSUserTrackingUsageDescription</key>
<string>請(qǐng)根據(jù)您業(yè)務(wù)需求進(jìn)行填寫(xiě)</string>
- 可參考某寶
- 進(jìn)行權(quán)限判斷,根據(jù)不同權(quán)限進(jìn)行判斷
if (@available(iOS 14, *)) {
ATTrackingManagerAuthorizationStatus status = ATTrackingManager.trackingAuthorizationStatus;
switch (status) {
case ATTrackingManagerAuthorizationStatusDenied:
NSLog(@"用戶拒絕");
break;
case ATTrackingManagerAuthorizationStatusAuthorized:
NSLog(@"用戶允許");
break;
case ATTrackingManagerAuthorizationStatusNotDetermined:
NSLog(@"用戶為做選擇或未彈窗");
break;
default:
break;
}
} else {
// Fallback on earlier versions
if ([ASIdentifierManager.sharedManager isAdvertisingTrackingEnabled]) {
}else {
NSLog(@"用戶開(kāi)啟了限制廣告追蹤");
}
}
- 申請(qǐng)權(quán)限
if (@available(iOS 14, *)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
NSLog(@"app追蹤權(quán)限:%lu",(unsigned long)status);
}];
} else {
// Fallback on earlier versions
}
- 獲取idfa
NSString * idfa = [ASIdentifierManager.sharedManager advertisingIdentifier].UUIDString;
附件:


