# Google Ads Transparency Monitor (`mambalabs/google-ads-transparency-monitor`) Actor

See every Google ad a company runs. Enter a domain or advertiser name and get one row per ad from the Ads Transparency Center: format, first and last shown dates, creative link, and permalink, plus a company summary row with the total ad count band. Batch domains, export to CSV or Clay.

- **URL**: https://apify.com/mambalabs/google-ads-transparency-monitor.md
- **Developed by:** [Mamba Labs](https://apify.com/mambalabs) (community)
- **Categories:** SEO tools, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.70 / 1,000 ad founds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Google Ads Transparency Monitor

See every Google ad a company runs. Enter a company domain or an advertiser name and get one row per ad from Google's Ads Transparency Center, with the format, first and last shown dates, a creative link, and the ad's permalink. Each input also gets one company summary row that answers the question most teams actually ask: does this company run Google ads, how many, and in which formats.

Rows are flat and snake_case, so they load straight into a spreadsheet, a CRM, or a Clay table.

### ✨ Features

- **Company keyed.** A domain such as `stripe.com` in, the ads Google lists for that domain out. No advertiser ID lookup needed.
- **Advertiser names too.** Enter a name such as `HubSpot, Inc.` and the actor finds the matching verified advertisers, up to 5, and says on every row whether the match was exact or the closest suggestion.
- **A company summary row.** Ads returned, Google's own ad count band (for example 8,000 to 9,000), formats seen, and the first and last dates seen.
- **Filters that run on Google's side.** Region by country code, and format (text, image, or video).
- **Last shown window.** Keep only ads shown in the last N days, 90 by default.
- **Safe when Google changes its page.** The actor checks the shape of every response. If Google changes it, you get a free `source_changed` row instead of empty rows that look real.
- **Reads robots.txt on every run** and stops with a free `blocked` row if Google ever disallows the pages it reads.
- **Batch input.** Up to 500 domains or advertiser names per run.

### 📥 Input

| Field | Type | Description |
|---|---|---|
| `company_domain` | string | A company domain, for example `stripe.com` |
| `advertiser_name` | string | An advertiser name, for example `Stripe, Inc.` |
| `domains` | list | Several domains, one per line |
| `advertiser_names` | list | Several advertiser names, one per line |
| `region` | string | `anywhere` (default) or a two letter country code |
| `formats` | list | `text`, `image`, `video`; empty means all |
| `max_ads` | string | Ad rows per input, 1 to 1,000, default 50 |
| `since_days` | string | Only ads last shown in this many days, default 90; 0 for all |
| `include_summary` | string | `true` (default) or `false` |
| `max_charge_usd` | string | Optional cost cap for the run |
| `skipCache` | string | `true` to skip the 24 hour cache |
| `proxy_mode` | string | `auto` (default): direct, then the Apify proxy default pool if Google refuses a request; `direct`: proxy off, never use a proxy, so a refused request returns a free `blocked` row; or `residential`: the Apify residential proxy from the start. Proxy use adds nothing to your price |

Supported region codes: `US`, `CA`, `MX`, `BR`, `AR`, `CL`, `CO`, `PE`, `GB`, `IE`, `DE`, `FR`, `ES`, `IT`, `PT`, `NL`, `BE`, `LU`, `CH`, `AT`, `DK`, `SE`, `NO`, `FI`, `IS`, `PL`, `CZ`, `SK`, `HU`, `RO`, `BG`, `GR`, `HR`, `SI`, `RS`, `UA`, `EE`, `LV`, `LT`, `CY`, `MT`, `TR`, `IL`, `AE`, `SA`, `QA`, `EG`, `ZA`, `NG`, `KE`, `MA`, `IN`, `PK`, `BD`, `SG`, `MY`, `ID`, `TH`, `VN`, `PH`, `JP`, `KR`, `TW`, `HK`, `AU`, `NZ`.

Example:

```json
{ "company_domain": "stripe.com", "max_ads": "20", "since_days": "90" }
```

### 📤 Output

One row per ad (`row_type` `ad`) and one summary row per input (`row_type` `summary`). Every row carries every field; a field that does not apply is null.

| Field | Example | Notes |
|---|---|---|
| `row_type` | `ad` | `ad` or `summary` |
| `company_domain` | `stripe.com` | |
| `advertiser_id` | `AR16951989901585285121` | Google advertiser ID |
| `advertiser_name` | `Stripe, Inc.` | Verified advertiser name |
| `ad_id` | `CR17494586812444704769` | Google creative ID |
| `format` | `image` | `text`, `image`, `video`, or `unknown` |
| `first_shown`, `last_shown` | `2024-08-13T02:39:41Z` | UTC |
| `days_running` | `798` | First to last shown, inclusive |
| `creative_url` | link | Creative image, or Google's preview script for text and video ads |
| `ad_url` | link | The ad's page on the Ads Transparency Center |
| `advertiser_url` | link | The advertiser's page |
| `ads_returned` | `20` | Summary row |
| `total_ads_min`, `total_ads_max` | `8000`, `9000` | Summary row: Google's ad count band for the input and filters |
| `advertisers_count`, `advertisers_json` | `2` | Summary row. A domain can be advertised by resellers and agencies too |
| `formats_seen` | `["image","text"]` | Summary row |
| `first_seen_any`, `last_seen_any` | dates | Summary row |
| `runs_google_ads` | `true` | Summary row: Google lists at least one ad for the input and filters |
| `row_status` | `ok` | `ok`, `no_ads`, `blocked`, `source_changed`, `error` |
| `error_reason` | null | Why a row is not `ok` |
| `billable_events_json` | `{"ad-found":1}` | What the row was billed as; `{}` is free |
| `from_cache`, `source`, `checked_at` | | |

### 💵 Pricing

Pay per event. You pay for ad rows returned and for a summary row when ads were found, plus a small start fee per run.

| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| Ad found (`ad-found`), per ad row | $0.00200 ($2.00 per 1,000) | $0.00190 ($1.90 per 1,000) | $0.00180 ($1.80 per 1,000) | $0.00170 ($1.70 per 1,000) |
| Company summary (`company-summary`), per input with ads | $0.00300 ($3.00 per 1,000) | $0.00285 ($2.85 per 1,000) | $0.00270 ($2.70 per 1,000) | $0.00255 ($2.55 per 1,000) |
| Actor start (`apify-actor-start`), per run | $0.0005 | $0.0005 | $0.0005 | $0.0005 |

- Free rows: `no_ads`, `blocked`, `source_changed`, and `error` rows cost nothing, and so do rows served from the 24 hour cache.
- A run stops at the maximum cost per run you set in Apify, and at `max_charge_usd` if you set it.
- Free Apify plan: 1.50 USD of evaluation a month, which is 750 ad rows at the free plan price. Any paid Apify plan removes the cap.
- `max_ads` caps the ad rows, and so the cost, per input. 20 ads plus a summary costs $0.0435 on the free plan price, start fee included.
- Proxy traffic is included. You pay only the events above: Mamba Labs pays the platform costs of your run, Apify proxy traffic included. `proxy_mode` is a reliability setting. In the default `auto` mode a run that Google refuses switches to the Apify proxy and keeps going; `direct` never uses a proxy, so a refused input returns a free `blocked` row instead.

### 🚀 Usage examples

**Console or API.** `POST https://api.apify.com/v2/acts/mambalabs~google-ads-transparency-monitor/runs` with the input above, then read the default dataset.

**Batch of accounts.**

```json
{ "domains": ["stripe.com", "hubspot.com", "notion.so"], "max_ads": "10", "region": "US" }
```

**Video ads only, by advertiser name.**

```json
{ "advertiser_name": "Nike, Inc.", "formats": ["video"], "max_ads": "25" }
```

**Clay.** Call the actor from a Clay column with the domain column mapped to `company_domain`. Clay sends every field as a string, which this actor expects. Set `include_summary` to `true` and `max_ads` to `1` for a cheap "runs Google ads" column.

**MCP.** The `@mambalabsdev/mcp-google-ads-transparency-monitor` server exposes the tool `get_google_ads` to AI agents.

### ⚠️ Error handling

| Situation | What you get |
|---|---|
| Google lists no ads | One free summary row, `row_status` `no_ads`, `runs_google_ads` false |
| Ads exist but none in the `since_days` window | One free summary row, `no_ads`, `runs_google_ads` true |
| No advertiser matches the name | One free summary row, `no_ads` |
| Google refuses a request (HTTP 429, a challenge page, or its sorry page) | In `auto` mode the run switches to the Apify proxy default pool and tries twice more; if that is refused too, one free `blocked` row, and ads already read are kept |
| robots.txt disallows the pages read, or cannot be read | One free `blocked` row per input; no request is made |
| Google changes its response shape | One free `source_changed` row naming the missing piece |
| Anything else | One free `error` row with the reason |

### ⚠️ Limitations

- The data comes from Google's own public page, which is not a documented API. When Google changes it, this actor reports `source_changed` until it is updated.
- The ad count is Google's band (for example 8,000 to 9,000), not an exact number.
- A domain search returns every advertiser Google lists for that domain, which can include resellers and agencies. `advertisers_json` shows who ran what.
- Text ads are shown as Google's rendered preview image or preview script, not as plain headline text.
- One format filter runs on Google's side. Choosing two formats filters on the actor's side, so the count band then covers all formats.
- Google rate limits bursts from one address. In `auto` mode the run moves to the Apify proxy default pool when that happens, at no extra cost to you.
- No login, no key, and no personal data: the rows describe advertisers and ads.

### 🧩 Want other GTM data?

Mamba Labs builds custom actors for B2B go-to-market teams. The public versions of that work live here on the Store.

| Actor | Actor ID |
|---|---|
| [Account Hiring Watch](https://apify.com/mambalabs/account-hiring-watch?fpr=mamba) | `gRAZA5WBi1r6L0gy7` |
| [Agent Accessibility Auditor](https://apify.com/mambalabs/agent-accessibility-auditor?fpr=mamba) | `anxbRv0lKrpQ1pnua` |
| [AI Tooling Detector](https://apify.com/mambalabs/ai-tooling-detector?fpr=mamba) | `EwkHhmqiuJgRoVEbE` |
| [Bluesky Brand Presence Mapper](https://apify.com/mambalabs/bluesky-brand-presence-mapper?fpr=mamba) | `eLpxzP4IuXznlFVND` |
| [Career Change Signal Engine](https://apify.com/mambalabs/career-change-signal-engine?fpr=mamba) | `vX2Yga1a6wGaXaP14` |
| [Company Change Event Feed](https://apify.com/mambalabs/company-change-event-feed?fpr=mamba) | `oX44rS0fkEJ3rXLWe` |
| [Company Contact Details Extractor](https://apify.com/mambalabs/company-contact-details-extractor?fpr=mamba) | `4mMncKaJykiq94grz` |
| [Company Discovery List Builder](https://apify.com/mambalabs/company-discovery-list-builder?fpr=mamba) | `jch0HdaZnpbMqlcGS` |
| [Company Firmographic Enricher](https://apify.com/mambalabs/company-firmographic-enricher?fpr=mamba) | `YlUtLWjfPpqykmB8g` |
| [Company Funding Record](https://apify.com/mambalabs/funding-investor-record?fpr=mamba) | `OFS4Mt1gyYNtGfUbE` |
| [Company Identity Resolver](https://apify.com/mambalabs/company-identity-resolver?fpr=mamba) | `lr8fTRAmZCBZmuwwh` |
| [Company Social Presence Mapper](https://apify.com/mambalabs/company-social-presence-mapper?fpr=mamba) | `4k6CCemkgBDz18m2h` |
| [Contact Classifier](https://apify.com/mambalabs/contact-classifier?fpr=mamba) | `0lGSeYJmniXhGANnO` |
| [Domain Deliverability Checker](https://apify.com/mambalabs/domain-deliverability-checker?fpr=mamba) | `0tVgxI7A6o9jMlxmc` |
| [Domain to LinkedIn URL Resolver](https://apify.com/mambalabs/domain-to-linkedin-url-resolver?fpr=mamba) | `3HtnSaqPHOg1Qg5gx` |
| [Ecommerce Platform Profiler](https://apify.com/mambalabs/ecommerce-platform-profiler?fpr=mamba) | `5G2NeYjBbQTjaTn9L` |
| [Event Presence Index](https://apify.com/mambalabs/event-presence-index?fpr=mamba) | `WLhMy8fMDgsxdYxv5` |
| [Expert Witness Directory](https://apify.com/mambalabs/expert-witness-directory?fpr=mamba) | `LIpwlgfE3LaQBaXd4` |
| [Funding and Press Signal Scanner](https://apify.com/mambalabs/funding-press-signal-scanner?fpr=mamba) | `FS13X6dhQVgX3XOM6` |
| [GitHub Organization Signal Scanner](https://apify.com/mambalabs/github-organization-signal-scanner?fpr=mamba) | `ahF8RRpv5mzPao5CN` |
| [Government Contract Award Monitor](https://apify.com/mambalabs/public-award-monitor?fpr=mamba) | `zhEtllASykOcx9hJ8` |
| [GTM Hiring Signal Scraper](https://apify.com/mambalabs/gtm-hiring-signal-scraper?fpr=mamba) | `D7O1SA2EqwHGsGr1P` |
| [GTM Signals Aggregator](https://apify.com/mambalabs/b2b-buying-signals-hiring-tech-stack-intent-for-clay?fpr=mamba) | `xKdRfnfFNkdMpFuNs` |
| [ICP Fit Scorer](https://apify.com/mambalabs/icp-account-lead-scoring-fit-scorer-0-100-for-clay?fpr=mamba) | `W161DT8W4kW55dMFh` |
| [Influencer Change Monitor](https://apify.com/mambalabs/creator-change-monitor?fpr=mamba) | `d2VVgahNL6UmcLkhg` |
| [Influencer Finder](https://apify.com/mambalabs/creator-finder?fpr=mamba) | `tpkedmloIIWtXx6sg` |
| [Influencer Lead List Builder](https://apify.com/mambalabs/creator-lead-list-all-in-one?fpr=mamba) | `KnmByszcv135yM30G` |
| [Influencer Profile Scraper](https://apify.com/mambalabs/creator-profile-reader?fpr=mamba) | `EqEnklDVMIcB1V499` |
| [Influencer Talent Agency Lookup](https://apify.com/mambalabs/talent-agency-lookup?fpr=mamba) | `zCuX4Mgyg6JvXgGzd` |
| [Instagram Facebook Brand Presence Mapper](https://apify.com/mambalabs/meta-brand-presence-mapper?fpr=mamba) | `HXh65I0JBjPsunbY8` |
| [Job Board Keyword Signal Scanner](https://apify.com/mambalabs/job-board-keyword-signal-scanner?fpr=mamba) | `4DvqpvhMR74NLcDDY` |
| [Job Change Tracker](https://apify.com/mambalabs/job-change-tracker?fpr=mamba) | `L8UbEmMJC1XYPSZOb` |
| [Job Posting Monitor](https://apify.com/mambalabs/gtm-job-discovery?fpr=mamba) | `QCfICD9kOPiOdj5iI` |
| [Legal Entity Resolver](https://apify.com/mambalabs/legal-entity-resolver?fpr=mamba) | `KHFyPCDIx7CyqULYm` |
| [Link in Bio Scraper and Newsletter Detector](https://apify.com/mambalabs/link-in-bio-newsletter-checker?fpr=mamba) | `OorucdheTIgu7RFzK` |
| [LinkedIn Company Page Mapper](https://apify.com/mambalabs/linkedin-company-presence-mapper?fpr=mamba) | `zOPm6A9JEhUGcIdFW` |
| [LinkedIn Post Tracker](https://apify.com/mambalabs/linkedin-post-engager-capture?fpr=mamba) | `oiGLNPuaf5BRaz9K5` |
| [Meta Ad Library Monitor](https://apify.com/mambalabs/meta-ad-library-monitor?fpr=mamba) | `J1GWlSXfSGU3u8Wng` |
| [New Hire Finder](https://apify.com/mambalabs/new-hire-finder?fpr=mamba) | `cKuc38p4nYHNF3IW8` |
| [Outbound Stack Detector](https://apify.com/mambalabs/outbound-infrastructure-fingerprint?fpr=mamba) | `v43UJC8r7qW7cBSTG` |
| [Page Finder and Extractor](https://apify.com/mambalabs/page-finder-extractor?fpr=mamba) | `TpurgcOZbVnknlaiC` |
| [People Finder & Email Verifier](https://apify.com/mambalabs/people-finder?fpr=mamba) | `LEgloG7tWgQl4o6TD` |
| [Pinterest Brand Presence Mapper](https://apify.com/mambalabs/pinterest-brand-presence-mapper?fpr=mamba) | `d1HvjZfKhgvWsoEwn` |
| [Prospect Engine](https://apify.com/mambalabs/b2b-prospect-engine?fpr=mamba) | `q9rT6v64nUJdPexOQ` |
| [Publishing Frequency Tracker](https://apify.com/mambalabs/blog-publishing-frequency?fpr=mamba) | `TbLwaUUATdYb6wp4N` |
| [Reddit Brand Presence Mapper](https://apify.com/mambalabs/reddit-brand-presence-mapper?fpr=mamba) | `pKQZmDaT70SEb54bZ` |
| [Reporting Window Finder](https://apify.com/mambalabs/public-company-reporting-window-finder?fpr=mamba) | `uINxR7a1IW8qUTRUX` |
| [Sequencer Lead Push](https://apify.com/mambalabs/clay-to-instantly-smartlead-push?fpr=mamba) | `0Jv27VeWM5tSZQs9x` |
| [Team Page People Extractor](https://apify.com/mambalabs/team-page-people-extractor?fpr=mamba) | `j8a9zX0k4mNbvDbWK` |
| [Tech Stack Signal Detector](https://apify.com/mambalabs/gtm-tech-stack-signal-scraper?fpr=mamba) | `qyd7nNyqFPelQViBx` |
| [TikTok Brand Presence Mapper](https://apify.com/mambalabs/tiktok-brand-presence-mapper?fpr=mamba) | `fco8FvoJcSafbeyd1` |
| [Trustpilot Reputation Enricher](https://apify.com/mambalabs/review-platform-reputation-enricher?fpr=mamba) | `3lIqfCt61j4hqE1xz` |
| [Website Traffic Rank Estimator](https://apify.com/mambalabs/website-traffic-rank-estimator?fpr=mamba) | `GnOFUzlNVIoXgeJjH` |
| [Work Email Waterfall](https://apify.com/mambalabs/email-waterfall-orchestrator?fpr=mamba) | `OT6xqTFThC0Rjf7Zj` |
| [Workplace Program Detector](https://apify.com/mambalabs/workplace-program-detector?fpr=mamba) | `Li6pPDhqbdzFz3h7G` |
| [X Brand Presence Mapper](https://apify.com/mambalabs/x-brand-presence-mapper?fpr=mamba) | `oLOgadhHUkNAyDA3w` |
| [YouTube Channel Stats Extractor](https://apify.com/mambalabs/youtube-channel-transcript-extractor?fpr=mamba) | `6hSpD3kd2s2IQ4VSs` |

> Every actor in the suite takes a domain or a company and returns flat rows, so they stack in the same table without reshaping anything.

> 🛠️ **Need something custom built?** [Talk to Mamba Labs](https://mambabuilt.com/contact).

### 🆘 Support

Found a bug? Open an issue on the **Issues** tab. Response time is typically within 48 hours.

> ℹ️ **Sourcing.** Ads come from Google's public Ads Transparency Center at adstransparency.google.com. No login is used and robots.txt is read on every run. You are responsible for how you use the output.

Built by [Mamba Labs](https://apify.com/mambalabs?fpr=mamba).

# Actor input Schema

## `company_domain` (type: `string`):

The company website domain, for example stripe.com. Returns ads that Google lists for that domain. Use this or Advertiser name.

## `advertiser_name` (type: `string`):

The advertiser's name as Google verifies it, for example Stripe, Inc. Exact name matches are used, up to 5 advertisers; otherwise the closest suggestion, labeled closest on each row.

## `domains` (type: `array`):

Several company domains, one per line. Each gets its own ad rows and summary row. Up to 500 inputs per run.

## `advertiser_names` (type: `array`):

Several advertiser names, one per line.

## `region` (type: `string`):

Where the ads were shown: anywhere, or a two letter country code such as US, GB, DE, or FR. The README lists every supported code.

## `formats` (type: `array`):

Limit to text, image, or video ads. Leave empty for all formats.

## `max_ads` (type: `string`):

How many ad rows to return per domain or advertiser, 1 to 1,000. Each ad row is billed, so this is also your cost control per input.

## `since_days` (type: `string`):

Only return ads last shown in this many days. 0 returns every ad Google lists, however old.

## `include_summary` (type: `string`):

One extra row per input with the total ad count band, formats seen, and the first and last dates seen. The summary row is billed only when ads were found.

## `max_charge_usd` (type: `string`):

Optional. The run stops before any row that would take its charges over this amount. Leave empty to rely only on the maximum cost per run you set in Apify.

## `skipCache` (type: `string`):

Results for the same input and filters are kept for 24 hours in your own account and returned free. Choose Yes to read fresh results.

## `proxy_mode` (type: `string`):

auto (default): connect directly, and if Google refuses a request, switch to the Apify proxy default pool for the rest of the run. direct: the off switch, never use a proxy; a refused request returns a free blocked row. residential: use Apify residential proxy from the start. Proxy use adds nothing to your price; this is a reliability choice.

## `source_tag` (type: `string`):

Internal attribution tag set by Mamba Labs on published task examples. Not required, and nothing depends on it. Leave it empty.

## Actor input object example

```json
{
  "company_domain": "stripe.com",
  "region": "anywhere",
  "max_ads": "20",
  "since_days": "90",
  "include_summary": "true",
  "skipCache": "false",
  "proxy_mode": "auto"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `run_summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "company_domain": "stripe.com",
    "region": "anywhere",
    "max_ads": "20",
    "since_days": "90"
};

// Run the Actor and wait for it to finish
const run = await client.actor("mambalabs/google-ads-transparency-monitor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "company_domain": "stripe.com",
    "region": "anywhere",
    "max_ads": "20",
    "since_days": "90",
}

# Run the Actor and wait for it to finish
run = client.actor("mambalabs/google-ads-transparency-monitor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "company_domain": "stripe.com",
  "region": "anywhere",
  "max_ads": "20",
  "since_days": "90"
}' |
apify call mambalabs/google-ads-transparency-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mambalabs/google-ads-transparency-monitor"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/1eOwxhBVxzvOXAm4s/builds/fhG2tNrkwB9b72WsA/openapi.json
