このプロジェクトは、Facebook 広告ライブラリで検索可能な政治広告の完全なコピーを提供することを目的としています。
2023 年 8 月 17 日以降、その日付より前に EU 内で掲載された広告も含まれます。以下に追加のフィールドが表示されます。
Facebook はすでにこのすべてのデータを Web インターフェイス経由で提供しています。これの問題は、検索がほとんどできないため、政治広告の分析には実際には役に立たないことです。これに加えて、API はアクセスが難しく、多くの点で制限されています。
このデータはすでに公開されることを意図しているため、このデータセットはFacebookメタが提供したい透明性を提供するのに役立つだけです。
ライブサイトのデータへのアクセス: https://ad-archive.nexxxt.cloud
データは公式 API から直接ロードされます。
V3 以降、広告はすべての国で空のクエリ (*) を使用してクロールされます。このクエリは非常に信頼性が高く、すべてのページのすべての広告を返すことが判明しました。
以前は、データは広告レポートから取得した page_id によってダウンロードされていました。これらには、政治または政治的に重要な問題に関連するページのみを含める必要がありますが、すべてに明確にフラグが立てられているわけではありません。
これらのレポートには、ユーザーが生成した page_names と免責事項が含まれているため、一部の名前または免責事項が奇妙な文字によって破損している可能性があります。
もう 1 つ気づいたのは、一部の広告 (またはページ全体?) が、それらを公開した page_id で一時的に (または永久に?) 検索できないことです。レポートで指定された広告の量と、データセットに実際に読み込まれた広告の量を確認することで、それらを特定できます。これにより、ページには広告がまったくないように見えることもよくあります。 msg フィールドが空 (msg="") であることで識別できます。
もう 1 つ問題は、page_id=0 ページの広告が、page_id によってクロールできないことです。これらは多くの場合、単に「ある ID の Instagram ユーザー」または他の Facebook プラットフォーム ユーザーを指します。詳細については、私が使用したレポートを参照してください。更新: これらは空のクエリ トリックを使用してクロールされます。また、後になって、非常に巨大なサイトをクロールすると、広告が含まれているはずなのに空であることに気づきました。
最終的に、このデータセット内の広告の数は、レポートによると本来の数よりも少なくなりました。今ではかなり正確になっているはずです。
id(テーブル内の「_id」)
ad_creation_time
ad_creative_bodies
ad_creative_link_captions
ad_creative_link_descriptions
ad_creative_link_titles
ad_delivery_start_time
ad_delivery_stop_time
言語
ページID
ページ名
パブリッシャー_プラットフォーム
署名欄
通貨
地域別配送
人口分布
推定視聴者数
印象
過ごす
ターゲットの場所
対象の性別
対象年齢
eu_total_reach
受益者_支払者
age_country_gender_reach_breakdown
rendered (レンダリングされたバージョンが利用可能かどうかを定義) (V5 以降非推奨!)
rendering_started (レンダリングのために広告をキューに入れるために使用) (V5 以降非推奨!)
Lost (レンダリング中に広告が見つからなかった場合は 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 ワーカーを使用してデータをプロキシできます: https://render-facebook-ad.lejo.workers.dev/<id>
ブラウザとして一部のプライバシー設定を無効にする必要がある場合があります ( Firefox など)クロスサイト Facebook リクエストをブロックします。
詳細については、 example.json
ファイルまたは公式 API のフィールドの説明を参照してください。
preview_renderer
フォルダーのスクリプトは、各広告のad_snapshot_url
から関連要素のスクリーンショットを取得するために使用されます。別のrender_queue
データベースは、レンダリングのために広告をキューに入れるために使用されます。レンダリング後のイメージは 1 か月間保存されますが、いつでも再レンダリングできます。
レンダリング後は、https: https://facebook-ad-previews.nexxxt.cloud/<id>.jpg
で表示できます。
広告用に保存されている現在のデータには、 https://ad-archive.nexxxt.cloud/ad/<AD_ID>
でいつでもアクセスできます。このエンドポイントは、広告情報の自動ダウンロードにも使用でき、クロスオリジン リクエストを許可します。新しい広告がクロールされてデータベースに追加されるまでには、時間がかかる場合があることに注意してください。
2023 年 8 月 17 日、その日以降のすべての EU 広告がデータベースに表示されました。以前の倍以上の大きさになりました。 EU の広告には、上記で指定した追加のフィールドが含まれています。
レンダリングに使用されるフィールドは削除され (紛失を除く)、個別に処理されるようになりました。
メタデータのダウンロード (02.11.2023) kaggle
メタデータのダウンロード (01.03.2024) kaggle
データベースを JSON ファイルにダウンロードして圧縮すると、ますます時間がかかりました。そのため、圧縮 BSON ファイル (bson.gz) に切り替えました。これらは mongodb にネイティブであり、より高速かつ信頼性の高い方法で作成できます。
これらは mongodump ツールを使用して作成され、mongorestore を使用して独自の mongodb にロードできます。 bsondump ツールを使用して、それらを通常の json ファイルに変換することもできます。
これに加えて、メタデータ ファイルを使用して、データベースで使用されているインデックスを復元できます。
これらのデータセットの一部は kaggle でも入手できます。
メタデータのダウンロード (2022 年 7 月 9 日)
メタデータのダウンロード (2022.10.22) kaggle
メタデータのダウンロード (2022.12.30) kaggle
メタデータのダウンロード (2023.03.15) kaggle
メタデータのダウンロード (06.08.2023) kaggle
広告は、すべての国で空のクエリ (*) を使用してクロールされています。理論的には、ライブラリ内のすべての広告が含まれるはずです。
プレビュー用にrendered
フィールドが追加されました。
統計情報が間違っており、このクロールには関連していないため、 todo.json
コレクション ファイルはありません。
ダウンロード (2022 年 9 月 2 日)
ダウンロード (2022 年 3 月 4 日)
ダウンロード (2022.05.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] までご連絡いただくか、問題を開いてください。