AdMob이 app-ads.txt를 찾을 수 없다고 하는 이유
광고 네트워크 크롤러가 파일을 찾는 방식, 크롤러를 막는 흔한 원인 여섯 가지, 실제 문제와 아직 실행되지 않은 크롤링을 구분하는 방법.
not found 결과는 거의 항상 기계적인 원인입니다. 스토어 등록정보에 개발자 웹사이트가 없거나, URL이 파일이 없는 곳을 가리키거나, 리디렉션이 있거나, 콘텐츠 유형이 잘못되었거나, 형식이 잘못된 줄이 있거나, 크롤링이 아직 실행되지 않은 경우입니다. AdMob은 24시간을 잡습니다. AppFoyer 서브도메인의 파일은 AdMob에서 확인됩니다.
대신 몇 분 만에 끝내세요
AppFoyer는 이 가이드가 다루는 페이지, 즉 개인정보처리방침, 이용약관, 지원, 계정 삭제 페이지와 app-ads.txt를 전용 하위 도메인에서 호스팅합니다. 직접 도메인이나 서버를 둘 필요가 없습니다. 앱 하나는 무료이며, 스토어가 요구하는 것은 무엇도 유료로 막아 두지 않습니다.
2026년 10월 12일 확인. 스토어 정책은 바뀌며, 예고 없이 바뀌기도 합니다. 아래의 모든 내용은 공식 문서로 연결되며, 권위를 갖는 것은 이 페이지가 아니라 그 문서입니다. 둘이 다르면 스토어가 맞습니다. 이 가이드는 영어 원문을 번역한 것이며, 스토어 문서의 인용문은 영어 원문 그대로 두었습니다.
네트워크가 app-ads.txt를 not found로 보고한다면 거의 항상 여섯 가지 기계적 원인 중 하나입니다.
스토어 등록정보에 개발자 웹사이트가 없음, 웹사이트 URL이 파일이 없는 곳을 가리킴, 파일 앞에
리디렉션이 있음, 콘텐츠 유형이 잘못됨, 형식이 잘못된 줄, 또는 크롤링이 아직 실행되지 않았을 뿐인 경우입니다.
어느 것도 앱, 계정, 광고 단위와는 관련이 없습니다.
app-ads.txt는 앱의 인벤토리를 판매하는 쪽이 그럴 권한이 있는지 광고 네트워크가 확인할 수 있게 해 주는
IAB 표준입니다. 네트워크는 스토어 등록정보에 표시된 웹사이트 URL을 통해 이 파일을 찾습니다.
그래서 위의 원인들은 모두 앱이 아니라 그 URL에 관한 것입니다.
크롤러가 파일을 찾는 방식
연결 고리는 세 개이며, 어느 하나가 끊어져도 같은 메시지가 나옵니다.
- 네트워크가 스토어 등록정보에서 개발자 웹사이트 URL을 읽습니다.
- 그 도메인의 루트에서
/app-ads.txt를 가져옵니다. - 네트워크와 게시자 ID가 적힌 줄을 찾습니다.
즉, 파일은 앱이나 패키지 이름, AdMob 계정을 통해 찾는 것이 아닙니다. 스토어 등록정보에 표시된 웹사이트 URL을 통해 찾습니다. 이것이 틀리면 다른 것은 의미가 없습니다.
흔한 원인 여섯 가지
등록정보에 웹사이트 URL이 없음. 가장 흔한 원인입니다. 스토어 등록정보에 개발자 웹사이트가 없으면 크롤러는 시작할 곳이 없습니다. App Store에서 이 필드는 필수인 Support URL이 아니라 선택 항목인 Marketing URL입니다. iOS 앱의 app-ads.txt를 참고하세요.
URL이 파일이 없는 곳을 가리킴. 등록정보에는 example.com이라고 되어 있는데 파일은
www.example.com에 있거나, 도메인 루트가 아닌 페이지 경로에 있는 경우입니다.
리디렉션. 사양은 파일이 직접 제공될 것을 기대합니다. 리디렉션 체인은 http → https나
루트 도메인 → www라도 실패의 흔한 원인입니다. 등록정보가 지정한 주소에서 200으로 제공하세요.
잘못된 콘텐츠 유형. 일반 텍스트로 제공해야 합니다. text/html로 제공되는 파일이나, 파일을 페이지로
감싸는 호스팅 플랫폼은 파싱되지 않습니다.
줄 자체의 오타. 형식은 엄격합니다.
domain, publisher id, relationship, certification id 형식이며, 쉼표 하나가 빠지거나 공백이
잘못 들어가면 그 줄이 깨집니다.
크롤링이 아직 실행되지 않았을 뿐임. 네트워크는 자체 일정에 따라 다시 크롤링하며, 보통 분 단위가 아니라 일 단위입니다. 한 시간 전에 올린 파일이 누락으로 표시된다면 대개 아직 이를 뿐입니다.
10초 만에 직접 확인하는 방법
curl -i https://your-domain.example/app-ads.txt
원하는 결과는 200 OK, Content-Type: text/plain, Location: 헤더 없음, 그리고 본문에 있는
여러분의 줄입니다. curl에서는 문제가 없는데 네트워크에서는 여전히 실패한다면 문제는 그 이전 단계,
즉 등록정보의 URL이나 크롤링 일정에 있습니다.
서브도메인에 대한 참고
사양은 스토어 등록정보에 선언된 도메인의 루트를 말하며, 서브도메인에는 자체 루트가 있습니다. 따라서
등록정보가 정확히 yourapp.example.page/app-ads.txt 주소를 선언한다면 그곳에서 파일을 제공하는 것은
사양에 부합합니다.
AdMob은 이 방식의 근거가 되는 규칙을 문서화하고 있습니다. 크롤러는 “probe[s] up to one subdomain level from the developer website”(번역: 개발자 웹사이트에서 서브도메인 한 단계까지 탐색합니다)이며, Firebase Hosting 같은 플랫폼 호스팅을 파일을 두기에 적합한 장소로 명시합니다.
AdMob은 AppFoyer 서브도메인의 파일을 확인합니다. 2026년 10월 AdMob은 개발자 웹사이트가 AppFoyer 주소인 두 스토어의 앱에 대해 “app-ads.txt file found and verified”(app-ads.txt 파일을 찾아 확인함)라고 보고했습니다. 2026년 9월 23일의 이전 크롤링에서는 그중 한 앱이 not found로 보고되었지만, 저희 쪽에서 아무것도 바꾸지 않은 상태에서 지금은 통과합니다. AdMob이 AppFoyer 주소에 대해 “not found”라고 하면 위의 원인을 하나씩 확인하고 크롤링에 24시간을 주세요. 다른 광고 네트워크에 대해서는 아직 자체적으로 확보한 크롤링 결과가 없습니다.
AppFoyer가 하는 일
저희는 파일을 리디렉션 없이 일반 텍스트로, 사양이 요구하는 헤더와 함께 제공하고, 주요 네트워크용 프리셋을 제공하며, 입력하는 동안 각 줄을 검증합니다. 특정 네트워크가 이를 수락할 것이라고 약속하지는 않습니다. 위 단락을 참고하세요.
공식 출처
- Set up app-ads.txt — AdMob 고객센터
- app-ads.txt / ads.txt specification — IAB Tech Lab