Este proyecto tiene como objetivo proporcionar una copia completa y con capacidad de búsqueda de los anuncios políticos en la biblioteca de anuncios de Facebook.
Desde el 17.08.2023, también contiene anuncios publicados en la UE que no son anteriores a esa fecha. Puedes ver los campos adicionales a continuación.
Facebook ya proporciona todos estos datos a través de su interfaz web. El problema con esto es que difícilmente se puede buscar y, por lo tanto, no tiene utilidad real para el análisis de publicidad política. Además de esto, es difícil acceder a la API y está limitada de muchas maneras.
Estos datos ya están destinados a ser públicos, por lo que este conjunto de datos solo ayuda a brindar la transparencia que Facebook Meta desea brindar.
Sitio para acceder en vivo a los datos: https://ad-archive.nexxxt.cloud
Los datos se cargan directamente desde su API oficial.
Desde la versión 3, los anuncios se rastrean mediante una consulta vacía (*) en todos los países. Esta consulta resultó ser bastante confiable y devuelve todos los anuncios de todas las páginas.
Anteriormente, los datos se descargaban mediante page_id obtenido de Ad-reports. Estos solo deben incluir páginas relacionadas con política o temas de importancia política, pero no todas están marcadas claramente.
Debido a que estos informes contienen nombres de páginas y exenciones de responsabilidad generados por el usuario, algunos nombres o exenciones de responsabilidad pueden estar dañados por caracteres extraños.
Otra cosa de la que me di cuenta es que algunos anuncios (¿o páginas enteras?) no se pueden buscar temporalmente (¿o permanentemente?) mediante el page_id que los publicó. Puede identificarlos comprobando la cantidad especificada de anuncios del informe frente a la cantidad real de anuncios cargados en el conjunto de datos. A menudo, esto también da como resultado que las páginas aparentemente no tengan anuncios. Puedes identificarlos porque el campo mensaje está vacío (msg="").
Un problema más es que los anuncios de páginas page_id=0 no se pueden rastrear mediante su page_id. A menudo, estos simplemente se refieren a un "usuario de Instagram con alguna identificación" u otros usuarios de la plataforma de Facebook. Eche un vistazo a los informes que utilicé para obtener más información. ACTUALIZACIÓN: Se rastrean mediante el truco de consulta vacía. Más tarde también me di cuenta de que al rastrear sitios muy grandes aparecen vacíos, aunque deberían contener anuncios.
Al final, esto resultó en que los anuncios en este conjunto de datos fueran menores de lo que deberían ser según los informes. Debería ser bastante preciso ahora.
id("_id" en la tabla)
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
idiomas
id_página
nombre_página
plataformas_editoras
firmas
divisa
entrega_por_región
distribución_demográfica
tamaño_audiencia_estimado
impresiones
gastar
ubicaciones_destino
género_objetivo
edades_objetivo
alcance_total_eu
beneficiarios_pagadores
edad_país_género_alcance_desglose
renderizado (define si la versión renderizada está disponible) (¡DEPRECADO desde V5!)
rendering_started (usado para poner en cola los anuncios para renderizado) (¡DESPRECADO desde V5!)
perdido (Verdadero, si el anuncio no se encontró durante la renderización)
_last_updated (contiene la fecha en que se rastreó/actualizó el anuncio por última vez)
El campo ad_snapshot_url
no se rastrea ya que es solo una combinación de la identificación y su token de acceso:
https://www.facebook.com/ads/archive/render_ad/?id=<id>&access_token=<token>
Para acceder al anuncio si no tienes ningún token de acceso, puedes utilizar este enlace:
https://www.facebook.com/ads/library/?id=<id>
Para mostrar el anuncio sin un token de acceso, puede utilizar mi trabajador de Cloudflare para representar los datos: https://render-facebook-ad.lejo.workers.dev/<id>
Es posible que deba desactivar algunas configuraciones de privacidad como navegadores ( como Firefox) bloquean las solicitudes de Facebook entre sitios.
Para obtener más información, consulte el archivo example.json
o la descripción de los campos en la API oficial.
El script de la preview_renderer
se utiliza para tomar una captura de pantalla de los elementos relevantes de ad_snapshot_url
de cada anuncio. La base de datos separada render_queue
se utiliza para poner en cola los anuncios para su renderización. Después de renderizar, las imágenes se almacenan durante un mes, pero se pueden volver a renderizar en cualquier momento.
Después de renderizarlos, puedes verlos aquí: https://facebook-ad-previews.nexxxt.cloud/<id>.jpg
Puede acceder a los datos actuales almacenados para un anuncio en cualquier momento en: https://ad-archive.nexxxt.cloud/ad/<AD_ID>
. Este punto final también se puede utilizar para descargas automatizadas de información publicitaria y permite solicitudes de origen cruzado. Tenga en cuenta que puede llevar algún tiempo rastrear y agregar nuevos anuncios a la base de datos.
El 17.08.2023 todos los anuncios de la UE desde esa fecha aparecieron en la base de datos. Ahora tiene más del doble de tamaño que antes. Los anuncios de la UE contienen campos adicionales como se especifica anteriormente.
Los campos utilizados para la representación se eliminaron (excepto los perdidos) y ahora se manejan por separado.
Descargar metadatos (02.11.2023) kaggle
Descargar metadatos (01.03.2024) kaggle
Descargar la base de datos en un archivo JSON y comprimirla me llevó cada vez más tiempo. Por eso cambié a archivos BSON comprimidos (bson.gz). Estos son nativos de mongodb y se pueden crear de manera más rápida y confiable.
Estos se crean usando la herramienta mongodump y se pueden cargar en su propio mongodb usando mongorestore. También puedes convertirlos en archivos json normales usando su herramienta bsondump.
Además de esto, puedes usar el archivo de metadatos para restaurar los índices utilizados en mi base de datos.
Algunos de estos conjuntos de datos también están disponibles en Kaggle.
Descargar Metadatos (09.07.2022)
Descargar metadatos (22.10.2022) kaggle
Descargar metadatos (30.12.2022) kaggle
Descargar metadatos (15.03.2023) kaggle
Descargar metadatos (08.06.2023) kaggle
Los anuncios se han rastreado mediante la consulta vacía (*) en todos los países. En teoría, ahora debería contener todos los anuncios de la biblioteca.
Campo rendered
agregado para las vistas previas.
No hay ningún archivo de colección todo.json
ya que las estadísticas son incorrectas y no eran relevantes para este rastreo.
Descargar (02.09.2022)
Descargar (04.03.2022)
Descargar (26.05.2022)
V2 y anteriores:
todo.json
-Archivo: basado en los informes publicitarios y contiene todas las páginas rastreadas con la marca de tiempo del último rastreo y el cursor de paginación (después)
También contiene estadísticas de página para múltiples exenciones de responsabilidad y países. Las páginas grandes deberían estar completas ahora. Para la actualización se utilizaron varios informes de diferentes fechas.
Descargar
Primero rastreé la biblioteca alemana y estadounidense y luego decidí crear un rastreo completo.
Para este rastreo, todo.json
contiene un campo lang
que especifica el informe del que proviene la página. Todos los informes se cargaron automáticamente en la base de datos mediante el script import_reports.py
.
Descargar informes
Los datos de estos países también están disponibles en kaggle.com
Alemania (DE) Descargar informe
EE.UU. (EE.UU.) Descargar informe
Anteriormente, el rastreo se realizaba basándose en los informes oficiales de Facebook. Los cargué en mongodb y el antiguo script crawl.py
extrajo los datos de la API y los agregué a la colección de anuncios. Ahora solo estoy usando el truco de la consulta vacía (*) para descargar anuncios de todas las páginas en todos los países, consulte: crawlall.py
Para hacerlo, necesita un token de acceso (o mejor, múltiple). El script manejará automáticamente la limitación de velocidad, pero es posible que no puedas activar varios subprocesos si no tienes suficientes tokens.
Para obtener más información, simplemente eche un vistazo al archivo crawlall.py
.
Si tiene más información sobre la API/Biblioteca de Facebook o cree que hay algún problema legal con la distribución de estos datos, comuníquese conmigo: [email protected] o abra un problema.