콘텐츠로 건너뛰기

📜 ads.txt 생성기

Google AdSense, Ad Manager, Amazon, Index Exchange, Rubicon, OpenX, PubMatic 등 주요 SSP 프리셋으로 IAB 호환 ads.txt 생성. DIRECT / RESELLER 지원.

완전 무료 가입 불필요 브라우저 완결 5 개 언어 다크 모드

🔒 개인정보 보호

🏷️ 퍼블리셔 ID

🌐 네트워크 선택

➕ 커스텀 행

형식: domain, id, DIRECT|RESELLER, TAG-ID

📄 ads.txt


    

도메인 루트에 배치.

📚 ads.txt 소개

ads.txt (Authorized Digital Sellers)는 IAB Tech Lab에서 수립한 광고 사기 방지 표준입니다. 광고 인벤토리를 판매할 수 있는 권한을 가진 공급업체를 텍스트 파일로 공개하여 도메인 스푸핑을 방지합니다. Google AdSense 또는 Ad Manager 사용 시 설정이 거의 필수입니다.

📖 자주 걸리는 지점

퍼블리셔 ID 와 애드 네트워크 선택으로부터 domain, publisher-id, DIRECT|RESELLER, TAG-ID 4 열 형식의 ads.txt 를 조립합니다. 처리는 브라우저 안에서 끝나며 ID 가 서버로 전송되지 않습니다. 이 도구가 보증할 수 있는 것은 서식뿐입니다 — ID 가 올바른지, 그 네트워크와 실제로 계약이 있는지는 검증할 수 없습니다. 그리고 ads.txt「여기에 적히지 않은 판매자의 인벤토리는 사지 말라」고 선언하는 파일이므로 서식이 완벽해도 ID 가 한 글자 다르면 그 판매자를 거친 입찰이 조용히 전부 멈춥니다.

사례 무슨 일이 일어나는가 어떻게 하면 되는가
위치가 다르면 없는 것과 같은 취급 크롤러가 읽는 곳은 도메인 루트 바로 아래뿐, 즉 https://example.com/ads.txt 입니다. /blog/ads.txt/ads.txt.html 도 보러 가지 않습니다. 흔한 실패가 셋 있습니다. 첫째는 SPA 나 정적 호스팅이 알 수 없는 경로에 index.html 을 200 으로 돌려주는 경우로, 크롤러는 HTML 을 받고 거기에 광고 시스템 행이 없으므로 「전부 미승인」이라고 해석합니다. 둘째는 서브도메인blog.example.com 의 인벤토리는 blog.example.com/ads.txt 를 참조하며 루트의 파일이 자동으로 적용되지 않습니다. 셋째는 리다이렉트로, 규격상 따라갈 수 있는 횟수는 제한되어 있습니다. 브라우저로 열어 확인하는 것만으로는 부족합니다. curl -I https://example.com/ads.txt 를 실행해 상태 코드가 200 인지, Content-Typetext/plain 인지, 리다이렉트가 없는지 세 가지를 보세요. text/html 이 돌아온다면 그것은 ads.txt 가 아니라 애플리케이션의 폴백 페이지입니다. 서브도메인에서 광고를 내보낸다면 루트 파일에 subdomain=blog.example.com 행을 추가하거나 그 서브도메인에도 실물을 두세요. www 유무도 다른 호스트 취급이므로 양쪽 모두 curl 로 확인하세요.
DIRECT 와 RESELLER 를 실제와 다르게 적는다 DIRECT 는 「그 광고 시스템과 직접 계약하고 있으며 거기서 직접 지급을 받는다」는 뜻입니다. MCM 이나 중개 파트너를 거쳐 AdSense 를 운영한다면 올바른 행은 그 파트너가 지정한 것이며 대개 RESELLER 행을 포함합니다. DIRECT 라고 적는 편이 유리한 일은 없습니다 — 구매 측의 대조는 sellers.json 과 맞춰서 이뤄지므로 실제와 어긋나면 오히려 신용을 잃습니다. 또 하나의 단골 실수가 도메인 칸으로, 여기에 넣는 것은 광고 시스템의 정규 도메인 (google.com) 이지 관리 화면의 URL (adsense.google.com) 이 아닙니다. 행을 스스로 만들지 말고 각 파트너의 관리 화면에 적힌 문자열을 그대로 복사하세요. 주요 애드 네트워크는 반드시 「ads.txt 에 추가할 행」을 공개하고 있습니다. 퍼블리셔 ID 는 지급 계정 표시와 한 글자씩 대조하고, Google 이라면 pub- 접두사까지 포함해 완전히 일치시킵니다. 네 번째 열의 TAG-ID 는 임의지만 쓸 수 있다면 쓰세요 — 구매 측 필터에서 가점이 되는 경우가 있습니다. 마무리로 완성된 파일을 Google Ad Manager 나 AdSense 의 ads.txt 상태 화면에서 읽히고 경고가 사라지는지 확인합니다. 서식 검증은 그곳이 최종 권위입니다.
다시 만들 때 이전에 있던 행이 사라진다 ads.txt 의 변경은 즉시 반영되지 않으며 즉시 되돌릴 수도 없습니다. 크롤러는 취득 결과를 대략 하루 정도 캐시하므로 새 네트워크를 추가해도 당일에는 송출이 시작되지 않습니다. 문제는 반대 방향입니다 — 이전에는 실려 있던 행을 뺀 파일을 공개하면 그 판매자를 거친 수요가 하루쯤 만에 멈춥니다. 제너레이터로 처음부터 다시 만들어 덮어쓰는 운용을 하고 있으면 몇 달 전에 추가한 파트너의 행을 잊고 빠뜨리는 사고가 일어납니다. 게다가 수익이 줄었다는 사실만으로는 원인을 알 수 없어서 알아차리기까지 시간이 걸립니다. 생성한 파일을 그대로 올리지 말고 반드시 현재 공개 중인 파일과 차분을 뜨세요. curl -s https://example.com/ads.txt > live.txt 로 실물을 내려받고 diff live.txt new.txt「사라지는 행」이 의도한 것뿐인지 확인합니다. 운용으로는 ads.txt 를 Git 으로 관리하고 변경을 반드시 리뷰를 거치게 하는 편이 확실합니다. 더불어 광고 수익의 일별 추이를 파트너별로 볼 수 있게 해 두면 사고가 났을 때 원인을 가려낼 수 있습니다. 행을 추가한 날짜를 주석 (# 로 시작하는 행) 으로 남겨 두면 후임자가 지워도 되는 행인지 판단할 수 있습니다.

