Google Ads Competitor Tracker avatar

Google Ads Competitor Tracker

Pricing

from $0.78 / 1,000 ad records

Go to Apify Store
Google Ads Competitor Tracker

Google Ads Competitor Tracker

Discover public Google ads by competitor domain. Export creative previews and first/last shown dates, or track newly observed ads and changes with persistent history.

Pricing

from $0.78 / 1,000 ad records

Rating

0.0

(0)

Developer

Valdeir Lima

Valdeir Lima

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

What does Google Ads Competitor Tracker do?

Find public Google ads associated with competitor domains and track observed creative changes over time. Enter a domain such as nike.com to collect listing data from the Google Ads Transparency Center, including advertiser and creative IDs, formats, available text or images, source links, and first/last-shown dates when Google supplies them.

Use a one-time snapshot or repeat a saved monitor to receive new and changed observations with before-and-after values. Apify provides API access, scheduling, downloadable datasets, run monitoring, and integrations. No Google account, Google Ads API key, OCR, or separate ad-preview requests are required.

Why use Google Ads Competitor Tracker?

Build a competitor creative watchlist, review changes to publicly visible ad messaging, or maintain an evidence trail for marketing research. Every record keeps the requested domain, observation time, creative identity, and source link so you can inspect the underlying ad.

Domain results can include agencies or partners advertising that domain. They are not proof of brand ownership. New means first observed by your monitor, not a verified launch date. This Actor does not provide spend, impressions, conversions, performance, or ROI estimates.

How to use Google Ads Competitor Tracker

  1. Open the Input tab and enter one to ten public domains or website URLs.
  2. Choose Snapshot for current observations or New and changed ads for a persistent monitor.
  3. Set the output and per-domain observation limits, then start the Actor.
  4. Inspect the dataset and the SUMMARY record in the run's key-value store for coverage, limits, and errors.
  5. For a recurring watch, save your input and use an Apify Schedule with the same monitor name. Connect Apify webhooks or integrations if you want to route results elsewhere; the Actor itself does not send notifications.

Input

{
"domains": ["nike.com"],
"mode": "changes",
"monitorName": "competitor-watch",
"emitInitialSnapshot": true,
"maxResults": 100,
"maxAdsPerDomain": 200,
"format": "ALL"
}
FieldMeaningDefault
domainsRequired array of 1–10 public domains or URLs; normalized to hostnames—
modesnapshot or changessnapshot
maxResultsMaximum paid output records for the whole run, 1–10,0001000
maxAdsPerDomainMaximum ads examined per domain, including unchanged ads, 1–1,000200
formatALL, TEXT, IMAGE, or VIDEOALL
monitorNameHistory name, 1–50 letters, digits, underscores or hyphens; first character must be alphanumericdefault
emitInitialSnapshotOutput initial paid records when creating a Changes baselinetrue

Version 1 searches worldwide across all platforms. It does not offer region or platform filters. See the Input tab for validation and descriptions.

Output

The default dataset contains paid ad observations and change events. The following simplified record is illustrative, with placeholder IDs and values:

{
"domain": "example.com",
"advertiserId": "ILLUSTRATIVE_ADVERTISER_ID",
"creativeId": "ILLUSTRATIVE_CREATIVE_ID",
"advertiserName": "Example advertiser",
"matchedDomain": "example.com",
"format": "IMAGE",
"adText": null,
"imageUrl": null,
"firstShown": null,
"lastShown": null,
"eventType": "changed",
"changedFields": ["advertiserName"],
"before": {"advertiserName": "Previous example name"},
"after": {"advertiserName": "Example advertiser"},
"observedAt": "2026-09-24T12:00:00.000Z",
"eventId": "ILLUSTRATIVE_EVENT_ID"
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. SUMMARY holds run coverage and errors without an additional event charge. A fatal error, when recorded, is available under ERROR. Monitor history is stored separately in a named key-value store.

Data table

FieldsMeaning
domain, matchedDomainRequested hostname and source-provided domain match, when available
advertiserId, advertiserName, creativeIdPublic advertiser and creative identity
format, adText, imageUrlListing-level creative information; unavailable fields remain null
previewUrl, creativeUrlLinks to inspect the public preview or creative
firstShown, lastShownGoogle-provided dates, when available; not campaign performance measures
previewFingerprintStable comparison fingerprint of listing preview information
observedAtTime this Actor observed the record
eventTypesnapshot, initial, new, or changed
changedFields, before, afterComparison evidence for changes
eventIdKey consumers can use to deduplicate repeated deliveries

Text is often unavailable because the listing exposes an image instead. The Actor preserves nulls rather than inventing copy or reading text from images.

How much does it cost to track Google ads?

The price is $0.78 per 1,000 delivered records ($0.00078 each), plus the standard $0.00005 startup event. Apify bills startup events per GB of Actor memory, with a minimum of one event. Platform compute is included. The minimum maximum-charge budget is $0.01.

At the default memory allocation, a run delivering 100 records costs approximately $0.07805; 1,000 records cost $0.78005. Setting a budget is a cap, not a prepaid fee or guaranteed output count.

Snapshots charge for each delivered record on each run. Changes mode charges for delivered initial, new, and changed records. Set emitInitialSnapshot to false to create a baseline without initial dataset records. Unchanged observations, SUMMARY, and stored monitor history have no additional record event charge; startup still applies when nothing changes.

Tips and monitoring behavior

Reuse the same monitor name for repeated comparisons. Use another name for a separate baseline. Named history is isolated by Apify user and Actor, and a lock protects a monitor against overlapping runs.

The comparison tracks advertiser name, matched domain, format, available text, image, and a stable preview fingerprint. Routine lastShown date updates do not trigger change events. A missing value in a later response does not erase a previously known comparison value or manufacture a change.

The observation cap is separate from the output cap: examining 200 ads can produce zero changed records. Limits, partial responses, and result ordering mean a scan is not a complete inventory of every ad. Missing ads do not produce retirement, disappearance, or stopped-campaign events.

History is limited to 10,000 ads per target and a 16 MB checkpoint. Exceeding a history limit produces an error rather than silently discarding comparison history. Delivery is at least once: an interruption after writing a dataset record but before saving its checkpoint can repeat the same eventId and charge for the duplicate delivery. Downstream consumers should deduplicate by eventId.

FAQ, limitations, and support

Does it fetch complete ad copy or analyze images? No. It reads public listing responses. Extra preview pages, OCR, video transcripts, and performance data are outside this version's scope.

Can I prove a campaign is active or successful? No. First/last-shown dates and observed creatives are public research signals. They do not establish current delivery, budget, conversions, or profitability.

What if Google blocks a request or changes its response? Review SUMMARY, ERROR when present, and the run log. Partial coverage is not evidence that previously observed ads were removed. Availability and fields depend on Google's public service.

Can I automate exports? Yes. Use Apify's API, schedules, webhooks, and integrations. Notifications are configured through those services, not sent directly by this Actor.

This is an independent tool, not affiliated with Google or the advertisers returned. Use public data in accordance with applicable terms and laws. Report reproducible problems or request additional formats and custom workflows through this Actor's Issues tab.