Chuyển đến nội dung
AppFoyer
Bắt đầu

Hướng dẫn app-ads.txt

app-ads.txt là gì, và nó phải nằm ở đâu

Tệp này trong một đoạn, định dạng dòng theo từng trường, một quy tắc về vị trí quyết định mọi thứ có hoạt động hay không, và phải làm gì khi không có trang web.

app-ads.txt là một tệp văn bản thuần liệt kê các công ty quảng cáo được phép bán khoảng quảng cáo trong ứng dụng của bạn. Nó nằm tại /app-ads.txt trên trang web ghi trong trang thông tin trên cửa hàng, và các mạng quảng cáo tải nó về để kiểm tra người bán có được ủy quyền hay không. Một subdomain của nền tảng là được: AdMob xác minh các tệp trên subdomain của AppFoyer. Không có quảng cáo thì không cần tệp này.

1:22
Video 1:22 · mở trên YouTube

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.

app-ads.txt là một tệp văn bản thuần liệt kê các công ty quảng cáo được phép bán khoảng quảng cáo trong ứng dụng của bạn. Nó nằm tại /app-ads.txt trên trang web bạn đã khai báo trong trang thông tin trên cửa hàng, và các mạng quảng cáo tải nó về để kiểm tra xem bên đang chào bán khoảng quảng cáo của bạn có thực sự được bạn ủy quyền hay không. Không có nó, người mua không có cách nào xác nhận điều đó, và đó là toàn bộ lý do tiêu chuẩn này tồn tại.

Nếu ứng dụng của bạn không hiển thị quảng cáo, bạn hoàn toàn không cần tệp này. Nếu có, việc này mất khoảng mười phút — và chín phút trong số đó dành cho việc đặt đúng vị trí, phần duy nhất thường xuyên bị sai.

Nó giải quyết vấn đề gì

Khoảng quảng cáo được bán lại. Đâu đó giữa ứng dụng của bạn và nhà quảng cáo có các sàn giao dịch, bên bán lại và trung gian, và trước khi ads.txt cùng người anh em dành cho ứng dụng của nó ra đời, người mua không có cách nào rẻ để phân biệt “đây thực sự là khoảng quảng cáo của ứng dụng đó” với “có người đang tự nhận là bán nó”. Gian lận thành công vì lời tự nhận không thể kiểm chứng.

Cách khắc phục được cố ý làm đơn giản về kỹ thuật: nhà phát hành công bố danh sách những ai được phép bán thay cho họ, tại một địa chỉ chỉ nhà phát hành kiểm soát. Người mua tải tệp về và đối chiếu. Đó là toàn bộ cơ chế, và đó là lý do địa chỉ quan trọng hơn nội dung — một tệp mà ai cũng có thể đặt vào đó thì chẳng chứng minh được gì.

Định dạng dòng

Mỗi dòng một người bán được ủy quyền, ba trường bắt buộc và một trường tùy chọn, phân tách bằng dấu phẩy:

google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0
TrườngÝ nghĩa
google.comTên miền của hệ thống quảng cáo — tên miền chính thức của chính mạng quảng cáo, không phải của bạn.
pub-0000000000000000Publisher id của bạn tại mạng đó. Sao chép từ dashboard của họ.
DIRECT hoặc RESELLERDIRECT nếu bạn có hợp đồng trực tiếp với họ; RESELLER nếu bạn ủy quyền cho họ bán lại.
f08c47fec0942fa0Id của tổ chức chứng nhận, tùy chọn, khi mạng quảng cáo có công bố.

Mọi thứ sau # là chú thích. Các dòng bắt đầu bằng contact=, subdomain=, inventorypartnerdomain= và tương tự là biến, không phải bản ghi người bán, và được để nguyên.

Hai lỗi chiếm phần lớn các tệp hỏng: thiếu một dấu phẩy, khiến cả dòng không phân tích được, và dán publisher id của người khác từ một diễn đàn hỗ trợ, tức là ủy quyền cho người lạ bán khoảng quảng cáo của bạn. Dashboard của mỗi mạng đều hiển thị chính xác dòng mà nó muốn — hãy dùng dòng đó, không phải một mẫu.

Nó phải nằm ở đâu — phần quyết định mọi thứ

Trình thu thập không biết tên gói của bạn và không tra cứu bạn theo ứng dụng. Nó đọc URL trang web nhà phát triển từ trang thông tin trên cửa hàng, rồi tải /app-ads.txt ở thư mục gốc của tên miền đó. Ghi sai URL trong trang thông tin thì một tệp hoàn toàn đúng cũng trở nên vô hình.

