app-ads.txt 設定與 AdMob 驗證完整指南

前言

如果你是用 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 上,而不是被詐欺者攔截。

運作原理

  1. 你在 Google Play 或 App Store 的開發者頁面設定一個「開發者網站」
  2. 在該網站的根目錄放置 app-ads.txt 檔案
  3. 廣告平台和驗證服務會定期爬取這個檔案
  4. 比對檔案內容與廣告請求的來源,確認授權關係

第一步:準備開發者網站

為什麼需要網站?

app-ads.txt 必須放在你的開發者網站的根目錄下(例如 https://yourdomain.com/app-ads.txt)。如果你還沒有開發者網站,需要先架一個。

我的做法:用 Cloudflare Pages 免費架站

我選擇用 Cloudflare Pages 來架設開發者網站,原因很簡單:

  • 完全免費:包含託管和 SSL 憑證
  • 部署簡單:推上 GitHub 就自動部署
  • 效能好:全球 CDN 節點,載入速度快
  • 不需要後端:純靜態檔案就夠了

基本步驟:

  1. 在 GitHub 建立一個 repository
  2. 將你的網站檔案(至少 index.htmlapp-ads.txt)推上去
  3. 到 Cloudflare 的控制台,建立一個 Pages 專案並連結 GitHub repo
  4. 設定自訂網域(如果你有自己的網域)

第二步:建立 app-ads.txt 檔案

取得你的發布者 ID

  1. 登入 Google AdMob
  2. 點擊左側選單的「帳戶」→「帳戶資訊」
  3. 找到「發布者 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

  1. 登入 Google Play Console
  2. 進入「所有應用程式」頁面
  3. 點擊左側的「設定」→「開發人員帳戶」→「開發人員頁面」
  4. 在「網站」欄位填入你的網站網址
  5. 儲存變更

Apple App Store

  1. 登入 App Store Connect
  2. 前往「使用者和存取權限」→「整合」
  3. 或者在 App 的「App 資訊」頁面設定行銷 URL

重要提醒:Google Play 和 App Store 上設定的網站網址必須與 app-ads.txt 所在的網域完全一致。

第四步:驗證設定

確認檔案可存取

部署完成後,在瀏覽器直接打開 https://yourdomain.com/app-ads.txt,確認:

  1. 頁面正常顯示內容(不是 404)
  2. 顯示的是純文字,不是 HTML 頁面
  3. 內容格式正確
  4. 發布者 ID 與 AdMob 帳戶一致

使用驗證工具

Google 提供了 app-ads.txt 驗證工具,你可以在 AdMob 後台查看驗證狀態:

  1. 登入 AdMob
  2. 進入「應用程式」頁面
  3. 選擇你的 App
  4. 查看「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 驗證等多個環節,任何一個環節出錯都會導致驗證失敗。

最重要的幾個提醒:

  1. 發布者 ID 要正確:這是最常見的錯誤來源
  2. 網域要一致:Google Play 上設定的網站與 app-ads.txt 所在的網域必須完全一致
  3. 要有耐心:驗證需要時間,通常 24-72 小時
  4. 保持檔案更新:如果你新增了廣告中介平台,記得更新 app-ads.txt

正確設定 app-ads.txt 不僅能通過 AdMob 的驗證要求,還能提高你的廣告收入品質——因為廣告主更願意在有 app-ads.txt 驗證的 App 上投放廣告。