Google AdSense 並不會直接給你一份完成好的 ads.txt 檔案——它提供的是應該放進檔案裡的那一行確切賣方紀錄,檔案的其餘部分則圍繞這單一筆紀錄建構出來。這行標準的 AdSense 紀錄形式如google.com, pub-XXXXXXXXXXXX, DIRECT, f08c47fec0942fa0,把佔位符換成你實際的發佈者帳號 ID,而末端那個代碼只有在 Google 自己的說明有提供時才加入。因為這個格式是由 IAB Tech Lab ads.txt 1.1 規格所固定下來的,你合作的每個其他平台都使用相同的形式,只是網域、識別碼與關係欄位不同。你要做的是取出這行 AdSense 紀錄,把它加進一份純文字檔案中、與其他任何獲授權的賣方並列,再把結果放到擁有該廣告資源的網域根目錄下。像Ads Txt Generator 這樣依照規格格式化的產生器,會處理逐欄位的格式化與重複防護,同時賣方細節全程留在你的瀏覽器中,因此你發佈出去的是一份語法乾淨、符合規格的紀錄,而不是隨手貼上的自由格式。

「從 AdSense 取得 ads.txt」實際上是什麼意思
不少發佈者以為 AdSense 介面裡會有一個按鈕,一按就能下載一份現成的 ads.txt 檔案,但 AdSense 實際呈現出來的,是帳戶設定中那行結構化的賣方紀錄。「取得」這份檔案的意思,是把那一行從 AdSense 中複製出來,圍繞它組出檔案的其餘部分,再把結果上傳到爬蟲能讀取到的位置。這個區別很重要,因為沒有任何爬蟲會在意這份檔案是你從 AdSense 下載的,還是自己組出來的,但每個爬蟲都在意這份檔案是否存在於根路徑,而且內容符合預期。
這也是為什麼一款產生器在 AdSense 這個情境下特別有用。AdSense 只提供四項資訊——網域、發佈者 ID、關係、憑證授權機構 ID,而每一項都必須落在逗號正確的那一側。少貼了pub- 這個前綴、把RESELLER 誤打成DIRECT,或是結尾沒有換行符號就中斷,都會產生一份能被解析、卻與 Google 預期的賣方宣告對不上的檔案。使用一款會在寫入每一行之前檢查每個欄位的產生器,能讓 AdSense 紀錄與 AdSense 介面內的文字完全一致,這是確保宣告內容對得上的唯一方法。
AdSense 賣方紀錄:必填與選填欄位
AdSense 紀錄與其他任何獲授權賣方那一行的形式相同,只是四個欄位的位置放的是 Google 特定的值。下表把這行標準紀錄拆解成各個部分,方便你在把它貼進產生器之前,逐一與你 AdSense 帳戶中的原始文字比對。
| 位置 | 欄位 | AdSense 範例 | 該怎麼處理 |
|---|---|---|---|
| 1 | 廣告系統網域 | google.com | 輸入純小寫的主機名稱。不要有協定、路徑、連接埠、使用者名稱或結尾的斜線。 |
| 2 | 發佈者帳號 ID | pub-XXXXXXXXXXXX | 照 AdSense 顯示的完整值複製,包括pub- 前綴與數字。 |
| 3 | 關係 | DIRECT | 當你自己的 AdSense 帳戶直接銷售該廣告資源時使用 DIRECT。 |
| 4 | 憑證授權機構 ID | f08c47fec0942fa0 | 選填。只有在 Google 公開的說明提供了確切代碼時才加入。 |
大部分工作靠兩條格式規則完成。第一個欄位必須是純粹的 DNS 風格主機名稱,這就是為什麼產生器會把值轉成小寫,並且拒絕協定、路徑、連接埠與帳密,而不是從貼上的網址中默默擷取出主機名稱。第二個欄位是 AdSense 指派給你帳戶的值,對 Google 賣方帳戶而言,它永遠以pub- 前綴開頭,後面接數字。其他交易平台使用完全不同的識別碼形式,因此絕對不要把 AdSense 的格式套用到非 Google 的賣方上,也絕對不要自行捏造一個平台從未給過你的識別碼。第四個欄位是發佈者最常出錯的地方,因為 Google 公開的範例包含一個並非適用於每一筆紀錄的特定代碼:除非該平台自己的說明有提供確切的值,否則就留空。
AdSense 紀錄該用 DIRECT 還是 RESELLER
關係欄位只是一個詞,卻會徹底改變這筆紀錄的意義。它不是排版偏好或地區選項;它是一項關於誰掌控該筆列出帳戶的事實宣告,買方也是這樣解讀的。對你自己的 AdSense 發佈者帳戶而言,幾乎唯一正確的值都是DIRECT,因為你就是註冊帳戶、掌控帳戶登入,並與 Google 簽有合約的那一方。RESELLER 適用於一種情況:當某個獲授權的合作夥伴——例如某個廣告聯播網、某個交易平台,或某個 header-bidding 封裝——在一個並非其自身所有的廣告系統上,以自己的賣方識別碼銷售你的廣告資源。
| 面向 | DIRECT | RESELLER |
|---|---|---|
| 帳戶掌控權 | 你掌控這個列出的賣方帳戶 | 由另一個獲授權的實體掌控 |
| 與廣告系統的合約 | 你直接與該系統簽約 | 第三方與該系統簽約 |
| AdSense 的典型用法 | 你的主要 AdSense 帳戶 | 透過 AdSense 廣告資源轉售的合作夥伴聯播網(對發佈者自己的 ID 來說很罕見) |
| 誤用風險 | 最低,因為它對應到你登入的帳戶 | 把第三方誤標成 DIRECT,或把你自己的 AdSense ID 放在 RESELLER 那一行 |
如果你看到某一行 RESELLER 紀錄裡含有你自己的 AdSense pub- 識別碼,請把它當成一個錯誤:那等於是在宣告有別人掌控著你的 AdSense 帳戶。請把你自己的 AdSense ID 留在 DIRECT 那一行,把合作夥伴的識別碼與他們獲授權的其他賣方一起放在 RESELLER 那一行。
用 Ads Txt Generator 建立你的 ads.txt
- 在瀏覽器中開啟 Ads Txt Generator。這個頁面在本機執行,不會把帳戶細節傳送到伺服器,因此你可以貼上真實的賣方紀錄,不需要登入步驟。
- 從你的帳戶或 AdSense 的設定說明中複製 AdSense 賣方紀錄。確認四個部分:google.com 網域、你的pub- 帳號 ID、關係欄位,以及選填的憑證授權機構 ID。
- 先加入 AdSense 紀錄。使用純粹的google.com(不含協定、路徑或結尾斜線),完整貼上 AdSense 顯示的發佈者帳號 ID,把關係欄位設為 DIRECT,只有在 Google 的說明有指定時才加入憑證授權機構 ID。
- 以同樣的方式,一次加入一筆平台提供的紀錄,把每一個其他獲授權的賣方都加進來。不同的交易平台使用不同的識別碼樣式,因此請分別複製每個值,而不是沿用 AdSense 的格式。
- 檢查產生出來的清單,確認沒有拼字錯誤或完全重複的項目。這個產生器會修剪多餘的空白、拒絕欄位內出現逗號或空格、把網域統一轉成小寫,防止完全重複的行出現,並在檔案結尾加上換行符號。
- 當每個賣方都加進清單後,複製組好的文字,或直接下載檔案。輸出結果以換行符號結尾,可以直接發佈到你根網域下的/ads.txt。
如果你想用稍微不同的順序來建立與發佈,practical guide to creating an ads.txt file 用一般網站的角度說明了同樣的流程,在你需要管理多個平台時,能自然地和上面這份逐欄位表格搭配使用。
驗證輸出結果並下載檔案
一旦每個賣方都加進清單,產生器就會為每一筆紀錄輸出一行逗號分隔的文字,並把任何不小心貼進來的完整網址、欄位內的逗號,或殘留的空白,都當成需要修正的問題來處理,而不是靜默略過的雜訊。這個頁面驗證的是語法——它無法登入 AdSense、無法確認某個發佈者 ID 是否真的屬於你、無法證明某個合作夥伴獲准轉售你的廣告資源,也無法偵測購買你曝光量的每一個平台。請把輸出結果視為「在建構上就是語法正確」,並在部署前,把產生出來的每一行對照相關平台帳戶內的原始說明逐一檢查。
這個產生器最多支援 200 筆紀錄,這樣一次誤貼過大的內容就不會產生一個難以操作的瀏覽器分頁,而且它會在檔案結尾加上換行符號,這正是 IAB Tech Lab ads.txt 1.1 specification 所要求的,也能避免編輯器與 CDN 出現「no newline at end of file」的警告。使用複製按鈕或下載動作皆可。下載能讓你取得一份本機的ads.txt 檔案,你可以在任何文字編輯器中開啟,對照你的 AdSense 說明逐行檢查,並在發佈前先備份。當你要更新一份既有檔案時,不要只為了新增一筆就移除先前有效的賣方——請附加新的紀錄,保留檔案其餘部分不動,並把這次變更當成一個經過審慎檢視的差異來對待。
發佈到 /ads.txt 並在瀏覽器中驗證
下載下來的檔案本身不會產生任何效果。只有當它能以純文字形式,在擁有該廣告資源的網域根目錄下被讀取到時才算數——對於架設在example.com 上的網站來說,這代表一個公開的網址https://example.com/ads.txt。只把檔案放在/files/ads.txt、把它嵌進某個 HTML 頁面裡,或放在需要驗證才能存取的位置後面,都不會產生同樣的根資源,爬蟲仍會把這項宣告視為不存在,即使那些位元組其實已經在線上了。請用text/plain 的內容類型來提供這份檔案,讓它被讀取為符合規格的 ads.txt 資源,而不是 HTML。
部署完成後,用瀏覽器的「檢視原始碼」指令或開發人員工具的 Network 面板開啟這個公開網址,這樣你看到的就是爬蟲會看到的原始位元組。逐行檢查,並與你帳戶內的 AdSense 說明文字逐字元比對。預期中的那一行應該完全是google.com, pub-XXXXXXXXXXXX, DIRECT, f08c47fec0942fa0,把 X 那一段換成你真實的識別碼,並且除非 Google 的說明針對你的情況有包含那個末端的憑證授權機構 ID,否則就省略它。帳戶變動、新增轉售商,或平台改名,都會需要日後更新,因此請保留先前檔案的備份,並把每一次修改都當成一個值得檢視的差異來對待,直到下一次爬蟲抓取確認這次編輯已經生效為止。
如果你還在權衡選項,Does the AI Bot Robots.txt Checker Fetch Your Live Website? 對此有詳細說明。