cloro
Comparisons

Google Ads Transparency Center vs SERP Ads: which to use

Google Ads Ads Transparency Center SERP API Comparison

Searches for google ads transparency hide two completely different jobs. One person wants Google’s public ad archive at adstransparency.google.com, where you can look up every ad a verified advertiser has run. Another wants competitor ad monitoring on the live SERP, where the question is which advertisers are bidding on a query right now. Often the searcher doesn’t realize those are separate products.

This post lays out what each one is, who needs which, and what tooling fits — including a note up front: cloro covers the SERP-ads job, not the Ads Transparency Center one. The other half of this post points at what does.

Table of contents

The two products are completely different

The Ads Transparency Center is a public-facing Google product launched in March 2023 in response to advertising-disclosure regulation in the EU and elsewhere. It’s not part of Google Search.

What it shows:

  • Every ad a verified advertiser has shown on Google’s network (Search, Display, Shopping, YouTube, Performance Max, Demand Gen)
  • Date ranges each ad ran
  • Targeting countries
  • Ad formats (text, image, video)
  • Advertiser identity verification status

What it does not show:

  • Which keywords or queries triggered each ad
  • Bid amounts or ad spend
  • Which positions the ads occupied on the SERP
  • Real-time data — there’s typically a 24–48 hour delay

Access pattern: free public web UI. There is no official API. Programmatic access requires scraping the React-rendered page with browser automation, plus session-cookie management since Google rate-limits the page aggressively.

Use cases:

  • Compliance auditing (“what creative is Competitor X running across all Google surfaces?”)
  • Brand-protection enforcement (detecting unauthorized advertisers running ads on your brand assets)
  • Historical creative analysis (longitudinal study of ad creative trends in a vertical)

SERP ads

SERP ads are the inline sponsored results that appear on a live Google search — typically 1–4 ads stacked above the organic results, occasionally additional ads at the bottom or in a sidebar. These rotate continuously based on advertiser bids, budget pacing, and Google’s auction.

What they show:

  • Position on the live SERP for a specific query
  • Advertiser identity and display URL
  • Ad title, description, and sitelinks
  • Country and device-specific rendering (mobile and desktop SERPs ship different ads)

What they do not show:

  • Historical ads that aren’t currently live
  • Ads outside the Google Search SERP (Display, YouTube, Performance Max)
  • Bid amounts (though competitive bid intelligence can be inferred from position-over-time data)

Access pattern: returned as the ads[] field in any Google SERP scraping API. cloro’s /v1/monitor/google endpoint returns sponsored ads inline alongside organic results, AI Overview, PAA, and related searches in one JSON response.

Use cases:

  • Real-time competitor ad monitoring (“which advertisers are bidding on best CRM software right now?”)
  • Position-over-time tracking (“when did Competitor X enter the auction for our branded keyword?”)
  • Sponsored-ad rotation analysis (“how many distinct advertisers cycle through position 1 on a given query daily?”)
  • SERP feature presence detection (“does the SERP for enterprise CRM carry sponsored ads at all, or has Google killed the auction for that query?”)

Decision tree: which one do you need?

If your question is about a specific advertiser’s historical creative across Google’s network, you want the Ads Transparency Center. Examples:

  • “Show me every ad Apple ran in the US between Jan and Mar”
  • “Audit Competitor X for unauthorized brand-name advertising”
  • “Track creative rotation patterns in the SaaS category over 12 months”

If your question is about the live SERP for a specific query, you want SERP scraping. Examples:

  • “Which advertisers are bidding on marketing automation software today?”
  • “When did our brand-name SERP start showing competitor ads?”
  • “Track ad position 1 for our top 100 commercial keywords hourly”

If your question is both — a common need at enterprise scale — you’ll combine both data sources in your warehouse. Most large competitive-intelligence programs run nightly Ads Transparency Center pulls plus hourly SERP-ad sampling, joined by advertiser identifier.

How to scrape the Ads Transparency Center programmatically

The Ads Transparency Center has no official API, so programmatic access means scraping. The page is React-rendered and uses Google’s standard anti-bot stack, so the approach is similar to scraping any modern Google product.

The shape that works:

  1. Headless browser — Playwright or Puppeteer with stealth patches. The page does not server-render the ad list; you have to wait for the React tree to hydrate and the ad cards to populate.
  2. Per-advertiser flow — search by advertiser name, click through to the advertiser’s Transparency Center profile, paginate through the ad cards.
  3. Date filter URL parameter?domain=<domain>&region=US&from=<date>&to=<date> lets you scope to a date range without clicking through the UI date picker.
  4. Session cookies + residential IP — Google rate-limits the page after ~50 requests from a single IP. Residential proxy rotation plus session-cookie reuse is the standard pattern.

