前言
如果你是用 Google AdMob 來變現你的 App,你一定遇過 AdMob 後台跳出「設定 app-ads.txt」的提示。這個看似簡單的設定,其實有不少細節需要注意。我在設定的過程中踩了一些坑,這篇文章就來完整記錄從開發者網站架設到 AdMob 驗證通過的所有步驟。
什麼是 app-ads.txt?
app-ads.txt(Authorized Digital Sellers for Apps)是 IAB Tech Lab 制定的標準,目的是防止廣告詐欺。簡單來說,它讓你的 App 公開宣告「我授權哪些廣告交易平台來銷售我的廣告版位」。
這對廣告生態很重要:廣告主可以透過 app-ads.txt 確認他們的廣告預算確實花在正版的 App 上,而不是被詐欺者攔截。
運作原理
- 你在 Google Play 或 App Store 的開發者頁面設定一個「開發者網站」
- 在該網站的根目錄放置
app-ads.txt檔案 - 廣告平台和驗證服務會定期爬取這個檔案
- 比對檔案內容與廣告請求的來源,確認授權關係
第一步:準備開發者網站
為什麼需要網站?
app-ads.txt 必須放在你的開發者網站的根目錄下(例如 https://yourdomain.com/app-ads.txt)。如果你還沒有開發者網站,需要先架一個。
我的做法:用 Cloudflare Pages 免費架站
我選擇用 Cloudflare Pages 來架設開發者網站,原因很簡單:
- 完全免費:包含託管和 SSL 憑證
- 部署簡單:推上 GitHub 就自動部署
- 效能好:全球 CDN 節點,載入速度快
- 不需要後端:純靜態檔案就夠了
基本步驟:
- 在 GitHub 建立一個 repository
- 將你的網站檔案(至少
index.html和app-ads.txt)推上去 - 到 Cloudflare 的控制台,建立一個 Pages 專案並連結 GitHub repo
- 設定自訂網域(如果你有自己的網域)
第二步:建立 app-ads.txt 檔案
取得你的發布者 ID
- 登入 Google AdMob
- 點擊左側選單的「帳戶」→「帳戶資訊」
- 找到「發布者 ID」,格式為
pub-XXXXXXXXXXXXXXXX
檔案內容
在網站根目錄建立 app-ads.txt,內容如下:
google.com, pub-XXXXXXXXXXXXXXXX, DIRECT, f08c47fec0942fa0
這一行的意義:
| 欄位 | 值 | 說明 |
|---|---|---|
| 廣告系統網域 | google.com |
廣告交易平台的網域 |
| 發布者 ID | pub-XXXXXXXXXXXXXXXX |
你的 AdMob 發布者 ID |
| 關係類型 | DIRECT |
你直接與 Google 有合約關係 |
| 認證機構 ID | f08c47fec0942fa0 |
Google 在 TAG 的認證 ID |
如果你同時使用其他廣告中介(Mediation)平台,需要把每個平台的授權資訊都加進去。例如:
google.com, pub-XXXXXXXXXXXXXXXX, DIRECT, f08c47fec0942fa0
unity3d.com, XXXXXXX, DIRECT
applovin.com, XXXXXXXXXXXX, DIRECT, 0cc6bf0a17aab7dc
注意事項
- 檔案必須是 純文字格式(UTF-8 編碼)
- 每一行代表一個授權關係
- 井字號
#開頭的行是註解,會被忽略 - 檔案路徑必須是
https://yourdomain.com/app-ads.txt,不能放在子目錄
第三步:設定 App Store 的開發者網站
Google Play
- 登入 Google Play Console
- 進入「所有應用程式」頁面
- 點擊左側的「設定」→「開發人員帳戶」→「開發人員頁面」
- 在「網站」欄位填入你的網站網址
- 儲存變更
Apple App Store
- 登入 App Store Connect
- 前往「使用者和存取權限」→「整合」
- 或者在 App 的「App 資訊」頁面設定行銷 URL
重要提醒:Google Play 和 App Store 上設定的網站網址必須與 app-ads.txt 所在的網域完全一致。
第四步:驗證設定
確認檔案可存取
部署完成後,在瀏覽器直接打開 https://yourdomain.com/app-ads.txt,確認:
- 頁面正常顯示內容(不是 404)
- 顯示的是純文字,不是 HTML 頁面
- 內容格式正確
- 發布者 ID 與 AdMob 帳戶一致
使用驗證工具
Google 提供了 app-ads.txt 驗證工具,你可以在 AdMob 後台查看驗證狀態:
- 登入 AdMob
- 進入「應用程式」頁面
- 選擇你的 App
- 查看「app-ads.txt」狀態
驗證通常需要 24 小時到數天 的時間。如果持續顯示未驗證,請檢查以下常見問題。
常見問題排解
問題一:AdMob 顯示「找不到 app-ads.txt」
可能原因:
- 開發者網站的網址設定錯誤(例如多了或少了
www) - 網站尚未完成部署
- DNS 尚未生效
解決方式:
- 確認 Google Play Console 上的網站網址與實際部署的網域完全一致
- 用
curl測試:curl -I https://yourdomain.com/app-ads.txt - 等待 DNS 生效(最多 48 小時)
問題二:顯示「發布者 ID 不符」
可能原因:
- app-ads.txt 中的 publisher ID 打錯了
- 混淆了不同帳戶的 ID
解決方式:
- 回到 AdMob 後台確認正確的發布者 ID
- 確保複製的是完整的
pub-加上數字
問題三:HTTPS 重新導向問題
可能原因:
- HTTP 到 HTTPS 的重新導向設定不正確
- 重新導向鏈太長
解決方式:
- 使用 Cloudflare Pages 的話,預設就是 HTTPS,通常不會有問題
- 確認沒有多餘的重新導向
問題四:Content-Type 不正確
app-ads.txt 應該以 text/plain 的 Content-Type 回傳。可以用以下指令確認:
curl -I https://yourdomain.com/app-ads.txt
# 確認回傳的 Content-Type 是 text/plain
如果是 text/html,可能是你的 Web Server 設定有誤,或者該路徑被導向到了 HTML 頁面。
進階:多個 App 共用同一個 app-ads.txt
如果你跟我一樣有多個 App,好消息是:只要它們都用同一個 AdMob 帳戶,就只需要一個 app-ads.txt 檔案。因為 app-ads.txt 是綁定在開發者層級,不是 App 層級。
但是,每個 App 在 Google Play 上設定的開發者網站必須是同一個網域。
結語
app-ads.txt 的設定本身不難,但整個流程涉及網站架設、DNS 設定、App Store 設定和 AdMob 驗證等多個環節,任何一個環節出錯都會導致驗證失敗。
最重要的幾個提醒:
- 發布者 ID 要正確:這是最常見的錯誤來源
- 網域要一致:Google Play 上設定的網站與 app-ads.txt 所在的網域必須完全一致
- 要有耐心:驗證需要時間,通常 24-72 小時
- 保持檔案更新:如果你新增了廣告中介平台,記得更新 app-ads.txt
正確設定 app-ads.txt 不僅能通過 AdMob 的驗證要求,還能提高你的廣告收入品質——因為廣告主更願意在有 app-ads.txt 驗證的 App 上投放廣告。