該項目旨在提供 Facebook 廣告庫上政治廣告的可搜尋且完整的副本
自 2023 年 8 月 17 日起,它還包含不早於該日期在歐盟投放的廣告。您可以在下面看到額外的欄位。
Facebook 已經透過其網路介面提供了所有這些數據。問題在於它很難搜索,因此對於政治廣告分析沒有真正的用途。除此之外,API 很難存取並且在許多方面受到限制。
這些數據已經是公開的,因此這個數據集只是幫助提供Facebook Meta 想要提供的透明度。
即時存取資料的網站:https://ad-archive.nexxxt.cloud
數據直接從他們的官方 API 加載。
自 V3 起,廣告將使用空查詢 (*) 在所有國家/地區進行抓取。該查詢結果非常可靠,並傳回所有頁面的所有廣告
以前,資料是透過從廣告報告中取得的 page_id 下載的。這些應該只包括與政治或具有政治重要性的問題相關的頁面,但並非所有頁面都被明確標記。
由於這些報告包含使用者產生的 page_names 和免責聲明,某些名稱或免責聲明可能會被奇怪的字元損壞。
我意識到的另一件事是,某些廣告(或整個頁面?)暫時(或永久?)無法透過發布它們的 page_id 進行搜尋。您可以透過檢查報告中指定的廣告數量與資料集中實際載入的廣告數量來識別它們。通常這也會導致頁面看起來有 0 個廣告。您可以透過 msg 欄位為空 (msg="") 來識別它們。
還有一個問題是 page_id=0 頁面的廣告無法透過其 page_id 來抓取。這些通常只是指「某個 ID 的 Instagram 用戶」或其他 Facebook 平台用戶。請查看我使用的報告以獲取更多資訊。更新:它們是使用空查詢技巧進行爬網的。我後來也意識到,當抓取非常大的網站時,儘管它們應該包含廣告,但它們是空的。
最終,這導致該資料集中的廣告少於報告中應有的數量。現在應該很準確了。
id(表中的“_id”)
廣告創建時間
廣告創意主體
廣告創意連結標題
ad_creative_link_descriptions
廣告素材連結標題
廣告投放開始時間
廣告投放停止時間
語言
頁面ID
頁面名稱
發布商平台
署名
貨幣
按地區配送
人口統計分佈
估計觀眾規模
印象數
花費
目標位置
目標性別
目標年齡
eu_total_reach
受益人_付款人
年齡_國家_性別_到達_細分
渲染(定義渲染版本是否可用)(自 V5 起已棄用!)
render_started(用於對廣告進行排隊以進行渲染)(自 V5 起已棄用!)
遺失(如果在呈現時未找到廣告,則為 True)
_last_updated(包含廣告上次抓取/更新的日期)
欄位ad_snapshot_url
不會被抓取,因為它只是 id 和存取權杖的組合:
https://www.facebook.com/ads/archive/render_ad/?id=<id>&access_token=<token>
如果您沒有任何訪問令牌,請訪問廣告,可以使用此連結:
https://www.facebook.com/ads/library/?id=<id>
要在沒有存取令牌的情況下實際渲染廣告,您可以使用我的 cloudflare Worker 來代理資料: https://render-facebook-ad.lejo.workers.dev/<id>
您可能需要停用一些瀏覽器隱私設定(像 Firefox)阻止跨網站 Facebook 請求。
有關更多信息,請查看example.json
文件或官方 API 上的字段描述。
preview_renderer
資料夾中的腳本用於從每個廣告的ad_snapshot_url
中取得相關元素的螢幕截圖。單獨的render_queue
資料庫用於對廣告進行排隊以進行渲染。渲染後影像會儲存一個月,但可以隨時重新渲染。
渲染後,您可以在此處查看它們: https://facebook-ad-previews.nexxxt.cloud/<id>.jpg
您可以隨時存取為廣告儲存的當前資料: https://ad-archive.nexxxt.cloud/ad/<AD_ID>
。此端點也可用於自動下載廣告訊息並允許跨來源請求。請注意,抓取新廣告並將其添加到資料庫可能需要一些時間。
2023 年 8 月 17 日,自該日期以來的所有歐盟廣告均出現在資料庫中。現在的尺寸是之前的兩倍多。歐盟廣告包含如上所述的額外欄位。
用於渲染的欄位已被刪除(遺失的除外),現在單獨處理。
下載元資料 (02.11.2023) kaggle
下載元資料 (01.03.2024) kaggle
將資料庫下載到 JSON 檔案並壓縮它花了我越來越長的時間。這就是我改用壓縮 BSON 檔案 (bson.gz) 的原因。它們是 mongodb 原生的,可以更快、更可靠地建立。
它們是使用 mongodump 工具建立的,並且可以使用 mongorestore 載入到您自己的 mongodb 中。您也可以使用他們的 bsondump 工具將它們轉換為普通的 json 檔案。
除此之外,您還可以使用元資料檔案來還原我的資料庫中使用的索引。
其中一些資料集也可以在 kaggle 上找到。
下載元資料 (07.09.2022)
下載元資料 (22.10.2022) kaggle
下載元資料 (30.12.2022) kaggle
下載元資料 (15.03.2023) kaggle
下載元資料 (06.08.2023) kaggle
已使用空查詢 (*) 在所有國家/地區抓取廣告。理論上現在應該包含庫中的所有廣告。
為預覽添加了rendered
欄位。
沒有todo.json
集合文件,因為統計資訊錯誤且與此爬網無關。
下載 (09.02.2022)
下載 (03.04.2022)
下載 (2022年5月26日)
V2 及更早版本:
todo.json
-文件:基於廣告報告,包含抓取的所有頁面以及上次抓取的時間戳和分頁遊標(之後)
還包含多個免責聲明和國家/地區的頁面統計資料。大頁面現在應該已完成。使用不同日期的多份報告進行更新。
下載
我首先爬行了德國和美國圖書館,然後決定創建一個完整的爬行。
對於此爬網, todo.json
包含一個lang
字段,指定頁面來自的報告。使用import_reports.py
腳本將報告全部自動載入到資料庫中。
下載報告
這些國家的數據也可以在kaggle.com上找到
德國 (DE) 下載報告
美國(美國)下載報告
之前的抓取是根據Facebook的官方報告進行的。我將它們載入到 mongodb 中,舊的crawl.py
腳本從 Api 中提取資料並將其新增至廣告集合中。現在我只是使用空查詢 (*) 技巧從所有國家/地區的所有頁面下載廣告,請參閱: crawlall.py
為此,您需要一個(或更好的多個)存取權杖。該腳本將自動處理速率限制,但如果您沒有足夠的令牌,您可能無法拉動多個執行緒。
有關更多信息,請查看crawlall.py
檔案。
如果您有關於 Facebook API/庫的更多信息,或者認為此數據的分發存在任何法律問題,請聯繫我:[email protected] 或打開一個問題!