Methodology
Vipima ("measuring instruments" in Swahili) monitors political advertising on Meta platforms in two different regimes. Where Meta's political-ad archive exists (Zambia, and other monitored countries), we collect it directly. In the EU, where Meta stopped selling and labeling political ads in October 2025 rather than comply with the TTPA, we track de facto political advertising through the all-ads repository the Digital Services Act still requires (Sweden). This page describes both, and what the data can and cannot support.
Collection: political-archive countries
We pull the political-ad archive for each monitored country (currently Zambia) and re-pull daily. Every observation is stored append-only: one record per ad per pull. This matters because the archive itself is unstable: ads and entire advertiser pages can disappear between pulls. Append-only snapshots let us report what was visible at each point in time, and preserve records the archive no longer shows.
Collection: the EU grey zone (Sweden)
Since October 10, 2025 no ad on Meta in the EU carries a political label, and the political archive is closed to new entries. The DSA (Art. 39) still obliges Meta to publish every ad delivered to EU users, with exact delivered reach, audience demographics, targeting parameters, and payer information, but with only about one year of retention. We collect that repository daily for a registry of tracked Swedish pages: parties, party leaders and youth wings, unions and their confederations, business federations, think tanks, domestic advocacy organisations, organisation-owned media, and the Election Authority.
Registry membership is evidence-based and documented per page. Pages are found through three complementary routes: Meta's own historical spend census (every advertiser that declared political ads before the ban), statistical keyword sweeps of the full ad archive (which also catch pages created after the ban), and payer-graph analysis linking pages funded by the same entity. Each entry carries a hand-verified identity note, shown on its advertiser page. International charity fundraising campaigns and government agencies other than the Election Authority are deliberately excluded.
Coverage is complete for tracked pages from August 17, 2025, spanning the final pre-ban weeks and the entire post-TTPA era. Because our snapshots are append-only, they preserve ads beyond Meta's rolling one-year deletion. A split-keyword capture–recapture exercise suggests roughly 90% coverage of currently advertising political pages. This is an indicative estimate rather than a census: the two discovery samples are not fully independent, and documented editorial exclusions still apply.
Classification
Three model-assisted layers run over the raw archive, each validated against a hand-labeled evaluation set before deployment, with accuracy measured per task:
- Triage (is this ad domestic politics, foreign spillover, or miscategorized commercial content?): 98% measured accuracy. Roughly 87% of ads "reaching" Zambia are not domestic politics; raw Ad Library counts overstate domestic activity severalfold.
- Actor attribution (which registered political actor is behind this page?): 99% measured accuracy against a curated registry, with abstention when evidence is insufficient. Supporter pages praising a candidate are not attributed to that candidate.
- Message analysis (topics, tone, call to action, language): 86% measured accuracy across a 13-topic taxonomy.
For Sweden the triage question inverts: every ad arrives unlabeled, and the classifier judges whether it is de facto political messaging (issue advocacy, electioneering, praise or criticism of parties and politicians, mobilisation) or non-political organisational content. Charity fundraising and member recruitment do not count as political; a voiced demand for policy change does, even beside a donation ask. Accuracy is measured continuously against a 144-case hand-labeled evaluation set, independently cross-reviewed twice, at three iterations per case: currently 95.4%. Every boundary policy is documented in the dataset itself.
Classification runs at the level of creative families (identical text from the same page), and family keys are page-scoped so that Meta's placeholder texts can never propagate a classification across unrelated advertisers.
Known limitations
- Meta withholds creative content for ads that ran without required disclaimers or were removed. Collection can also occasionally succeed only without creative fields. We preserve that collection provenance and report it separately rather than attributing every missing creative to Meta. Message analysis covers only the visible slice, which skews toward compliant, established advertisers.
- Spend and impressions are reported by Meta as ranges; we use midpoints and mark all such figures as estimates.
- The archive covers Meta platforms only. It does not cover TikTok, YouTube, radio, print, or organic content.
- Coordination detection can only text-match ads whose creative survives; a null result is bounded by that coverage.
- Sweden: reach figures are cumulative ad reach (the same person is counted across multiple ads), and classification carries a measured ~5% error rate. Discovery is text-based, so ads whose only political content is in images or video are a known blind spot. Figures cover the tracked registry, not every advertiser in the country.
- Sweden: the pre-ban political archive (2019–2025) remains browsable on Meta's website but has been removed from API access for EU countries; pre-ban comparisons therefore rest on Meta's own published spend report and the final pre-ban weeks preserved in the DSA repository.
Contact
Questions, corrections, press inquiries, or data requests: [email protected]. We aim to answer within two working days, faster during election periods.