All Projects → propublica → Facebook Political Ads

propublica / Facebook Political Ads

Licence: mit
Monitoring Facebook Political Ads

Programming Languages

javascript
184084 projects - #8 most used programming language
rust
11053 projects

Projects that are alternatives of or similar to Facebook Political Ads

no-facebook-emoji
Get rid of those ugly emojis now! [stopped working 😢]
Stars: ✭ 15 (-93.02%)
Mutual labels:  facebook, extension
hypergravity
Gravity simulation in Hyper terminal
Stars: ✭ 22 (-89.77%)
Mutual labels:  extension, hyper
apps
daily.dev application suite
Stars: ✭ 253 (+17.67%)
Mutual labels:  extension, preact
Preact Devtools
Browser extension for inspection Preact applications
Stars: ✭ 204 (-5.12%)
Mutual labels:  extension, preact
Findergo
🐢 Open terminal quickly from Finder
Stars: ✭ 862 (+300.93%)
Mutual labels:  hyper, extension
Aura Theme
💅 A beautiful dark theme for your favorite apps.
Stars: ✭ 159 (-26.05%)
Mutual labels:  hyper, extension
Shrinktome
📘Shrink facebook by 5% every 10th second. You're welcome!
Stars: ✭ 15 (-93.02%)
Mutual labels:  extension, facebook
Hyperborder
adds a gradient border to the Hyper terminal
Stars: ✭ 183 (-14.88%)
Mutual labels:  hyper, extension
Githuboriginalstreak
Extension to get back current and longest streak. Original version ⭐️ All Browsers 💥
Stars: ✭ 200 (-6.98%)
Mutual labels:  extension
Hyperocean
Deep oceanic blue Hyper theme
Stars: ✭ 207 (-3.72%)
Mutual labels:  hyper
Vscode React Native
VSCode extension for React Native - supports debugging and editor integration
Stars: ✭ 2,366 (+1000.47%)
Mutual labels:  extension
Login With
Stateless login-with microservice for OAuth
Stars: ✭ 2,301 (+970.23%)
Mutual labels:  facebook
Xmark
A PHP7 extension that can hook most functions/classes and parts of opcodes
Stars: ✭ 209 (-2.79%)
Mutual labels:  extension
Preact Redux Example
🔁 Preact + Redux Example Project
Stars: ✭ 199 (-7.44%)
Mutual labels:  preact
Preact Custom Element
Wrap your component up as a custom element
Stars: ✭ 212 (-1.4%)
Mutual labels:  preact
Messenger4j
A Java library for building Chatbots on the Facebook Messenger Platform - easy and fast.
Stars: ✭ 199 (-7.44%)
Mutual labels:  facebook
Asu
facebook hacking toolkit
Stars: ✭ 197 (-8.37%)
Mutual labels:  facebook
Sketchup Stl
A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export.
Stars: ✭ 214 (-0.47%)
Mutual labels:  extension
Styled Loaders
Loaders Built with Preact and Styled Components
Stars: ✭ 212 (-1.4%)
Mutual labels:  preact
Node Fb Messenger
✉️ Facebook Messenger Platform Node.js API Wrapper
Stars: ✭ 206 (-4.19%)
Mutual labels:  facebook

Facebook Political Ad Collector

This is the source code behind our project to collect political ads on Facebook. Built versions are available for Firefox and Chrome. You can browse the American ads we've collected at ProPublica, and the Australian ads over on the Guardian's website.

We're asking our readers to use this extension when they are browsing Facebook. While they are on Facebook a background script runs to collect ads they see. The extension shows those ads to users and asks them to decide whether or not a particular ad is political. Serverside, we use those ratings to train a naive bayes classifier that then automatically rates the other ads we've collected. The extension also asks the server for the most recent ads that the classifier thinks are political so that users can see political ads they haven't seen. We're careful to protect our user's privacy by not sending identifying information to our backend server.

We're open sourcing this project because we'd love your help. Collecting these ads is challenging, and the more eyes on the problem the better.

Download and Try It

Run it on your own

You can find instructions on how to set up your own full-fledged version of the Facebook Political Ad Collector in INSTALLATION.md

There is an explanation of all the moving parts in ARCHITECTURE.md

Stories

Where We Need Your Help

In general, the project needs more tests. We've written a couple of tests for parsing the Facebook timeline in the extension directory, and a few for the tricky bits in the server, but any help here would be great!

Also, the rust backend needs a bit of love and care, and there is a bit of a mess in backend/server/src/server.rs that could use cleaning up.

Types of ads the collector doesn't collect

  • mobile ads
  • pre-roll, midstream video ads
  • video from ads in the stream
  • Instagram-only ads (Note that many ads are set to run on Facebook and Instagram with the same creative)

TODOs to Consider:

  • considering triggering the ad parsing routine only on scroll, to mitigate the clicking-off problems.
  • consider retaining utm params (i.e. a whitelisted set of parameters in links that are added by advertisers, not by FB and ipso facto are not personally identifiable, e.g. utm_content, etc., since those sometimes include useful metadata about the ad.)
  • consider turning off the panelist_ads table, etc.
  • consider seeding the partisanship model in new languages with political tweets.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].