iOS

[iOS/Swift] 애드몹(AdMob) 테스트 기기 등록: IDFA 확인

ohlee52 2023. 9. 20. 21:43
반응형

애드몹 테스트 기기 등록

애드몹 배너 달고 부정클릭으로 정지되는 경우가 생각보다 많은 것 같습니다.

단순 노출은 웬만하면 괜찮다는 말도 있지만 조심하면 좋겠지요.

애드몹에서 테스트 기기 등록이 가능 하니 괜히 맘 졸이지 말고 쓰는게 나을 것 같아서 소개드립니다.

사실 기기 등록 자체는 쉬운데 IDFA 확인이 아주 약간 귀찮습니다.


애드몹 테스트 기기 등록

애드몹 테스트기기 추가1

일단 애드몹 설정에서 기기테스트 탭으로 가신 후에, 테스트 기기 추가 버튼을 누릅니다.

애드몹 테스트기기 추가 2

쓰라는거 쓰고 저장 하면 되는데,

이쯤에서 좀 헷갈리는게 "앱 추적 투명성" 설정과 "IDFA 찾기" 입니다.


앱 추적 투명성 확보

앱 추적 투명성은 이 시점에 이미 되어있는 분들이 많으실겁니다.

참고로 SKAdNetwork은 iOS 14 이후 생긴 기능인데요,

iOS 14 이후에 IDFA 수집제한이 생기면서, 최소한의 정보만으로 광고 성과를 받아오는 기능입니다.

 

<key>SKAdNetworkItems</key>
  <array>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>cstr6suwn9.skadnetwork</string>
    </dict>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>4fzdc2evr5.skadnetwork</string>
    </dict>
 //중략
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>3qcr597p9d.skadnetwork</string>
    </dict>
  </array>

info.Plist에 위 코드를 넣으면 되는데요, 구글 애드몹이니 구글 id인 cstr6suwn9.skadnetwork 부분만 넣으면 될것도 같지만,

혹시 몰라서 다 넣었습니다. 전체 코드는 아래 링크에 있습니다(사실 설명도 다 여기서 가져온거에요).

https://developers.google.com/admob/ios/ios14?hl=ko 


추적권한 요청 및  IDFA 확인

IDFA(Identifier for Advertisers)는 광고 추적용 식별자인데요, 광고 분석이나 타게팅 용이라고 하는데 iOS14 이후부터는 권한이 있어야 수집 가능하게 보안정책이 바뀐 것 같습니다.

즉, iOS14 이후부터는 맞춤 광고를 위한 권한을 요청해야 IDFA를 얻을 수 있습니다.

귀찮으신 분들은 무료 어플 다운 받아서 IDFA를 확인하는걸 추천드립니다.

iOS 광고 추정동의요청
출처: 구글 애드몹

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

info.Plist에 추적활동 동의 요청을 넣어야합니다. 

그리고 requestTrackingAuthorization함수를 이용하여 요청을 띄우면 됩니다.

보통은 다른 요청들처럼 appDelegate에서 처리하는데, 저는 viewDidAppear에 넣었습니다.

왜냐하면 뷰가 다 생성 되고 나서 함수가 진행이 되어야 요청이 올바르게 뜨기 때문입니다!!!!.(핵심!!!!!!!!!!!!!!!!!)

다른 자료들 보면 앱델리게이트에서 asyncAfter를 통해 지연을 시키는 코드가 많던데, 

시간 맞추기도 애매하고 해서 그냥 ViewDidAppear에서 처리했습니다.

지연 안시켜도 되는 것 같은데, 혹시 몰라서 0.5 줬습니다.

import AdSupport
import AppTrackingTransparency

override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        if #available(iOS 14, *) {
            DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
                ATTrackingManager.requestTrackingAuthorization { status in
                    switch status {
                    case .authorized:
                        // 사용자가 동의하면 IDFA에 액세스 가능
                        let idfa = ASIdentifierManager.shared().advertisingIdentifier
                        print("IDFA: \(idfa)")
                    case .denied:
                        print("IDFA 액세스 거부됨")
                    case .notDetermined:
                        print("not determined")
                    case .restricted:
                        print("retrict")
                    @unknown default:
                        break
                    }
                }
            }
        }else {
            // iOS 14 이전 버전에서는 IDFA에 직접 액세스 가능
            let idfa = ASIdentifierManager.shared().advertisingIdentifier
            print("IDFA: \(idfa)")
        }
    }

이렇게 코드로 구현 하거나, 앱스토어에서 다운 받아서 기기의 IDFA를 확인해서 입력하면 끝 입니다.

반응형