Đặt app-ads.txt khi bạn không có trang web
Trình thu thập thực sự cần gì, ba cách có một host mà không phải xây trang web, các bẫy chuyển hướng của từng cách, và cách xác nhận mọi thứ hoạt động.
Bạn không cần trang web, chỉ cần một hostname do bạn kiểm soát, phục vụ /app-ads.txt dưới dạng văn bản thuần với HTTP 200 và không chuyển hướng. Điền địa chỉ đó vào trường trang web nhà phát triển trong trang thông tin trên cửa hàng — Marketing URL trên App Store — và trình thu thập sẽ đọc tệp ở đó. AdMob nêu Firebase Hosting là chấp nhận được.
Làm việc này trong vài phút thay vì thế
AppFoyer lưu trữ các trang mà hướng dẫn này nói đến — chính sách quyền riêng tư, điều khoản, hỗ trợ, xóa tài khoản và app-ads.txt — trên subdomain riêng của ứng dụng, không cần tên miền hay máy chủ của riêng bạn. Một ứng dụng được miễn phí, và không có gì cửa hàng yêu cầu lại bị đặt sau tường phí.
Đã kiểm tra ngày 12 tháng 10, 2026. Chính sách của cửa hàng thay đổi, đôi khi không báo trước. Mọi thứ dưới đây đều dẫn liên kết đến tài liệu chính thức, và trang đó — không phải trang này — mới là căn cứ. Nếu hai bên mâu thuẫn, cửa hàng là đúng. Hướng dẫn này được dịch từ tiếng Anh; các trích dẫn từ tài liệu của cửa hàng được giữ nguyên bản tiếng Anh.
Bạn không cần trang web, chỉ cần một hostname do bạn kiểm soát, phục vụ /app-ads.txt dưới dạng
văn bản thuần với HTTP 200 và không chuyển hướng. Điền địa chỉ đó vào trường trang web nhà phát
triển trong trang thông tin trên cửa hàng — Marketing URL trên App Store, Website trong Store listing
contact details trên Google Play — và trình thu thập sẽ đọc tệp ở đó.
AdMob nói thẳng điều này: “If you don’t have a suitable website that allows the uploading of an app-ads.txt file at the root level, you can use Firebase Hosting to host your app-ads.txt file.” (Nếu bạn không có trang web phù hợp cho phép tải tệp app-ads.txt lên ở cấp thư mục gốc, bạn có thể dùng Firebase Hosting để lưu trữ tệp app-ads.txt của mình.) Hosting nền tảng là câu trả lời được dự tính sẵn, không phải cách lách.
Trình thu thập thực sự cần gì
Trình thu thập không tra ứng dụng của bạn theo tên gói. Nó lấy trang web nhà phát triển từ trang
thông tin trên cửa hàng, giữ lại hostname, và tải /app-ads.txt ở thư mục gốc của hostname đó. Quy
tắc của AdMob:
- Thư mục gốc, không phải đường dẫn. Trang thông tin trỏ tới
example.com/myappsẽ được kiểm tra tạiexample.com/app-ads.txt. - Một cấp tên miền phụ. Trình thu thập “probe[s] up to one subdomain level from the developer
website” (dò tối đa một cấp tên miền phụ tính từ trang web nhà phát triển).
www.vàm.được tính là chính tên miền đó. - Phục vụ đơn giản.
200 OK,Content-Type: text/plain, không chuyển hướng, không đăng nhập, không có gì trongrobots.txtchặn nó.
Vậy việc cần làm là: một địa chỉ không thay đổi, phục vụ một tệp văn bản, đúng cách, trong nhiều năm. Cả ba lựa chọn dưới đây đều làm được điều đó; chúng khác nhau ở mức bạn phải tự bảo trì.
Lựa chọn 1: Firebase Hosting
Lựa chọn mà AdMob nêu tên. Một dự án Firebase miễn phí cho bạn một hostname như
your-project.web.app.
- Tạo một dự án trong Firebase console và cài Firebase CLI.
- Trong một thư mục trống, chạy
firebase init hostingvà giữ thư mụcpublicmặc định. - Đặt
app-ads.txtcủa bạn vàopublic/, cạnh tệpindex.htmlđược tạo sẵn. - Chạy
firebase deploy --only hosting. - Đặt
https://your-project.web.applàm trang web nhà phát triển trong từng trang thông tin trên cửa hàng.
Cái bẫy: nếu sau này bạn kết nối một tên miền tùy chỉnh và chọn chuyển hướng địa chỉ web.app
sang đó, địa chỉ trong trang thông tin của bạn giờ sẽ trả về một chuyển hướng. Hoặc giữ trang thông
tin ở địa chỉ phục vụ tệp trực tiếp, hoặc cập nhật trang thông tin sang tên miền mới.
Lựa chọn 2: GitHub Pages hoặc một host tĩnh khác
Host tĩnh nào cũng được nếu tệp nằm ở thư mục gốc của hostname bạn khai báo.
Trên GitHub Pages chi tiết đó rất quan trọng: một trang project nằm ở username.github.io/repo/,
nhưng trình thu thập chỉ kiểm tra username.github.io/app-ads.txt. Tệp phải nằm trong trang user —
repository có tên username.github.io — hoặc project cần có tên miền tùy chỉnh riêng.
Cái bẫy chuyển hướng tương tự cũng áp dụng: khi đã cấu hình tên miền tùy chỉnh, GitHub Pages chuyển
hướng địa chỉ github.io sang tên miền đó. Hãy khai báo địa chỉ nào phục vụ tệp mà không qua bước
nhảy.
Lựa chọn 3: một trang tuân thủ được lưu trữ sẵn
Nếu bạn cũng cần chính sách quyền riêng tư, trang hỗ trợ hoặc URL xóa tài khoản — và một ứng dụng có
quảng cáo gần như luôn cần cái đầu tiên — cùng một host có thể phục vụ tất cả. Đó là việc AppFoyer
làm: mỗi ứng dụng có tên miền phụ riêng phục vụ app-ads.txt dưới dạng văn bản thuần, không chuyển
hướng, cùng với các trang mà cửa hàng yêu cầu. AdMob báo “app-ads.txt file found and verified” cho các
ứng dụng trên cả hai cửa hàng có trang web nhà phát triển là địa chỉ AppFoyer (kiểm tra vào tháng 10
năm 2026). Chúng tôi chưa có kết quả thu thập nào của riêng mình từ các mạng quảng cáo khác.
Kiểm tra trước khi trình thu thập làm
curl -i https://your-host.example/app-ads.txt
Bạn cần thấy HTTP/2 200 (hoặc HTTP/1.1 200 OK), content-type: text/plain, không có header
location:, và các dòng của bạn trong phần nội dung. Mã 301 hoặc 302 ở đây là lỗi vô hình phổ
biến nhất.
Sau đó hãy chờ. AdMob cho biết “it can take up to 24 hours for AdMob to crawl and verify your app-ads.txt files” (AdMob có thể mất tới 24 giờ để thu thập và xác minh các tệp app-ads.txt của bạn). Trạng thái nằm ở Apps → View all apps → app-ads.txt; nếu sau một ngày vẫn báo không tìm thấy, hướng dẫn về lỗi không tìm thấy sẽ đi qua lần lượt các nguyên nhân.
Nguồn chính thức
- Set up app-ads.txt — Trợ giúp AdMob. Câu về Firebase Hosting, các quy tắc thư mục gốc và tên miền phụ, cùng con số 24 giờ đều lấy từ trang này.
- Understand app-ads.txt file statuses — Trợ giúp AdMob. Nơi xem trạng thái và ý nghĩa của từng trạng thái.
- ads.txt / app-ads.txt specification — IAB Tech Lab.