For the Ads Transparency Center specifically, cloro is not the right tool — our scope is the Google SERP, not standalone Google products. Options that do fit:

  • General-purpose web scrapers with session/cookie management (Bright Data, ScrapingBee, ScraperAPI) — pair with your own browser-automation script targeting the React-rendered ad cards.
  • Custom Playwright pipeline if you need fine control over the data extraction or have specialized requirements (e.g., creative-image OCR for compliance auditing).

How to monitor SERP ads with cloro

For SERP ads — the live, query-specific sponsored results — cloro’s /v1/monitor/google endpoint returns the ads[] array as part of the standard SERP response. Same call pattern as organic-result tracking, no special parameter required.

curl -X POST https://api.cloro.dev/v1/monitor/google \
  -H "Authorization: Bearer sk_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "best crm software",
    "country": "US",
    "device": "desktop"
  }'

The response includes the parsed ads[] array:

{
  "success": true,
  "result": {
    "ads": [
      {
        "position": 1,
        "blockPosition": "top",
        "title": "HubSpot CRM — Free Forever Plan",
        "url": "https://www.hubspot.com/products/crm",
        "displayedUrl": "hubspot.com/crm",
        "domain": "hubspot.com",
        "description": "Manage your pipeline with the #1 free CRM. Easy setup, no credit card.",
        "sitelinks": [
          { "url": "...", "title": "Free Plan", "description": "..." }
        ]
      }
    ],
    "organicResults": [...],
    "peopleAlsoAsk": [...],
    "relatedSearches": [...]
  }
}

For real-time competitor ad monitoring, the right pattern is hourly snapshots across your tracked-query set, persisted to your warehouse. Diff between adjacent hours to detect:

  • New advertiser entries (a domain that wasn’t in ads[] an hour ago)
  • Position changes (advertiser moved from position 3 to position 1 — they raised their bid)
  • Advertiser exits (a domain that was bidding all morning is suddenly missing — paused for budget)
  • Block-position shifts (top-of-page ads moving to bottom-of-page is a quality-score signal)

For broader SERP monitoring beyond ads — AI Overview source rotation, PAA churn, organic position changes — see the dedicated SERP monitoring use-case page. For rank tracking specifically, see /rank-tracking/.

Summary

ProductSurfaceAccessWhat it shows
Google Ads Transparency CenterStandalone Google product (adstransparency.google.com)Public web UI; no API; scrape with PlaywrightHistorical ads per advertiser across all Google networks
SERP adsInline on live Google SearchSERP scraping APIs (cloro, SerpApi, etc.)Live sponsored ads at position-tagged ranks per query

These are complementary, not interchangeable. Match the tool to the question you’re trying to answer. If you need both surfaces, the cleanest approach is to run them as two pipelines joined by advertiser identifier in your warehouse.

For the SERP-ads side, cloro returns the parsed ads[] array on every /v1/monitor/google call. Same auth and response shape as the rest of the API, billed per call. Get started with the API.

Frequently asked questions

What is the Google Ads Transparency Center?+

A public archive at adstransparency.google.com that shows historical ads run by any advertiser on Google's network — Search, Display, Shopping, YouTube, and more. It's a separate Google product launched in 2023 for ad-disclosure compliance, not part of the live SERP. Anyone can browse it for free; programmatic access requires scraping (Google does not offer an Ads Transparency Center API).

What are SERP ads?+

The inline sponsored results that appear on a live Google SERP — typically 1–4 ads above the organic results, sometimes additional ads at the bottom. SERP ads rotate continuously based on advertiser bids and budget pacing. They are returned as part of the SERP response by Google SERP scraping APIs like cloro's `/v1/monitor/google` endpoint (in the `ads[]` field).

If I want to monitor competitor ads, which one do I need?+

It depends on what 'monitor competitor ads' means for your use case. If you need historical ad creative (which ads has Competitor X run over the past 90 days?), use the Ads Transparency Center. If you need SERP-position monitoring (which advertisers are bidding on 'best CRM software' right now and at what rank?), use a SERP API. Most enterprise teams need both.

Does cloro scrape the Ads Transparency Center?+

No. cloro's scope is Google SERP scraping — organic results, sponsored ads inline on the SERP, AI Overview, People Also Ask, and related searches. The Ads Transparency Center is a separate product with a different page structure, and scraping it requires different infrastructure. We recommend dedicated solutions for that use case (covered below).

Can the Google Ads Transparency Center API replace SERP ad scraping?+

There is no official Google Ads Transparency Center API. Even if there were, it would not replace SERP ad scraping — the two products show different data. The Ads Transparency Center shows what ads an advertiser has shown, anywhere on Google's network. SERP scraping shows which ads appear at which positions for a specific query right now. Different questions, different data.