애드몹을 사용해서 틈틈일기 앱에 광고를 달았습니다. 앱을 출시 전에 테스트 폰으로 확인하는 중에 실수로 광고를 클릭하는 일이 몇 번 있었는데, 찾아보니 AdMob 정책 위반에 해당한다는 사실을 뒤늦게 알게 되었습니다. 부정 클릭으로 간주되어, 반복되면 계정이 정지될 수도 있다고 하니 해결 방법을 찾아야 했습니다 

 

찾아보니 애드몹 사이트에서 개발에 사용하는 폰을 테스트 기기로 등록하면, 그 기기에는 실제 광고 대신 테스트 광고가 노출됩니다.

안드로이드는 간단했습니다. 설정에서 광고 ID(IDFA에 해당하는 값)를 바로 확인하여 애드몹 사이트에 등록하면 되었습니다. 

 

문제는 아이폰이었습니다.

 

아이폰은 설정에서 IDFA(Identifier for Advertisers)를 직접 보여주지 않습니다. 검색해보니 앱스토어에 IDFA를 확인해주는 앱이 있다고 해서 그걸 설치하고 진행했습니다. 자세한 과정은 다음 포스트에 정리해뒀습니다.

 

아이폰의 IDFA를 알아내기

https://freewriting2024.tistory.com/19 

 

분명 IDFA를 확인하여 애드몹 사이트에서 테스트 기기로 아이폰을 등록했지만 아이폰에서 테스트 광고가 아닌 실제 광고가 노출되었습니다. 

 

왜 그런가 알아봤습니다. 찾아보니 iOS 14.5 이후로 도입된 ATT(App Tracking Transparency) 정책 때문에, 사용자가 "추적 허용"에 동의하지 않으면 IDFA가 모두 0으로 채워진 값으로 반환됩니다. 그리고 동의 여부와 별개로, IDFA 확인 앱이 보여주는 값과 AdMob SDK가 내 앱에서 실제로 인식하는 디바이스 식별 값이 항상 일치한다는 보장이 없습니다.



프로그래밍적으로 테스트 기기를 등록하는 방법이 확실하다는 것을 알게되었습니다. AdMob SDK가 직접 알려주는 테스트 디바이스 ID를 사용하는 것입니다.

원리는 이렇습니다. AdMob SDK는 앱이 실행될 때 자기가 인식한 디바이스의 ID를 콘솔 로그에 찍어줍니다. "이 기기를 테스트 기기로 등록하고 싶다면 이 ID를 이렇게 설정하세요"라는 안내 문구와 함께요. 이 값은 SDK가 스스로 보고 있는 ID이기 때문에, 등록만 하면 무조건 일치할 수밖에 없습니다. 

 

진행한 과정은 다음과 같습니다.

 

  1. 앱을 한 번 실행하면서 콘솔 로그를 확인합니다.
  2. 로그 중에서 "이 기기에서 테스트 광고를 받으려면 이 ID를 등록하라"는 안내 메시지를 찾습니다.
  3. 거기 적힌 디바이스 ID를 그대로 복사합니다.
  4. 그 ID를 앱 코드의 광고 초기화 부분에 테스트 디바이스로 지정합니다.
  5. 앱을 다시 실행합니다.

 

이렇게 하니 한 번에 테스트 광고가 정상적으로 노출되었습니다.

테스트 광고가 제대로 노출되는지는 광고 위에 표시되는 "Test Ad" 라벨로 확인할 수 있습니다.

 

결국 외부에서 IDFA를 가져와 짜맞추는 방식은 iOS의 ATT 정책 이후로는 신뢰할 만한 경로가 아니었던 셈입니다. 

같은 문제로 헤매시는 분이 있다면, 시간 낭비하지 마시고 바로 프로그래밍적 등록 방식으로 가시길 권합니다.







+ Recent posts