Ad API Guide

methodology

Methodology

How the advertiser cohort is built, how each route is called, what the field measurements mean, how platform access terms are sourced, and what this site cannot show.

Last updated 2026-09-15

The cohort

Cohort v1 is ten advertisers, declared before any call and frozen: eight B2B software brands relevant to this site network’s readers (HubSpot, Notion, monday.com, ClickUp, Grammarly, Canva, Shopify, Semrush, Apollo.io) and one consumer control (lululemon). Each is identified by brand name and primary domain; routes are keyed by whichever the route accepts. A different advertiser set is a new version, not an edit. The cohort file is on the evidence page.

Routes

Every third-party route is called through the Treg CLI so that authentication, retries and timing are identical across providers. Routes measured in run v1: ScrapeCreators for Meta (by page name and by keyword), Google (advertiser lookup and ads by domain), TikTok and LinkedIn; Apify’s Meta Ads Scraper and TikTok Ads Library actors; SerpApi’s Google Ads Transparency Center route; TikHub’s TikTok Creative Center search. One call per advertiser per route, first page only, one worker per provider so our own concurrency does not inflate anyone’s latency. Apify actors are run synchronously with a 20-result cap.

The platforms’ official APIs were not called. Meta’s requires identity confirmation this account has not completed; Google’s exists only for EEA ads and has no public documentation we could find; TikTok’s requires an application and covers only Europe; LinkedIn’s API page returns an access error. Their terms are quoted from the platforms’ own pages instead.

Field measurement

Each returned ad is checked for nine canonical fields, mapped from the provider’s own field names: creative asset, start date, end date, placement or format, active status, spend, reach or impressions, landing page, and copy. A field is present when it is non-empty. Tables report, per route, the share of returned ads with each field. The mapping is printed on the data fields guide so it can be checked. A field absent on every ad is reported as 0%, not omitted, because the absence is the finding.

Cost and latency

Cost per call is the provider’s list price as read from the Treg catalog on the run date; for routes billed per result it is the per-result price multiplied by the median number of results returned. Latency is wall-clock from the CLI including network, p50 and p95 per route.

Platform access terms

Facts about who can access each official API, which ads it returns and which fields it exposes are quoted from the platform’s own documentation, fetched as plain HTTP on the date shown, with the URL next to the claim. Pages that render only in a browser or return an error are recorded as unknown, not filled from third parties. On 15 September 2026 that affected: Meta’s main Ad Library API page (a mobile mirror was used), Google’s Ads Transparency Center site and its terms page, TikTok’s library site, and LinkedIn’s Ad Library API page.

What these measurements cannot show

  • Ad spend, targeting or performance for commercial ads. No public library publishes them outside the EU-specific fields, and no route can return what the library does not display.
  • Completeness. First pages of ten advertisers are a sample of coverage, not an inventory; every route paginates.
  • Freshness and rate limits at volume. One call per route per advertiser on one day.
  • EU-only fields. A cohort of EU-targeted advertisers would populate Meta’s reach and targeting fields and LinkedIn’s impression ranges more often than this US-weighted cohort does.

Dates and exclusions

Each page shows the run date and the date its facts were re-checked. One competitor is excluded from this site under a private publishing policy; comparisons are of selected routes and do not claim to cover the market.