The Transparency Project

The Transparency Project facilitates the understanding of our political process through interactive data visualization. By aggregating data from social media platforms, search engines, and ad markets, we equip voters with the ability to make a more informed decisions in the upcoming presidential election.


Controversies around the transparency of political advertising in the 2016 and 2018 election cycles.

What it does

An interactive exploration of political ad data.

How we built it

  • charting: Plotly
  • dashboard: Dash, a framework for implementing Plotly seamlessly into webpages
  • backend: Flask
  • data cleaning: Pandas

Challenges we ran into

Data sources

For our initial idea, we wanted to make our website an exploration of the Facebook Ad Library, a repository available to researchers that contains information about all the ads run on facebook from as early as 2018. However, we realized on Friday afternoon that in order to access the API, Facebook required a conformation code sent via snail mail. As reported in many other outlets, their Ad Library seems to be written to comply with Congressional demands without actually facilitating research on how political ads operate on Facebook.

However, this inspired us to look at advertisement and visibility of 2020 presidential candidates using a more varied set of data, including Google Trends, Google’s Transparency report, a public subset of the Facebook Ad Library, Instagram, and Twitter.

Data cleaning

To enable our interactive

Accomplishments we are proud of

The interactivity of the charts, having a live website hosted through Google Cloud, and our customized data aggregation and cleaning that enabled referencing candidates over 12 data sets through a single key.

What we learned

We all learned a lot about web development, as well as creating interactive dashboard through Plotly/Dash. We discovered the complexities (and limitations) of how Dash dashboards can be customized in CSS to fit a larger design.

Future Work

  • We would like to automate data scraping further using BeautifulSoup, so that our website could keep its data up to date for the entire 2020 cycle. Furthermore, once we gain authorized access to the Facebook Ad Archive API, we could collect much more data and fullfill the original vision.
  • Much of our poll data required complex cleaning in aggregation, and we would like to present a full picture of this data
  • Extra page+dashboard for comparisons between two selected candidates
  • forecasting using the Facebook Prophet API
Share this project: