투케이2K

187. (ios/swift) ATTrackingManager 사용해 IDFA 광고 식별자 값 권한 요청, advertisingIdentifier uuidString 확인 본문

IOS

187. (ios/swift) ATTrackingManager 사용해 IDFA 광고 식별자 값 권한 요청, advertisingIdentifier uuidString 확인

투케이2K 2022. 9. 13. 10:01
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[info plist 설정]

 

[소스 코드]

    // MARK: - [테스트 함수 정의]
    func testMain() {
        print("")
        print("===============================")
        print("[ViewController >> testMain() :: 테스트 함수 수행]")
        print("===============================")
        print("")
        
        
        /*
         // -----------------------------------
         [요약 설명]
         // -----------------------------------
         1. IDFA 는 광고 식별자로 각 기기에 할당 된 임의 기기 식별자입니다. (안드로이드 ADID 개념)
         // -----------------------------------
         2. IDFA 를 사용하기 위해서는 iOS 14.5 미만은 동의 필요 없이 즉시 사용가능 하며, iOS 14.5 이상부터는 유저의 동의가 필요합니다
         // -----------------------------------
         3. IDFA 는 비추적을 기본 값으로 하며, IDFA를 수집하기 위해서는 고객 개개인에게 동의를 받아야 합니다
         // -----------------------------------
         4. 사용자가 앱이 추적을 허용하도록 허용 OFF 선택 시 00000000-0000-0000-0000-000000000000 값이 출력 됩니다
         // -----------------------------------
         5. 광고 추적 ON / OFF 상태 확인 :
         
         설정 >> 애플리케이션 선택 >> 광고 ON / OFF 확인
         // -----------------------------------
         6. 참고 : isAdvertisingTrackingEnabled (광고 추적 상태 확인)
         
         iOS 14+ 버전 부터는 deprecated 되어 사용할 수 없습니다.
         // -----------------------------------
         7. 필요 info plist 설정 :
         
         Privacy - Tracking Usage Description
         // -----------------------------------
         8. 필요 import 설정 :
         
         import AppTrackingTransparency
         import AdSupport
         // -----------------------------------
         */
        
        
        // [초기 변수 선언 실시]
        var deviceUuid = ""
        
        
        // [권한 요청 실시]
        DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute:{
            
            ATTrackingManager.requestTrackingAuthorization { (status) in
                switch status {
                case .authorized:
                    print("")
                    print("===============================")
                    print("[ViewController >> testMain() :: [IDFA] [권한] [허용]]")
                    print("===============================")
                    print("")
                    
                    // [디바이스 고유값 추출 실시]
                    deviceUuid = ASIdentifierManager.shared().advertisingIdentifier.uuidString
                    
                case .denied:
                    print("")
                    print("===============================")
                    print("[ViewController >> testMain() :: [IDFA] [권한] [거절]]")
                    print("===============================")
                    print("")
                case .notDetermined:
                    print("")
                    print("===============================")
                    print("[ViewController >> testMain() :: [IDFA] [권한] [정의 되지 않음]]")
                    print("===============================")
                    print("")
                case .restricted:
                    print("")
                    print("===============================")
                    print("[ViewController >> testMain() :: [IDFA] [권한] [제한]]")
                    print("===============================")
                    print("")
                @unknown default:
                    print("")
                    print("===============================")
                    print("[ViewController >> testMain() :: [IDFA] [권한] [default]]")
                    print("===============================")
                    print("")
                }
            }
            
            
            // [로그 출력 실시]
            print("")
            print("===============================")
            print("[ViewController >> testMain() :: 로그 결과 확인]")
            print("deviceUuid :: \(deviceUuid)")
            print("===============================")
            print("")
        })
        
    }
 

[결과 출력]


 

반응형
Comments