يهدف هذا المشروع إلى توفير نسخة كاملة وقابلة للبحث من الإعلانات السياسية الموجودة على مكتبة إعلانات فيسبوك
منذ 17.08.2023، يحتوي أيضًا على إعلانات تم عرضها في الاتحاد الأوروبي ولم يتجاوز عمرها هذا التاريخ. يمكنك رؤية الحقول الإضافية أدناه.
يوفر Facebook بالفعل كل هذه البيانات عبر واجهة الويب الخاصة به. تكمن المشكلة في ذلك في أنه يصعب البحث فيه وبالتالي لا يوجد استخدام حقيقي لتحليل الإعلانات السياسية. بالإضافة إلى ذلك، يصعب الوصول إلى واجهة برمجة التطبيقات (API) وهي محدودة بعدة طرق.
من المفترض بالفعل أن تكون هذه البيانات عامة، لذا فإن مجموعة البيانات هذه تساعد فقط في توفير الشفافية التي يريد Facebook Meta توفيرها.
موقع الوصول المباشر إلى البيانات: https://ad-archive.nexxxt.cloud
يتم تحميل البيانات مباشرة من واجهة برمجة التطبيقات الرسمية الخاصة بهم.
منذ الإصدار الثالث، يتم الزحف إلى الإعلانات باستخدام استعلام فارغ (*) في جميع البلدان. تبين أن هذا الاستعلام موثوق به للغاية ويعرض جميع الإعلانات في جميع الصفحات
في السابق، تم تنزيل البيانات بواسطة page_id الذي تم الحصول عليه من تقارير الإعلانات. يجب أن تتضمن هذه الصفحات فقط الصفحات المتعلقة بالسياسة أو القضايا ذات الأهمية السياسية ولكن لا يتم وضع علامة واضحة عليها جميعها.
نظرًا لأن هذه التقارير تحتوي على أسماء الصفحات وإخلاءات المسؤولية التي أنشأها المستخدم، فقد تكون بعض الأسماء أو إخلاءات المسؤولية تالفة بسبب أحرف غريبة.
شيء آخر أدركته هو أن بعض الإعلانات (أو الصفحات بأكملها؟) لا يمكن البحث فيها مؤقتًا (أو بشكل دائم؟) بواسطة page_id الذي نشرها. يمكنك التعرف عليها عن طريق التحقق من الكمية المحددة من الإعلانات من التقرير مقابل الكمية الفعلية المحملة من الإعلانات في مجموعة البيانات. غالبًا ما يؤدي هذا أيضًا إلى ظهور صفحات تحتوي على 0 إعلانات. يمكنك التعرف عليهم من خلال كون حقل الرسالة فارغًا (msg = "").
هناك مشكلة أخرى وهي أن الإعلانات من page_id=0 لا يمكن الزحف إليها بواسطة page_id الخاص بها. غالبًا ما تشير هذه فقط إلى "مستخدم Instagram بمعرف ما" أو مستخدمي منصة Facebook الآخرين. ألق نظرة على التقارير التي استخدمتها لمزيد من المعلومات. تحديث: يتم الزحف إليها باستخدام خدعة الاستعلام الفارغة. كما أدركت لاحقًا أنه عند الزحف إلى مواقع ضخمة جدًا تكون فارغة على الرغم من أنها يجب أن تحتوي على إعلانات.
وفي النهاية أدى ذلك إلى أن تكون الإعلانات في مجموعة البيانات هذه أقل مما ينبغي وفقًا للتقارير. ينبغي أن تكون دقيقة جدا الآن.
معرف ("_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
اللغات
page_id
page_name
Publisher_platforms
الخطوط الثانوية
عملة
Delivery_by_region
التوزيع الديموغرافي
المقدرة_audience_size
انطباعات
ينفق
target_locations
target_gender
target_ages
eu_total_reach
beneficiary_payers
age_country_gender_reach_breakdown
معروض (يحدد ما إذا كان الإصدار المعروض متاحًا) (تم إهماله منذ الإصدار الخامس!)
rendering_started (يُستخدم لانتظار الإعلانات للعرض) (مهمل منذ الإصدار الخامس!)
مفقود (صحيح، إذا لم يتم العثور على الإعلان أثناء العرض)
_last_updated (يحتوي على تاريخ آخر زحف/تحديث للإعلان)
لا يتم الزحف إلى الحقل ad_snapshot_url
لأنه مجرد مزيج من المعرف ورمز الوصول الخاص بك:
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
أو وصف الحقول في واجهة برمجة التطبيقات الرسمية.
يتم استخدام البرنامج النصي من المجلد preview_renderer
لالتقاط لقطة شاشة للعناصر ذات الصلة من ad_snapshot_url
لكل إعلان. يتم استخدام قاعدة بيانات render_queue
المنفصلة لوضع الإعلانات في قائمة انتظار للعرض. بعد العرض، يتم تخزين الصور لمدة شهر واحد ولكن يمكن إعادة عرضها في أي وقت.
بعد العرض يمكنك مشاهدتها هنا: https://facebook-ad-previews.nexxxt.cloud/<id>.jpg
يمكنك الوصول إلى البيانات الحالية المخزنة للإعلان في أي وقت على: https://ad-archive.nexxxt.cloud/ad/<AD_ID>
. يمكن أيضًا استخدام نقطة النهاية هذه للتنزيلات التلقائية لمعلومات الإعلان وتسمح بالطلبات المشتركة. يرجى ملاحظة أن الأمر قد يستغرق بعض الوقت حتى يتم الزحف إلى الإعلانات الجديدة وإضافتها إلى قاعدة البيانات.
في 17.08.2023 ظهرت جميع إعلانات الاتحاد الأوروبي منذ ذلك التاريخ في قاعدة البيانات. لقد أصبح الآن أكثر من ضعف الحجم السابق. تحتوي إعلانات الاتحاد الأوروبي على حقول إضافية كما هو محدد أعلاه.
تمت إزالة الحقول المستخدمة للعرض (باستثناء الحقول المفقودة) ويتم التعامل معها الآن بشكل منفصل.
تنزيل البيانات الوصفية (02.11.2023) kaggle
تنزيل البيانات الوصفية (01.03.2024) kaggle
استغرق تنزيل قاعدة البيانات إلى ملف JSON وضغطها وقتًا طويلاً بشكل متزايد. لهذا السبب قمت بالتبديل إلى ملفات BSON المضغوطة (bson.gz). هذه أصلية في mongodb ويمكن إنشاؤها بطريقة أسرع وأكثر موثوقية.
يتم إنشاؤها باستخدام أداة mongodump ويمكن تحميلها في mongodb الخاص بك باستخدام mongorestore. يمكنك أيضًا تحويلها إلى ملفات json عادية باستخدام أداة bsondump الخاصة بها.
بالإضافة إلى ذلك يمكنك استخدام ملف البيانات الوصفية لاستعادة المؤشرات المستخدمة في قاعدة البيانات الخاصة بي.
بعض مجموعات البيانات هذه متاحة أيضًا على 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)
تنزيل (26.05.2022)
V2 وما فوق:
todo.json
-ملف: يعتمد على تقارير الإعلانات ويحتوي على جميع الصفحات التي تم الزحف إليها مع الطابع الزمني لآخر زحف ومؤشر الترحيل (بعد)
يحتوي أيضًا على إحصائيات الصفحة لإخلاء المسؤولية والبلدان المتعددة. يجب أن تكون الصفحات الكبيرة كاملة الآن. تم استخدام تقارير متعددة من تواريخ مختلفة للتحديث.
تحميل
لقد قمت أولاً بالزحف إلى المكتبة الألمانية والأمريكية ثم قررت إنشاء عملية زحف كاملة.
بالنسبة لهذا الزحف، يحتوي todo.json
على حقل lang
يحدد التقرير الذي جاءت منه الصفحة. تم تحميل جميع التقارير تلقائيًا في قاعدة البيانات باستخدام البرنامج النصي import_reports.py
.
تحميل التقارير
بيانات هذه البلدان متاحة أيضًا على موقع kaggle.com
ألمانيا (DE) تنزيل التقرير
الولايات المتحدة الأمريكية (الولايات المتحدة) تنزيل التقرير
في السابق، كان الزحف يتم بناءً على التقارير الرسمية من Facebook. لقد قمت بتحميلها في mongodb وقام البرنامج النصي crawl.py
القديم بسحب البيانات من واجهة برمجة التطبيقات وإضافتها إلى مجموعة الإعلانات. أستخدم الآن خدعة الاستعلام الفارغة (*) لتنزيل الإعلانات من جميع الصفحات في جميع البلدان، راجع: crawlall.py
للقيام بذلك، تحتاج إلى رمز وصول (أو أكثر من ذلك). سيتعامل البرنامج النصي تلقائيًا مع تحديد المعدل ولكن قد لا تتمكن من سحب سلاسل رسائل متعددة إذا لم يكن لديك ما يكفي من الرموز المميزة.
لمزيد من المعلومات، ما عليك سوى إلقاء نظرة على ملف crawlall.py
.
إذا كان لديك المزيد من المعلومات بخصوص واجهة برمجة التطبيقات/المكتبة الخاصة بفيسبوك أو تعتقد أن هناك أي مشكلات قانونية تتعلق بتوزيع هذه البيانات، فيرجى الاتصال بي: [email protected] أو فتح مشكلة!