① 배운 것
앱에 AdMob을 연동하고 광고를 표시하려 할 때, 다음과 같은 오류 메시지를 보게 되는 경우가 있습니다:
이 오류들이 발생하는 이유는 여러 가지가 있을 수 있지만, 그중 한 가지 중요한 원인은 DNS 광고 차단기일 수 있습니다. 이번 글에서는 DNS와 광고 차단기의 원리, 그리고 이를 해결하는 방법에 대해 알아보겠습니다.
DNS(도메인 네임 시스템)는 인터넷의 주소록과 같은 역할을 합니다. 우리가 www.example.com 같은 웹 주소를 입력하면, DNS는 이 주소를 컴퓨터가 이해할 수 있는 IP 주소로 변환해줍니다. 이렇게 변환된 IP 주소를 통해 웹사이트나 서버에 접속하게 되는 것이죠.
DNS는 네트워크의 모든 트래픽을 중간에서 관리할 수 있기 때문에, 광고 차단 기능을 가진 DNS 서버를 사용하면 광고 서버로의 요청을 차단할 수 있습니다. 예를 들어, googleads.g.doubleclick.net과 같은 광고 서버에 대한 요청을 차단함으로써 광고가 로드되지 않게 만드는 것이죠.
앱에 AdMob을 연동하면, 앱은 Google의 광고 서버(예: googleads.g.doubleclick.net)에 광고 요청을 보냅니다. 그러나 네트워크에 광고 차단 DNS가 설정되어 있으면, 앱이 광고 서버에 연결하려 할 때 광고 차단기가 이를 막아버릴 수 있습니다. 그 결과 다음과 같은 문제가 발생할 수 있습니다:
"Unable to obtain a JavascriptEngine"
이 오류는 광고를 로드하기 위한 자바스크립트 엔진을 가져오지 못할 때 발생합니다. 광고 서버와의 연결이 차단되거나, 광고 요청이 중단되었을 때 나타날 수 있습니다.
"Network error"
네트워크 연결 문제로 인해 광고 서버에 접근할 수 없다는 의미입니다. 광고 차단 DNS가 설정된 경우, 광고 요청이 차단되어 네트워크 오류가 발생할 수 있습니다.
"Unable to resolve host 'googleads.g.doubleclick.net': No address associated with hostname"
광고 서버의 IP 주소를 찾지 못했을 때 발생하는 오류입니다. 광고 차단 DNS는 googleads.g.doubleclick.net과 같은 광고 서버로의 요청을 막기 때문에, DNS가 해당 서버의 IP 주소를 반환하지 않습니다. 그 결과 광고 서버에 연결할 수 없게 됩니다.
이 문제를 해결하려면 DNS 광고 차단 설정을 해제하거나, 네트워크 설정을 변경해 광고 서버로의 연결을 허용해야 합니다. 다음과 같은 방법을 시도해 볼 수 있습니다:
광고 차단 DNS 비활성화: 만약 사용 중인 네트워크에서 광고 차단 DNS가 설정되어 있다면, 이를 비활성화하세요. 광고 차단 기능이 포함된 DNS 서버를 기본 DNS로 사용 중이라면, 일반 DNS 서버(예: 구글의 8.8.8.8)로 변경하는 것이 좋습니다.
광고 차단 예외 설정: 광고 차단기를 끄는 대신, 광고 서버(예: googleads.g.doubleclick.net)를 예외 목록에 추가해 광고 요청을 허용하도록 설정할 수 있습니다.
인터넷 연결 확인: 광고 차단 DNS 외에도 네트워크 연결 문제일 가능성도 있습니다. 인터넷 연결 상태를 점검하고, 네트워크가 정상적으로 작동하는지 확인하세요.
사용자 안내: 만약 앱 사용자들이 동일한 문제를 겪는다면, 사용자들에게 광고 차단 기능을 끄거나 DNS 설정을 확인하라는 안내 메시지를 제공하는 것도 좋은 방법입니다.
앱에서 AdMob 광고가 정상적으로 표시되지 않고 다양한 네트워크 오류가 발생하는 원인은 여러 가지가 있을 수 있지만, DNS 광고 차단기는 그중에서도 중요한 원인 중 하나입니다. 네트워크 설정과 DNS 광고 차단기를 점검하여 문제를 해결하면, 광고가 정상적으로 로드될 가능성이 큽니다.
② 회고 (restropective)
예전에는 처음해보는걸 맡으면 두려웠는데 이제는 두렵지않다. 어떻게든 하게될 것을 알고있기때문...!
③ 개선을 위한 방법