AdMob có tài liệu về các quy tắc dò tìm, và chúng đáng đọc một lần thay vì phỏng đoán:

  • Thư mục gốc nghĩa là “the directory following the top level domain” (thư mục ngay sau tên miền cấp cao nhất) — example.com/app-ads.txt, không phải example.com/some/path/app-ads.txt.
  • Trình thu thập “probe up to one subdomain level from the developer website when constructing an app-ads.txt URL” (dò tối đa một cấp subdomain tính từ trang web nhà phát triển khi dựng URL app-ads.txt). Với một trang thông tin trỏ đến support.help.example.com/game, chính ví dụ của AdMob cho thấy nó thử help.example.com/app-ads.txt và example.com/app-ads.txt.
  • www. và m. không được tính là vị trí subdomain, nên chúng được quy về chính tên miền.

Ngoài địa chỉ, cách phục vụ phải đúng một cách nhàm chán: HTTP 200, Content-Type: text/plain, không có chuyển hướng phía trước, không đăng nhập, không có JavaScript hiển thị nó, không có gì trong robots.txt chặn nó. Một tệp chỉ xuất hiện sau khi chuyển hướng từ http sang https, hoặc từ tên miền gốc sang www, là một lỗi phổ biến và hoàn toàn vô hình.

Kiểm tra nó như trình thu thập sẽ làm:

curl -i https://your-domain.example/app-ads.txt

Bạn cần thấy 200 OK, text/plain, không có header Location:, và các dòng của bạn trong phần thân.

“Nhưng tôi không có trang web”

Đây là trường hợp bình thường với nhà phát triển độc lập, và là lý do rất nhiều ứng dụng hoàn toàn không có tệp này.

Yêu cầu là một hostname bạn kiểm soát và phục vụ được một tệp — không phải yêu cầu có một trang web marketing, một tên miền công ty hay một landing page. 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.) Hosting của nền tảng là điều được dự liệu, không phải một cách lách. Hướng dẫn khi không có trang web đi qua các lựa chọn.

Dù bạn dùng gì, hai điều phải đúng lâu hơn một tuần ra mắt: địa chỉ phải giữ nguyên, vì nó được in trong một trang thông tin trên cửa hàng mà bạn sẽ không nghĩ đến nữa, và nó phải tiếp tục phục vụ văn bản thuần mà không có chuyển hướng nào chen vào phía trước lần đầu có ai đó “cải tiến” cấu hình.

Khi bạn thay đổi gì đó, không có gì xảy ra ngay lập tức

Các mạng quảng cáo thu thập lại theo lịch riêng của họ. AdMob nêu rằng “it can take up to 24 hours for AdMob to crawl and verify your app-ads.txt files” (AdMob có thể mất đến 24 giờ để thu thập và xác minh các tệp app-ads.txt của bạn), và các mạng khác còn chậm hơn. Một tệp tải lên cách đây một giờ mà vẫn báo là thiếu thì gần như luôn chỉ là còn sớm — xem hướng dẫn khi không tìm thấy tệp trước khi thay đổi bất cứ điều gì khác.

AppFoyer làm gì ở đây

Trang của ứng dụng phục vụ app-ads.txt trên subdomain riêng của nó — văn bản thuần, 200, không chuyển hướng, với các header mà đặc tả yêu cầu — và trình soạn thảo kiểm tra từng dòng khi bạn gõ, nên một dấu phẩy bị thiếu được phát hiện trước khi trình thu thập nhìn thấy. Bạn đặt subdomain đó làm trang web nhà phát triển trong trang thông tin trên cửa hàng, một cấp dưới appfoyer.page.

AdMob xác minh nó ở đó: vào tháng 10 năm 2026, AdMob đã báo “app-ads.txt file found and verified” (đã tìm thấy và xác minh tệp app-ads.txt) cho các ứng dụng có trang web nhà phát triển là một địa chỉ AppFoyer. 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.

Nguồn chính thức

  • Thiết lập app-ads.txt — Trung tâm trợ giúp AdMob. Các quy tắc của trình thu thập và ví dụ về subdomain được trích ở trên lấy từ trang này.
  • Đặc tả ads.txt / app-ads.txt — IAB Tech Lab. Chính bản đặc tả, và là nguồn có thẩm quyền về cú pháp dòng.