필터

모든 iOS 사용자에게 ATT 프롬프트를 표시해야 합니까, 아니면 iOS 14.5 이상 사용자에게만 표시해야 합니까?

Apple은 이에 대해 명확히 밝히지 않았지만 Branch는 현재 ATT가 iOS 14.5 이상을 사용하는 유저에게만 적용되는 것으로 이해하고 있습니다.

Additionally, in this blog post, Adjust provides the following useful insight:

ATT를 참조하지만 OS 14.5 이상에서만 동의를 구하는 경우 검토자가 모든 운영 체제에서 동의 흐름을 예상하기 때문에 처음에는 귀하의 요청을 거부할 수 있습니다. 그리고 나서 OS 14.5 이상에서만 동의가 존재한다는 정보와 함께 요청을 다시 제출하면 승인을 받게 됩니다. 시간을 절약하기 위해 원래 앱 제출에 이 메모를 추가하는 것이 좋습니다.

버전 14.5 이상의 사용자에게만 이 프롬프트를 표시하려는 경우 아래 샘플 스니펫에서와 같이 개발자와 협력하여 버전 번호를 토대로 조건부 형식으로 만들 수 있습니다.

if #available(iOS 14.5, *) {
            if ATTrackingManager.trackingAuthorizationStatus == .notDetermined || ATTrackingManager.trackingAuthorizationStatus == .authorized {
                Branch.getInstance().dispatch {
                    self.requestIDFAPermission()
                }
            }
        }
    //MARK: SKAdNetwork ATT Prompt
    // Request IDFA Permission
    func requestIDFAPermission() {
        if #available(iOS 14.5, *) {
            let semaphore = DispatchSemaphore(value: 0)
            DispatchQueue.main.async {
                ATTrackingManager.requestTrackingAuthorization { status in
                    print("IDFA Permissions Status")
                    switch status {
                    case .authorized:
                        print("Authorized")
                        print(ASIdentifierManager.shared().advertisingIdentifier)
                        self.branchParameters = NSDictionary(dictionary: ["IDFA" : ASIdentifierManager.shared().advertisingIdentifier])
                    case .denied:
                        print("Denied")
                        self.branchParameters = NSDictionary(dictionary: ["IDFA" : "Denied"])
                    case .notDetermined:
                        print("Not Determined")
                        self.branchParameters = NSDictionary(dictionary: ["IDFA" : "Not Determined"])
                    case .restricted:
                        print("Restricted")
                        self.branchParameters = NSDictionary(dictionary: ["IDFA" : "Restricted"])
                    @unknown default:
                        print("Unknown")
                        self.branchParameters = NSDictionary(dictionary: ["IDFA" : "Unknown"])
                    }
                    semaphore.signal()
                }
            }
            semaphore.wait()
        }
    }

추가 자료