Loading political ads...

CampAIgn Tracker
CSV
{{ displayStats.date_range.min || '' }} — {{ displayStats.date_range.max || '' }}
Total Ads
{{ formatNum(displayStats.total) }}
/ {{ formatNum(stats.total) }}
Total Impressions
{{ formatNum(displayStats.total_impressions || 0) }}
/ {{ formatNum(stats.total_impressions || 0) }}
Advertisers
{{ formatNum(displayStats.advertisers) }}
/ {{ formatNum(stats.advertisers) }}
Taken Down
{{ formatNum(displayStats.taken_down) }}
/ {{ formatNum(stats.taken_down) }}
{{ ads.length }} of {{ stats.total || 0 }} updating...
Date Range {{ formatSliderDate(sliderFrom) }} — {{ formatSliderDate(sliderTo) }}

No ads match your filters.

{{ (ad.page_name || '?')[0] }}
View details
{{ ad.party }}

{{ ad.page_name }}

{{ ad.body }}

Removed for violating Advertising Standards

👁 {{ formatNum(ad.reach) }} reach
{{ formatDate(ad.start_date) }} {{ formatPlatform(ad.platform) }}
{{ selectedIndex + 1 }} / {{ ads.length }}
{{ selectedAd.is_active ? 'Live' : 'Ended' }} Taken Down {{ formatPlatformFull(selectedAd.platform) }}

{{ selectedAd.page_name }}

{{ selectedAd.party }} {{ selectedAd.municipality }}

{{ selectedAd.body }}

{{ selectedAd.title }}

Dates
{{ formatDateRange(selectedAd.start_date, selectedAd.end_date) }}
Spend
{{ formatSpend(selectedAd) }}
Impressions
{{ formatRange(selectedAd.impressions_lower, selectedAd.impressions_upper) }}
Reach
{{ formatNum(selectedAd.reach) }}

Targeting

Locations: {{ parseTargetLocations(selectedAd.target_locations).join(', ') }}
Ages: {{ selectedAd.target_ages }}
Gender: {{ selectedAd.target_gender }}
Est. audience: {{ formatRange(selectedAd.estimated_audience_size_lower, selectedAd.estimated_audience_size_upper) }}
Demographics
AgeGender%
{{ d.age }}{{ d.gender }}{{ d.percentage }}
Delivery by region
{{ r.region }}: {{ r.percentage }}%

Details

Source: Known actor Keyword: {{ selectedAd.trigger_value }} {{ selectedAd.trigger_type }}
Disclaimer: {{ selectedAd.disclaimer }}
Page likes: {{ formatNum(selectedAd.page_like_count) }}

How we collect this data

This dashboard monitors political advertising on Meta platforms (Facebook, Instagram, Messenger, Threads) during the {{ electionName || 'election' }}. We collect ads from the Meta Ad Library API by tracking pages of known political actors: parties, candidates, and political organizations.

Funding & Support

This project is funded by SIDN Fonds and Stichting Democratie en Media as part of the Hybrid Election Interference Observatory (HEIO) consortium. This project brings together Post-X Society, AI Forensics, and Trollrensics to protect election integrity by monitoring social media platforms for illegitimate interference operations.

Team

The CampAIgn Tracker is led by Dr. Fabio Votta (AlgoSoc Consortium, University of Amsterdam) and Dr. Simon Kruschinski (GESIS).

Statistics

{{ electionName }}

Computing statistics...