이 기사의 제목이 당신에게 의미가 있다면 iOS14로 인한 지진을 알고 있을 것입니다.
iOS14가 출시되면서 애플리케이션이 사용자에 대한 정보를 수집하는 방식에 큰 변화가 있었습니다. 그 중 하나는 Identifier For Advertisers(또는 IDFA)와 애플리케이션이 액세스할 수 있는 방법을 다룹니다.
하지만 모르시는 분들을 위해 먼저 IDFA가 무엇이고 왜 중요한지 설명하겠습니다.
IDFA란 무엇입니까?
각 iOS 기기 소유자는 광고 회사의 추적 여부를 결정할 수 있습니다. 이를 통해 해당 회사는 사용자에게 맞춤화된 콘텐츠(온라인 검색 습관에 따라)를 제공할 수 있습니다.
회사는 IDFA(Identifier For Advertisers)로 이 작업을 수행할 수 있습니다. 광고주가 사용자의 행동을 일치시킬 수 있도록 하는 UUID 문자열입니다.
다음은 UUID 문자열의 예입니다:123e4567-e89b-12d3-a456–426614174000.
그럼, 이전에 이야기한 변경 사항은 무엇입니까?
간단히 말해서 애플리케이션은 이제 사용자에게 대화 상자를 표시하여 애플리케이션이 사용자를 추적하도록 허용할지 여부를 묻는 메시지를 표시해야 합니다.
꽤 불길해 보이죠?
이는 기기에서 제한된 광고 추적이 활성화 또는 비활성화되었는지 확인하기만 하면 되었던 iOS14 이전의 작동 방식과 대조됩니다.
최신 버전의 Apple 운영 체제(iOS14)가 이미 사용 가능합니다(9월 16일 이후). IDFA를 사용하는 개발자는 iOS14와 호환되도록 애플리케이션을 변경해야 합니다.
9월 3일, Apple은 업데이트를 진행했으며 이러한 업데이트를 완료하는 기한을 내년 초로 미뤘습니다.
“개발자에게 필요한 변경을 수행할 시간을 주기 위해 앱은 내년 초부터 사용자를 추적할 수 있는 권한을 얻어야 합니다.”
이제 다시 평정심을 되찾고 다시 숨을 쉴 시간이 생겼으니 2021년의 뉴 노멀을 위한 준비를 시작해 봅시다.
이 기사에서는 IDFA에 대한 배경 지식을 제공하고 iOS14 이상에서 IDFA의 가치를 얻는 방법을 알아봅니다.
광고주가 IDFA를 어떻게 사용합니까?
iPhone에서 웹을 검색하고 다음 휴가를 위한 호텔을 찾고 있는 시나리오(COIVD-19 이전)를 가정해 보겠습니다.
표시되는 각 광고에는 IDFA가 첨부된 픽셀이 전송됩니다. 광고주는 귀하가 IDFA를 일치시켜 호텔을 홍보하는 많은 광고를 보고 있음을 확인하고 귀하가 호텔 객실을 예약하려고 한다는 결론을 내릴 수 있습니다.
거기에서 호텔 객실에 대한 많은 광고가 표시될 때까지 오래 걸리지 않을 것입니다.
이 단순하지만 심오한 기술은 2012년 iOS6과 함께 우리 삶에 들어왔습니다. 그 이후로 많은 것이 바뀌었고 iOS14는 업계를 다시 한 번 뒤집고 있습니다.
✋ 참고: 이러한 새 API를 사용하려면 XCode 12를 업그레이드/다운로드해야 합니다. .
광고 추적 및 IDFA 받기
iOS14 이전에는 IDFA를 얻는 것이 매우 간단했습니다.
다음을 수행하여 광고 추적이 활성화되었는지 여부를 확인해야 했습니다.
[[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]
비활성화된 경우 다음과 같이 ASIdentifierManager 클래스를 통해 IDFA를 얻을 수 있음을 의미합니다.
[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
간단하죠?
☝️ 시작 iOS10에서 사용자가 광고 추적을 비활성화한 경우 위의 방법은 0으로 채워진 UUID 문자열을 반환합니다.
iOS14의 변경 사항 중 하나는 광고주 추적이 활성화되었는지 여부를 확인하는 메서드의 사용 중단입니다. 그렇다면 iOS14 이상에서 애플리케이션이 탐내는 IDFA를 어떻게 얻을 수 있습니까?
사용자에게 대화 상자를 표시하는 새 API를 사용해야 합니다. 이 대화에 대한 몇 가지 지혜:
- 사용자에게 한 번만 표시할 수 있습니다.
- 대화 상자의 UI에서 변경할 수 있는 유일한 것은 추적 허용 옵션 위의 두 줄("추적을 원하십니까?" )
즉, 개발자는 사용자에게 메시지를 언제 어떻게 표시할지에 대해 오랫동안 열심히 생각해야 합니다.
승인 상태
iOS14에서는 앱 추적 투명성이라는 새로운 프레임워크가 생성되었습니다. 이 프레임워크에는 다음과 같은 API를 제공하는 ATTrackingManager라는 클래스가 포함되어 있습니다.
- 추적 권한을 요청하는 대화 상자를 사용자에게 표시
- 인증 상태 쿼리(대화 상자 표시 여부에 관계없이)
먼저 승인 상태를 얻는 방법을 배웁니다. 이렇게 하려면 trackingAuthorizationStatus 를 호출해야 합니다. 방법.
ATTrackingManagerAuthorizationStatus status = [ATTrackingManager trackingAuthorizationStatus];
다음 값 중 하나와 함께 NSUInteger를 반환합니다.
- ATTrackingManagerAuthorizationStatusNotDetermined =0
- ATTrackingManagerAuthorizationStatusRestricted =1
- ATTrackingManagerAuthorizationStatusAuthorized =3
- ATTrackingManagerAuthorizationStatusDenied =2
처음 세 개의 결과는 매우 자명하므로 마지막 결과에 잠시 집중하겠습니다.
광고추적 활성화/비활성화 화면이 잠겨 있고 이 옵션이 활성화로 설정되어 있는 경우 승인 상태가 제한될 수 있습니다.
Apple은 예를 들어 어린이의 소유로 식별된 기기에서 이를 인정했습니다.
추적 허가 요청
대화 상자를 표시하는 데 필요한 코드를 살펴보기 전에 먼저 NSUserTrackingUsageDescription 을 포함해야 합니다. info.plist 파일 내부의 키.
이 키의 값으로 추가한 것은 대화 상자에서 앞서 언급한 두 줄로 나타납니다.
대화 상자를 표시하려면 requestTrackingAuthorizationWithCompletionHandler를 호출해야 합니다.
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
if (status == ATTrackingManagerAuthorizationStatusDenied) {
//Logic when authorization status is denied
} else if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
//Logic when authorization status is authorized
} else if (status == ATTrackingManagerAuthorizationStatusNotDetermined) {
//Logic when authorization status is unknown
} else if (status == ATTrackingManagerAuthorizationStatusRestricted) {
//Logic when authorization status is restricted
}
}];
이 기사의 첫 번째 그림(대화 상자가 표시되는 곳)에서 info.plist 파일에 작성한 줄이 대화 상자에 두 줄로 표시되는 것을 볼 수 있습니다.
마무리
결론적으로, 이러한 변화는 벅차지만 즉시 일어나지는 않는다는 점을 기억하는 것이 중요합니다.
또한 애플리케이션에서 충돌/오류가 발생하지 않도록 이 문서에 설명된 모든 단계를 따라야 합니다.