ads.txt 는 공개 파일이며 그것이 사양입니다. 누구나 가져갈 수 있으므로 어느 네트워크와 손잡고 있는지가 경쟁사에게도 훤히 보입니다. 이는 피할 방법이 없고 감출 구조도 없습니다 — 광고 스택을 비밀로 하는 운용은 애초에 ads.txt 와 양립하지 않습니다. 범위에 대한 오해도 많으니 정리해 둡니다. 이 파일이 지키는 것은 웹의 광고 지면뿐입니다. 앱 인벤토리는 app-ads.txt 라는 별도의 파일이고, 게다가 둘 곳은 앱 스토어 등록 정보에 적은 개발자 사이트의 URL 이지 앱의 도메인이 아닙니다. 동영상에는 ads.cert 등 다른 구조가 있습니다. 그리고 마지막으로 — ads.txt 는 「사칭 인벤토리를 사지 못하게」 하기 위한 선언이지 수익을 늘리는 설정이 아닙니다. 두었다고 단가가 오르는 것이 아니라 두지 않으면 구매자가 꺼리게 되는 성질의 것입니다.

📖 사용법

  1. 1
    퍼블리셔 ID 입력
    Google / Amazon ID 입력.
  2. 2
    네트워크 선택
    사용 중인 SSP 체크.
  3. 3
    배포
    https://example.com/ads.txt 배치.

❓ 자주 묻는 질문

DIRECT vs RESELLER 차이?
DIRECT는 직접 계약. RESELLER는 중개.
TAG-ID 필수?
선택. 권장.
ads.txt 반영 시간?
Google 보통 24시간 내, 최대 1주.
🐛 이 도구에서 문제가 발생했나요?

무료 · 가입 불필요. 재현 절차만이라도 도움이 됩니다. 보고는 운영자에게 직접 전달되어 개선에 사용됩니다.

※ 재현을 위해 브라우저 정보 (UA / 화면 / 언어 / URL) 가 자동 전송됩니다