Investigating Political Ads Datasets

Submitted Oct 5, 2020

A workshop for journalists and data enthusiasts where we will introduce how to work with political advertising data of social media platforms. We will cover a basic 101 of the transparency framework, the background information needed to understand the data, and investigate a couple of questions from a sample dataset.


  1. Context needed to understand political advertising data: quick background of how self-regulatory efforts of “political ads transparency” emerged in the aftermath of reports of election interference etc.
  2. Working with a deceiving dataset: understanding the parameters of data, different ways of collection possible and the limits of such datasets
  3. Along with participants, pick up one or more of the following questions (or a question that participants contribute):
    - Finding ads violating silence periods
    - Comparing the ad spends of the biggest corporate polluters against their investments
    - Calculating ad expenditure for the previous week by ads created and ads seen


  • Laptop
  • Ideas for what you would like to investigate in the dataset

Speaker bio

Nayantara Ranganathan is a lawyer and researcher studying the politics and culture of digital technologies. She worked at the Internet Democracy Project where she worked on applying feminist methods of research and practice to questions of data governance. She co-founded Persuasion Lab, a project exploring new forms of political propaganda on social media.

Manuel Beltrán is an artist and activist. xIn 2015 he founded the Institute of Human Obsolescence, through which he explores the future of labor, the social and political implications of our relationship with technology, and the economic and governance systems surrounding the production of data. He is also the co-founder of the Persuasion Lab, a project exploring new forms of political propaganda on social media, that also hosts a parallel archive of political ads data across major Big Tech platforms.



{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}