Anda telah diperhatikan! Transparansi Pelacakan Aplikasi (ATT) untuk iOS 14.5

IOS 14.5 baru-baru ini dirilis, dan sedikit lebih awal Apple memperingatkan pengembang bahwa mulai dengan versi OS ini, perlu untuk mendukung kerangka kerja AppTrackingTransparency, yang memungkinkan Anda untuk mengakses IDFA.





IDFA (The Device Identifier For Advertisers)  —   , . . .





, , :





Zeroed out IDFA: 00000000-0000-0000-0000-000000000000





Apple AppTrackingTransparency, 26 , . , .





?

AppsFlyer, 40 % IDFA. , , , .





Apple: https://developer.apple.com/design/human-interface-guidelines/ios/app-architecture/accessing-user-data/





Facebook Instagram , , , .





, . , , ; Win-win, . , IDFA.





, , . . , .





AppTrackingTransparency . info.plist :





<key>NSUserTrackingUsageDescription</key>
<string>      ?   ,           .</string>
      
      



, !





. iOS 14.5, , .





private func requestTrackingAuthorization() {
    guard #available(iOS 14, *) else { return }
    ATTrackingManager.requestTrackingAuthorization { _ in
        DispatchQueue.main.async { [weak self] in
            // self?.router.close() or nothing to do
        }
    }
}
      
      



didFinishLaunchingWithOptions.





import AppTrackingTransparency
      
      



. .





, , . AuthorizationStatus, requestTrackingAuthorization.





private func requestTrackingAuthorization() {
    guard #available(iOS 14, *) else { return }
    ATTrackingManager.requestTrackingAuthorization { status in
        DispatchQueue.main.async {
            switch status {
            case .authorized:
                let idfa = ASIdentifierManager.shared().advertisingIdentifier
                print("  . IDFA: ", idfa)
            case .denied, .restricted:
                print("  .")
            case .notDetermined:
                print("      .")
            @unknown default:
                break
            }
        }
    }
}
      
      



  • requestTrackingAuthorization(completionHandler:) .notDetermined. .





  • , . , UI.





, , .denied .restricted. , , IDFA, , . , :





func goToAppSettings() {
    guard let url = URL(string: UIApplication.openSettingsURLString),
          UIApplication.shared.canOpenURL(url)
    else {
        return
    }
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
      
      



. ATT? !








All Articles