DEV Community

Mr Zack
Mr Zack

Posted on

Stop Opening Two Ad Libraries Every Morning — One Feed for Google + LinkedIn Ads

If you do competitive ad research, your morning probably looks like this: open the Google Ads Transparency Center, search the brand, screenshot a few creatives... then open the LinkedIn Ad Library, search the same brand again, and try to line the two up in a spreadsheet.

Two tabs. Two search UIs. Two export formats (actually zero export formats — neither site has one).

I built an Apify actor that collapses this into a single normalized feed: Brand Ads Spy — Google + LinkedIn Ads in One Feed.

What it does

Give it a list of brand names or domains. It pulls, for each brand:

  • Google Ads Transparency Center — every active creative (text, image, video), regions, first/last shown dates
  • LinkedIn Ad Library — every ad, advertiser, format, paying entity, EU run dates

...and returns them in one dataset with a shared schema:

Field Meaning
network google or linkedin
adId stable ID on that network
advertiser advertiser / page name
format text / image / video
adText creative text where available
firstShownAt / lastShownAt date range the ad ran
isNew first time this actor has seen this ad
mediaUrls creative assets
libraryUrl deep link back to the source library
payer who paid (LinkedIn EU transparency data)

No login, no proxies, no browser rendering — both legs are plain HTTP, so runs finish in seconds and cost stays at $1.20 per 1,000 ad results.

Monitor mode: only pay for what's new

Set onlyNew: true and the actor remembers every ad ID it has seen (across both networks). The next run only emits — and only charges for — ads that appeared since last time. That turns it from a scraper into a change monitor: "tell me when my competitor launches a new campaign, on either network."

How to schedule it (the whole point)

Ad intelligence is only useful if it's fresh. On Apify:

  1. Open the actor page → Try for free
  2. Set your brands list and onlyNew: true
  3. Save the task → Schedules → e.g. 0 7 * * * (every morning, 7 AM)
  4. Add an integration (Slack, email, webhook) so new ads land where you work

Every morning you get a diff of your competitors' ad activity across Google and LinkedIn — without opening either library.

Why cross-network matters

B2B brands stage campaigns differently per channel: LinkedIn gets the expensive lead-gen creative first, Google gets the retargeting variants a week later (or the reverse). Seeing one network gives you half the story; the interesting signal is in the gap between them — a brand live on LinkedIn but dark on Google is usually mid-launch.

If you only need the Google side, the standalone Google Ads Transparency Scraper is $0.64/1k.

Questions or feature requests — comments are open, and reviews on the actor page genuinely help a small builder. 🙏

Top comments (0)