# Track competitor ads for DTC skincare brands

10 rivals on 2 ad libraries, 80 pulls a month, every landing page read.

Family: [Competitor ads](https://www.routergrowth.com/workflows/competitor-ads.md) · HTML page: https://www.routergrowth.com/workflows/ads-dtc-skincare

## Give this to your agent

```text
Using RouterGrowth, run this workflow: Track competitor ads on Meta and Google for 10 rivals in DTC skincare, weekly, with their landing pages.
Show me the price before every call, and stop after each stage with a sample of the results so I can adjust.

1. Resolve the competitors: company.search x 1 searches, company.enrich x 10 companies. Turn names into domains and firmographics once; skip this stage if you already hold the list.
2. Pull the creatives: ads.search x 80 (10 rivals x 2 platforms x 4 runs). Every live ad per competitor and platform, with copy, media and first-seen dates.
3. Read the landing pages: web.scrape x 80 pages, social.posts x 100 organic posts. Where the ads send people, as markdown your agent can diff week over week.

Budget for one run: about $1.42. Run routergrowth inspect on any capability before the first call to confirm the quote.
```

## Why this works

Skincare brands test offers in public: every new bundle, claim and creator shows up in the ad library before it shows up in results.

What the run hands back:

> A weekly table per rival: live creatives, the offer on each, when it first ran, the landing page it sends to and what changed since last week.

## The workflow, stage by stage

Resolve the competitors → Pull the creatives → Read the landing pages

| # | Stage | Calls | Cost |
|---|---|---|---:|
| 1 | Resolve the competitors | `company.search` x 1, `company.enrich` x 10 | $0.07 |
| 2 | Pull the creatives | `ads.search` x 80 | $0.70 |
| 3 | Read the landing pages | `web.scrape` x 80, `social.posts` x 100 | $0.65 |

One run: $1.42 for 271 calls. Assumptions: 2 contacts per account unless the brief says otherwise, 70% email find rate, 90% verification pass, 3 emails per contact, 30% LinkedIn accept rate. Prices are the catalog's at the time this page was built; `routergrowth inspect` returns the exact quote before a call.

### Resolve the competitors

Turn names into domains and firmographics once; skip this stage if you already hold the list.

### Pull the creatives

Every live ad per competitor and platform, with copy, media and first-seen dates.

### Read the landing pages

Where the ads send people, as markdown your agent can diff week over week.

Not in the plan yet, coming soon in the catalog: ads.spend_estimate. Nothing here depends on it.

## Run it from the command line

```bash
# RouterGrowth workflow: Track competitor ads on Meta and Google for 10 rivals in DTC skincare, weekly, with their 
npm install -g routergrowth && routergrowth setup

# 01 Resolve the competitors  (company.search x 1, company.enrich x 10)
routergrowth run -c company.search -i '{"query":"<query>"}'
routergrowth run -c company.enrich -i '{"domain":"<domain>"}'

# 02 Pull the creatives  (ads.search x 80)
routergrowth run -c ads.search -i '{"query":"<query>"}'

# 03 Read the landing pages  (web.scrape x 80, social.posts x 100)
routergrowth run -c web.scrape -i '{"url":"<url>"}'
routergrowth run -c social.posts -i '{"platform":"<platform>","handle":"<handle>"}'
```

## Questions

### How do I see the ads a competitor is running?

ads.search reads the Meta Ad Library by advertiser or keyword and the Google Ads Transparency Center by advertiser domain. It returns each live creative with its copy, media and the date it first ran.

### Which ad platforms are covered?

Meta, which includes Facebook and Instagram placements, and Google. Other libraries can be reached through a provider's raw endpoint with the same key when a workflow needs them.

### Can I see how much a competitor spends?

No library publishes spend for commercial ads. What you can read is how long a creative has been running and how many variants exist, which is the best public sign that it works.

### Why run it weekly?

One pull is a snapshot. The second pull shows what was added, what was stopped and what is still running, and that change is what tells you where a competitor is putting money.

### What does this workflow cost to run?

About $1.42 for one run of 271 calls. Each call is quoted before it runs and a lookup that finds nothing is not charged, so the figure is a ceiling. There is no subscription: the run is paid from a prepaid balance.

## Related

- [Track competitor ads for B2B SaaS](https://www.routergrowth.com/workflows/ads-b2b-saas.md)
- [Track competitor ads for consumer fintech apps](https://www.routergrowth.com/workflows/ads-fintech-apps.md)
- [Track competitor ads for meal kit brands](https://www.routergrowth.com/workflows/ads-meal-kits.md)
- [Track competitor ads for online course businesses](https://www.routergrowth.com/workflows/ads-online-courses.md)
- Guide: [Competitor ads: track every creative on Meta and Google](https://www.routergrowth.com/use-cases/competitor-ad-intelligence.md)
- Guide: [AI ad creative: images, edits and video from one API](https://www.routergrowth.com/use-cases/ad-creative-production.md)

Adjust the volumes and assumptions: https://www.routergrowth.com/free-gtm-tools/workflow-generator#q=Track%20competitor%20ads%20on%20Meta%20and%20Google%20for%2010%20rivals%20in%20DTC%20skincare%2C%20weekly%2C%20with%20their%20landing%20pages.
