# Google Ads \[From $2.5💰] Transparency Leads \[Download assets] (`memo23/google-ads-transparency-scraper-ppe`) Actor

\[From $2.5💰]  Scrape the Google Ads Transparency Center by advertiser or domain. Get ad creatives, formats, landing URLs, regions shown, first/last-shown dates, and download image/video/text assets. Pay per result — no monthly rental.

- **URL**: https://apify.com/memo23/google-ads-transparency-scraper-ppe.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Lead generation, Automation, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 ad scrapeds

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Google Ads Transparency Center Scraper

**Scrape active Google ads with filters like keywords, advertiser domains, ad format, region, or just by advertiser ID**

> **💳 Two pricing options:** This is the **pay-per-result** version — you pay only for the ads you actually scrape, with no monthly subscription. If you scrape large volumes regularly, the **flat monthly rental** version may work out cheaper: 👉 [Google Ads Transparency Scraper — monthly rental](https://apify.com/memo23/google-ad-transparency-scraper-cheerio). Both versions share the same engine and output format.

***

### Overview

This actor scrapes the Google Ads Transparency Center to extract detailed information about active and historical advertising campaigns. It is ideal for marketers, researchers, journalists, and compliance professionals who need to analyze ad strategies, monitor brand usage, or archive political and regulated ads.

**Supported Filters:**

- **Advertiser domain:** Target ads from specific companies (e.g., `temu.com`)
- **Region/country:** Focus on ads shown in specific countries or regions (e.g., US, EU)
- **Ad format:** Filter by ad type (IMAGE, VIDEO, TEXT)
- **Keywords:** Find ads containing specific keywords in their content
- **Ad status:** Scrape both active and inactive (archived) ads
- **Date range:** Analyze ads by first/last seen dates
- **Advertiser ID:** Scrape all ads for a specific advertiser using only their advertiser ID (see below)

**Rich Output:**

- Captures all creative variations (images, videos, text)
- Includes region-level stats, impressions, and surfaces (SEARCH, SHOPPING, etc.)
- Provides full creative metadata, targeting, and run dates

***

### Features

- **Precision Filtering:** Target ads by advertiser domain, region, ad format, keywords, or just advertiser ID
- **Comprehensive Data:** Extracts 15+ fields per ad, including all creative variations, region stats, and technical metadata
- **Dynamic Delays:** Randomized delays (5–10s) between API calls to avoid detection and throttling
- **Residential Proxies:** Built-in Apify residential proxy rotation for maximum stealth and reliability
- **Retry Resilience:** Up to 100 retries per failed request to maximize data completeness
- **Concurrency Control:** Adjustable concurrency (1–10 pages in parallel) for optimal speed and stability
- **Historical Range:** Scrape both current and past campaigns, including archived ads
- **Surface Insights:** Breaks down impressions and stats by Google surfaces (e.g., SEARCH, SHOPPING)
- **Flexible Export:** Download results as JSON, CSV, or Excel for easy analysis
- **Future-Proof:** Designed to adapt to Google’s frequent UI/API changes

***

### How to Use

1. **Set Up**: Ensure you have an Apify account and access to the Google ads transparency scraper/actor.
2. **Configure Input**:
   - **Start URLs**: Enter any of the following Google Ads Transparency Center URLs:
     - Filtered search:
       `https://adstransparency.google.com/?region=US&domain=temu.com`
     - Single ad detail:
       `https://adstransparency.google.com/advertiser/AR08337076844943638529/creative/CR01407804741060132865?region=US`
     - **Advertiser-only (all ads for one advertiser):**
       `https://adstransparency.google.com/advertiser/AR13531926238557372417?region=NZ`
   - **Max number of items**: Set the maximum number of items to scrape (optional, default: 100).
   - **Proxy Configuration**: Set up proxy settings for enhanced reliability (recommended).
3. **Run the Scraper**: Launch the actor on the Apify platform.
4. **Collect Data**: Retrieve the scraped data in your preferred format (JSON, CSV, etc.).

***

### Input Configuration

```json
{
    "startUrls": [
        "https://adstransparency.google.com/?region=US&domain=temu.com&format=IMAGE"
    ],
    "maxItems": 100,
    "minDelay": 5,
    "maxDelay": 10,
    "maxConcurrency": 10,
    "minConcurrency": 1,
    "maxRequestRetries": 100,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
```

#### Input Parameters

| Parameter           | Type    | Description                                                                 | Default      |
|---------------------|---------|-----------------------------------------------------------------------------|--------------|
| **startUrls**       | Array   | Google Ads Transparency Center URLs with your filters pre-applied            | Required     |
| **maxItems**        | Integer | Max ads to scrape per run                                                   | 100          |
| **minDelay**        | Integer | Minimum delay (seconds) between API calls                                   | 5            |
| **maxDelay**        | Integer | Maximum delay (seconds) between API calls                                   | 10           |
| **maxConcurrency**  | Integer | Max parallel page processing threads                                        | 10           |
| **minConcurrency**  | Integer | Minimum parallel threads                                                    | 1            |
| **maxRequestRetries**| Integer| Retry attempts for failed requests                                          | 100          |
| **proxy**           | Object  | Residential proxy configuration                                             | Apify Proxy  |

***

### Output Structure

#### Video sample output

```json
{
    "advertiserId": "AR08337076844943638529",
    "creativeId": "CR01407804741060132865",
    "adUrl": "https://adstransparency.google.com/advertiser/AR08337076844943638529/creative/CR01407804741060132865?region=US",
    "format": "Video",
    "advertiserName": "实源电子",
    "advertiserDomain": "temu.com",
    "firstShown": "2025-03-18T03:42:03.000Z",
    "lastShown": "2025-04-22T12:07:28.000Z",
    "shownAd": {
        "google_width": 400,
        "google_height": 667,
        "google_click_url": "http://www.googleadservices.com/pagead/aclk?sa=L&ai=C5w5Q5BfkV_L3FpCUpgOo0qKgD97avuJG_ZHMuaUDwI23ARABIIjJgx1gye7thsijoBmIAQGgAbOkitQDyAEJqAMByANAqgRhT9Cb8XlvI9rmDHvtDOztiYG03MpbRGP3EgsUDxPAwsIT1UNsJRaVe70al7Iq7y1yNtj4DB8p8TGjMD3MskAVls917cFmLJoAeIGyeU8mKMCoZA-0-aa3n56SZy8NtPB-YYgGAaAGLoAHtdv1K6gHgcYbqAemvhvYBwDSCAUIgAEQAQ&num=1&cid=CAASEuRoMfoJsHkc87HBzkJy9UE8xQ&sig=AOD64_0VVhsN3gbJxkywA3rOj9rzgkuhCg&client=ca-mongoogle&preview&adurl=",
        "google_td_ad_signals": "",
        "google_td_ad_metadata": "",
        "google_ait_url": "https://googleads.g.doubleclick.net/pagead/conversion/?ai=Bzb57484_RommEpyqhQPnhKSxC_uwyBuj_dHZAuOqwrYMABABGAEglIK9CTAAOABQsr6skwZgye7thsijoBmIAQGYAervqBCyARB2aWRlby5nb29nbGUuY29tugEJNzB4NDBfeG1syAEF2gEYaHR0cDovL3ZpZGVvLmdvb2dsZS5jb20vmAL6AbgCDMACAagDAdEDKABYb9cqw7I&sigh=5azgP9HcfBU&label=_AITNAME_&value=_AITVALUE_",
        "redirect_url": "http://www.googleadservices.com/pagead/aclk?sa=L&ai=C5w5Q5BfkV_L3FpCUpgOo0qKgD97avuJG_ZHMuaUDwI23ARABIIjJgx1gye7thsijoBmIAQGgAbOkitQDyAEJqAMByANAqgRhT9Cb8XlvI9rmDHvtDOztiYG03MpbRGP3EgsUDxPAwsIT1UNsJRaVe70al7Iq7y1yNtj4DB8p8TGjMD3MskAVls917cFmLJoAeIGyeU8mKMCoZA-0-aa3n56SZy8NtPB-YYgGAaAGLoAHtdv1K6gHgcYbqAemvhvYBwDSCAUIgAEQAQ&num=1&cid=CAASEuRoMfoJsHkc87HBzkJy9UE8xQ&sig=AOD64_0VVhsN3gbJxkywA3rOj9rzgkuhCg&client=ca-mongoogle&preview&adurl=https%3A%2F%2Fwww.temu.com%2Fmall.html%3Fmall_id%3D634418215685995",
        "visible_url": "temu.com",
        "destination_url": "https://www.temu.com/mall.html?mall_id=634418215685995",
        "final_url": "",
        "evc_touch": "true",
        "link_target": "_blank",
        "google_template_data": {
            "adData": [
                {
                    "headline": "Farmhouse Style TV Stand with Fireplace",
                    "description": "1pc Farmhouse Style TV Stand Includes Drawer & Sliding Barn Door Tv Stands for Living Room",
                    "longHeadline": "Farmhouse Style TV Stand with Fireplace",
                    "useVideoThumbnail": "true",
                    "layout": "discover",
                    "video": "//rr2---sn-q4fl6ndl.googlevideo.com/videoplayback?expire=1745382732&ei=zPwHaIrRL5Gwp84Pi5fF0Qc&ip=2600:1700:98e0:2b70:5484:67:8a0a:8e58&id=8a787cedf122f77d&itag=18&source=youtube&requiressl=yes&xpc=Eghovf3BOnoBAQ==&met=1745353932,&mh=oW&mm=31&mn=sn-q4fl6ndl&ms=au&mv=m&mvi=2&pl=43&rms=au,au&susc=daps&obr=googlesyndication.com&ctier=L&mime=video/mp4&vprv=1&rqh=1&dur=30.511&lmt=1742204953062283&mt=1745353497&txp=6209224&sparams=expire,ei,ip,id,itag,source,requiressl,xpc,susc,obr,ctier,mime,vprv,rqh,dur,lmt&sig=AJfQdSswRAIgFmzO6E8a6Jr40Hrhq0X32FWEMZ73m_kEPnV6i7b34ycCIEIS53p2m3JLNClxQy_2oPghw82XEc_MWtI6CV2fZExe&lsparams=met,mh,mm,mn,ms,mv,mvi,pl,rms&lsig=ACuhMU0wRQIgElvOpe14ycCrSQAcqHnSnOjmIEKLsR85C5WSYXrnwKoCIQCs8qrgMLgxAazKouGoC8leJnCckMnaksLfUbsnSOndbQ==",
                    "videoAspectRatio": "1.7777777777777777",
                    "thumbnail": "https://i.ytimg.com/vi/inh87fEi930/hqdefault.jpg",
                    "video_videoId": "inh87fEi930",
                    "video_videoAspectRatio": "1.7777777777777777",
                    "gpaFlagBgSignalClickLocationEnabled": "true",
                    "gpaAddNewItem": "mock",
                    "gpaPriceDropType": "animation",
                    "versionInfo": "7.3.2",
                    "FLAG_client_side_flag_overrides": "[{\"name\" : \"in_app_link_handling_for_android_11_enabled\", \"value\" : true},{\"name\" : \"avoid_appify_double_billing\", \"value\" : true},{\"name\" : \"uses_octagon_sdk\", \"value\" : true},{\"name\" : \"open_applinks_adding_gclid\", \"value\" : true}]",
                    "FLAG_pass_gclid_to_deeplink_url": "True",
                    "gpaUseWideLogo": "true",
                    "gpaLimitAnimationTime": "first",
                    "gpaSpecifiedLogo": "true",
                    "gpaFlagBackgroundUnclickable": "true",
                    "siriusFlagBackgroundUnclickable": "true",
                    "gpaAddPromoText": "true",
                    "hot_item_label": "Hot"
                }
            ]
        },
        "format": "VIDEO"
    },
    "adLink": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?client=ads-integrity-transparency&obfuscatedCustomerId=3507283165&creativeId=739509201062&uiFeatures=12&adGroupId=176594498836&assets=%3DH4sIAAAAAAAAAONy4uLkmLhqW_sCFgFNIPPW34mPt7EIsAGZx9ZMvTCPTYAHyDx4vw_EZEIwGYHMfRAmMwBgj-lIRAAAAA&sig=ACiVB_xfVT41FtNE7DU4jHay3UY0bZQFqA&htmlParentId=fletch-render-13331330074118258703&responseCallback=fletchCallback13331330074118258703",
    "creativeRegions": [
        "United States"
    ],
    "regionStats": [
        {
            "regionCode": "US",
            "regionName": "United States",
            "firstShown": null,
            "lastShown": 20250422,
            "impressions": null,
            "surfaceServingStats": null
        }
    ],
    "variations": [
        {
            "google_width": 400,
            "google_height": 667,
            "google_click_url": "http://www.googleadservices.com/pagead/aclk?sa=L&ai=C5w5Q5BfkV_L3FpCUpgOo0qKgD97avuJG_ZHMuaUDwI23ARABIIjJgx1gye7thsijoBmIAQGgAbOkitQDyAEJqAMByANAqgRhT9Cb8XlvI9rmDHvtDOztiYG03MpbRGP3EgsUDxPAwsIT1UNsJRaVe70al7Iq7y1yNtj4DB8p8TGjMD3MskAVls917cFmLJoAeIGyeU8mKMCoZA-0-aa3n56SZy8NtPB-YYgGAaAGLoAHtdv1K6gHgcYbqAemvhvYBwDSCAUIgAEQAQ&num=1&cid=CAASEuRoMfoJsHkc87HBzkJy9UE8xQ&sig=AOD64_0VVhsN3gbJxkywA3rOj9rzgkuhCg&client=ca-mongoogle&preview&adurl=",
            "google_td_ad_signals": "",
            "google_td_ad_metadata": "",
            "google_ait_url": "https://googleads.g.doubleclick.net/pagead/conversion/?ai=Bzb57484_RommEpyqhQPnhKSxC_uwyBuj_dHZAuOqwrYMABABGAEglIK9CTAAOABQsr6skwZgye7thsijoBmIAQGYAervqBCyARB2aWRlby5nb29nbGUuY29tugEJNzB4NDBfeG1syAEF2gEYaHR0cDovL3ZpZGVvLmdvb2dsZS5jb20vmAL6AbgCDMACAagDAdEDKABYb9cqw7I&sigh=5azgP9HcfBU&label=_AITNAME_&value=_AITVALUE_",
            "redirect_url": "http://www.googleadservices.com/pagead/aclk?sa=L&ai=C5w5Q5BfkV_L3FpCUpgOo0qKgD97avuJG_ZHMuaUDwI23ARABIIjJgx1gye7thsijoBmIAQGgAbOkitQDyAEJqAMByANAqgRhT9Cb8XlvI9rmDHvtDOztiYG03MpbRGP3EgsUDxPAwsIT1UNsJRaVe70al7Iq7y1yNtj4DB8p8TGjMD3MskAVls917cFmLJoAeIGyeU8mKMCoZA-0-aa3n56SZy8NtPB-YYgGAaAGLoAHtdv1K6gHgcYbqAemvhvYBwDSCAUIgAEQAQ&num=1&cid=CAASEuRoMfoJsHkc87HBzkJy9UE8xQ&sig=AOD64_0VVhsN3gbJxkywA3rOj9rzgkuhCg&client=ca-mongoogle&preview&adurl=https%3A%2F%2Fwww.temu.com%2Fmall.html%3Fmall_id%3D634418215685995",
            "visible_url": "temu.com",
            "destination_url": "https://www.temu.com/mall.html?mall_id=634418215685995",
            "final_url": "",
            "evc_touch": "true",
            "link_target": "_blank",
            "google_template_data": {
                "adData": [
                    {
                        "headline": "Farmhouse Style TV Stand with Fireplace",
                        "description": "1pc Farmhouse Style TV Stand Includes Drawer & Sliding Barn Door Tv Stands for Living Room",
                        "longHeadline": "Farmhouse Style TV Stand with Fireplace",
                        "useVideoThumbnail": "true",
                        "layout": "discover",
                        "video": "//rr4---sn-fpoqnugx5h-axms.googlevideo.com/videoplayback?expire=1745382738&ei=0vwHaMumHLjKy_sPhq_XyAU&ip=67.214.30.154&id=8a787cedf122f77d&itag=18&source=youtube&requiressl=yes&xpc=Eghovf3BOnoBAQ==&met=1745353938,&mh=oW&mm=31&mn=sn-fpoqnugx5h-axms&ms=au&mv=m&mvi=4&pl=20&rms=au,au&susc=daps&obr=googlesyndication.com&ctier=L&mime=video/mp4&vprv=1&rqh=1&dur=30.511&lmt=1742204953062283&mt=1745353751&txp=6209224&sparams=expire,ei,ip,id,itag,source,requiressl,xpc,susc,obr,ctier,mime,vprv,rqh,dur,lmt&sig=AJfQdSswRQIhAPFL5TGnGr9u6PY8U4LAm8NqEMERXI8vDyYTpsAjO3A0AiBSz_eaNBAsMpt1UKm-qwTsfXjLH3uok4F0Q7_rYhaxRA==&lsparams=met,mh,mm,mn,ms,mv,mvi,pl,rms&lsig=ACuhMU0wRAIgKsA2nick03zTUJ6HAT2W3IDh0omW1DRDjv36jexrj48CIGR9tLAxDAxPd4jjPzAD_l1aT4EUo7ReQRMXOqtg4DlV",
                        "videoAspectRatio": "1.7777777777777777",
                        "thumbnail": "https://i.ytimg.com/vi/inh87fEi930/hqdefault.jpg",
                        "video_videoId": "inh87fEi930",
                        "video_videoAspectRatio": "1.7777777777777777",
                        "gpaSpecifiedLogo": "true",
                        "gpaLimitAnimationTime": "first",
                        "gpaPriceDropType": "animation",
                        "versionInfo": "7.3.2",
                        "FLAG_client_side_flag_overrides": "[{\"name\" : \"in_app_link_handling_for_android_11_enabled\", \"value\" : true},{\"name\" : \"avoid_appify_double_billing\", \"value\" : true},{\"name\" : \"uses_octagon_sdk\", \"value\" : true},{\"name\" : \"open_applinks_adding_gclid\", \"value\" : true}]",
                        "gpaAddNewItem": "mock",
                        "gpaUseWideLogo": "true",
                        "FLAG_pass_gclid_to_deeplink_url": "True",
                        "gpaFlagBgSignalClickLocationEnabled": "true",
                        "gpaAddPromoText": "true",
                        "siriusFlagBackgroundUnclickable": "true",
                        "gpaFlagBackgroundUnclickable": "true",
                        "hot_item_label": "Hot"
                    }
                ]
            },
            "format": "VIDEO"
        },
        {
            "google_width": 400,
            "google_height": 667,
            "google_click_url": "http://www.googleadservices.com/pagead/aclk?sa=L&ai=C5w5Q5BfkV_L3FpCUpgOo0qKgD97avuJG_ZHMuaUDwI23ARABIIjJgx1gye7thsijoBmIAQGgAbOkitQDyAEJqAMByANAqgRhT9Cb8XlvI9rmDHvtDOztiYG03MpbRGP3EgsUDxPAwsIT1UNsJRaVe70al7Iq7y1yNtj4DB8p8TGjMD3MskAVls917cFmLJoAeIGyeU8mKMCoZA-0-aa3n56SZy8NtPB-YYgGAaAGLoAHtdv1K6gHgcYbqAemvhvYBwDSCAUIgAEQAQ&num=1&cid=CAASEuRoMfoJsHkc87HBzkJy9UE8xQ&sig=AOD64_0VVhsN3gbJxkywA3rOj9rzgkuhCg&client=ca-mongoogle&preview&adurl=",
            "google_td_ad_signals": "",
            "google_td_ad_metadata": "",
            "google_ait_url": "https://googleads.g.doubleclick.net/pagead/conversion/?ai=Bzb57484_RommEpyqhQPnhKSxC_uwyBuj_dHZAuOqwrYMABABGAEglIK9CTAAOABQsr6skwZgye7thsijoBmIAQGYAervqBCyARB2aWRlby5nb29nbGUuY29tugEJNzB4NDBfeG1syAEF2gEYaHR0cDovL3ZpZGVvLmdvb2dsZS5jb20vmAL6AbgCDMACAagDAdEDKABYb9cqw7I&sigh=5azgP9HcfBU&label=_AITNAME_&value=_AITVALUE_",
            "redirect_url": "http://www.googleadservices.com/pagead/aclk?sa=L&ai=C5w5Q5BfkV_L3FpCUpgOo0qKgD97avuJG_ZHMuaUDwI23ARABIIjJgx1gye7thsijoBmIAQGgAbOkitQDyAEJqAMByANAqgRhT9Cb8XlvI9rmDHvtDOztiYG03MpbRGP3EgsUDxPAwsIT1UNsJRaVe70al7Iq7y1yNtj4DB8p8TGjMD3MskAVls917cFmLJoAeIGyeU8mKMCoZA-0-aa3n56SZy8NtPB-YYgGAaAGLoAHtdv1K6gHgcYbqAemvhvYBwDSCAUIgAEQAQ&num=1&cid=CAASEuRoMfoJsHkc87HBzkJy9UE8xQ&sig=AOD64_0VVhsN3gbJxkywA3rOj9rzgkuhCg&client=ca-mongoogle&preview&adurl=https%3A%2F%2Fwww.temu.com%2Fmall.html%3Fmall_id%3D634418215685995",
            "visible_url": "temu.com",
            "destination_url": "https://www.temu.com/mall.html?mall_id=634418215685995",
            "final_url": "",
            "evc_touch": "true",
            "link_target": "_blank",
            "google_template_data": {
                "adData": [
                    {
                        "headline": "Farmhouse Style TV Stand with Fireplace",
                        "description": "1pc Farmhouse Style TV Stand Includes Drawer & Sliding Barn Door Tv Stands for Living Room",
                        "longHeadline": "Farmhouse Style TV Stand with Fireplace",
                        "useVideoThumbnail": "true",
                        "layout": "discover",
                        "video": "//rr2---sn-p5qlsnrl.googlevideo.com/videoplayback?expire=1745382742&ei=1vwHaKuIJ_6xu7AP4_LOkQo&ip=2601:152:1481:20:241c:bcc7:b327:301f&id=8a787cedf122f77d&itag=18&source=youtube&requiressl=yes&xpc=Eghovf3BOnoBAQ==&met=1745353942,&mh=oW&mm=31&mn=sn-p5qlsnrl&ms=au&mv=m&mvi=2&pl=36&rms=au,au&susc=daps&obr=googlesyndication.com&ctier=L&mime=video/mp4&vprv=1&rqh=1&dur=30.511&lmt=1742204953062283&mt=1745353497&txp=6209224&sparams=expire,ei,ip,id,itag,source,requiressl,xpc,susc,obr,ctier,mime,vprv,rqh,dur,lmt&sig=AJfQdSswRAIgGJmqHi4wWmU9vcsDfTAgO_mtMC-ppsgC7m3SHrO05CUCIBn2tpyCNZcqJxlnFwCOB0NaoQxFSXU8MlkMkKin9CaL&lsparams=met,mh,mm,mn,ms,mv,mvi,pl,rms&lsig=ACuhMU0wRAIgPU1xcpU8I8T79mfkT4_fNzSYtvlCyDhNyOfM2U60sV0CIFBJVZ2Uw7BwhgUuDIRnLUpBt6p_5Rdfk1_zXUWe4O5L",
                        "videoAspectRatio": "1.7777777777777777",
                        "thumbnail": "https://i.ytimg.com/vi/inh87fEi930/hqdefault.jpg",
                        "video_videoId": "inh87fEi930",
                        "video_videoAspectRatio": "1.7777777777777777",
                        "siriusFlagBackgroundUnclickable": "true",
                        "gpaLimitAnimationTime": "first",
                        "FLAG_client_side_flag_overrides": "[{\"name\" : \"in_app_link_handling_for_android_11_enabled\", \"value\" : true},{\"name\" : \"avoid_appify_double_billing\", \"value\" : true},{\"name\" : \"uses_octagon_sdk\", \"value\" : true},{\"name\" : \"open_applinks_adding_gclid\", \"value\" : true}]",
                        "versionInfo": "7.3.2",
                        "gpaPriceDropType": "animation",
                        "gpaAddNewItem": "mock",
                        "gpaUseWideLogo": "true",
                        "FLAG_pass_gclid_to_deeplink_url": "True",
                        "gpaAddPromoText": "true",
                        "gpaSpecifiedLogo": "true",
                        "gpaFlagBgSignalClickLocationEnabled": "true",
                        "gpaFlagBackgroundUnclickable": "true",
                        "hot_item_label": "Hot"
                    }
                ]
            },
            "format": "VIDEO"
        }
    ]
}
```

##### Video Ad Output Fields

| Field                   | Type     | Description                                                                                   |
|-------------------------|----------|-----------------------------------------------------------------------------------------------|
| `advertiserId`          | String   | Unique Google advertiser ID.                                                                  |
| `creativeId`            | String   | Unique ID for the specific ad creative.                                                       |
| `adUrl`                 | String   | Direct link to the ad in the Google Ads Transparency Center.                                  |
| `format`                | String   | Ad format, e.g., "Video".                                                                     |
| `advertiserName`        | String   | Name of the advertiser as shown in the Transparency Center.                                   |
| `advertiserDomain`      | String   | Advertiser's website domain.                                                                  |
| `firstShown`            | String   | ISO 8601 date when the ad was first seen running.                                             |
| `lastShown`             | String   | ISO 8601 date when the ad was last seen running.                                              |
| `shownAd`               | Object   | Main ad creative object (see below for subfields).                                            |
| `adLink`                | String   | Direct link to a preview of the ad creative.                                                  |
| `creativeRegions`       | Array    | List of regions/countries where the ad was shown.                                             |
| `regionStats`           | Array    | Array of objects with region-specific stats (region code, name, first/last shown, impressions).|
| `variations`            | Array    | Array of ad creative variations (different sizes, layouts, etc.), each with its own details.  |

**`shownAd` subfields:**

| Field                        | Type     | Description                                                                                  |
|------------------------------|----------|----------------------------------------------------------------------------------------------|
| `google_width`               | Integer  | Width of the ad creative in pixels.                                                          |
| `google_height`              | Integer  | Height of the ad creative in pixels.                                                         |
| `google_click_url`           | String   | Google click tracking URL for the ad.                                                        |
| `google_td_ad_signals`       | String   | Technical ad signals (may be empty or for internal use).                                     |
| `google_td_ad_metadata`      | String   | Technical ad metadata (may be empty or for internal use).                                    |
| `google_ait_url`             | String   | Google Ads conversion tracking URL.                                                          |
| `redirect_url`               | String   | Final redirect URL to the advertiser's landing page.                                         |
| `visible_url`                | String   | Displayed URL in the ad.                                                                     |
| `destination_url`            | String   | Actual destination URL for the ad click.                                                     |
| `final_url`                  | String   | Final resolved URL after all redirects (may be empty).                                       |
| `evc_touch`                  | String   | Touch event tracking flag (usually "true").                                                  |
| `link_target`                | String   | Target for the ad link (e.g., "\_blank" for new tab).                                         |
| `google_template_data`       | Object   | Contains ad creative data (see below for `adData` fields).                                   |
| `format`                     | String   | Format of the ad creative, e.g., "VIDEO".                                                    |

**`google_template_data.adData[]` subfields:**

| Field                | Type     | Description                                                                                   |
|----------------------|----------|-----------------------------------------------------------------------------------------------|
| `headline`           | String   | Main headline of the ad.                                                                      |
| `description`        | String   | Description text of the ad.                                                                   |
| `longHeadline`       | String   | Extended headline, if available.                                                              |
| `useVideoThumbnail`  | String   | Indicates if a video thumbnail is used ("true"/"false").                                      |
| `layout`             | String   | Layout type (e.g., "discover").                                                               |
| `video`              | String   | URL to the video file (may be a YouTube or Google-hosted video).                             |
| `videoAspectRatio`   | String   | Aspect ratio of the video (e.g., "1.777...").                                                 |
| `thumbnail`          | String   | URL to the video thumbnail image.                                                             |
| `video_videoId`      | String   | Video ID (if hosted on YouTube).                                                              |
| `video_videoAspectRatio` | String | Aspect ratio of the video (duplicate of `videoAspectRatio`).                                 |
| ...                  | ...      | Additional technical or experimental fields (may vary per ad).                                |

**Other fields:**

| Field                | Type     | Description                                                                                   |
|----------------------|----------|-----------------------------------------------------------------------------------------------|
| `creativeRegions`    | Array    | List of regions/countries where the ad was shown.                                             |
| `regionStats`        | Array    | Array of objects with region-specific stats (region code, name, first/last shown, impressions).|
| `variations`         | Array    | Array of ad creative variations (different sizes, layouts, etc.), each with its own details.  |

***

| Field                | Type    | Description                                              |
|----------------------|---------|----------------------------------------------------------|
| `scraped_at`         | String  | Timestamp when this ad was scraped                      |
| `source_url`         | String  | The URL from which the ad was scraped                   |

***

#### Image sample output

```json
{
    "advertiserId": "AR01614014350098432001",
    "creativeId": "CR03153595576927387649",
    "adUrl": "https://adstransparency.google.com/advertiser/AR01614014350098432001/creative/CR03153595576927387649?region=US",
    "format": "Image",
    "advertiserName": "Lululemon Athletica Canada Inc.",
    "advertiserDomain": "temu.com",
    "firstShown": "2024-07-18T21:11:12.000Z",
    "lastShown": "2025-04-22T15:44:39.000Z",
    "shownAd": {
        "adTitle": "lululemon Women's Scuba Oversized Pullover Wordmark Size M/L Pink",
        "adImage": "https://encrypted-tbn3.gstatic.com/shopping?q\\=tbn:ANd9GcQKzTk3ThczwbfU4ZWA3jJ-B1iUItEOtc7PPf9L4ZjV_IXvTYA",
        "adDescription": "lululemon",
        "advertiser": "lululemon",
        "storeType": null,
        "callToAction": null,
        "categories": [],
        "format": "IMAGE"
    },
    "adLink": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?client=ads-integrity-transparency&obfuscatedCustomerId=9072866319&creativeId=706133062513&uiFeatures=12&adGroupId=160157227890&itemIds=15447364115943834769&overlay=%3DH4sIAAAAAAAAALMSMxLhEuKceOTTvYv8CdcEl0k2zbgX8pvNS4ZLILm42CWzuCAnsTK4pCgzL12Ig4vNPT8_PSfVS5FLojgjv6AAKOqY4p-WllrkXJSaWJJZlmogxGrFzLGcy0sFpxJDIQ4rNo5fTEKMjHhUGYFVPeEUYuTGY50x2LpmbjwGmYAN-go0SAAAbiDVgO4AAAA&sig=ACiVB_wBb_M7zT2NNPoBKXJt6vU-Q-c0EA&htmlParentId=fletch-render-3132676012382965825&responseCallback=fletchCallback3132676012382965825",
    "creativeRegions": [
        "United States"
    ],
    "regionStats": [
        {
            "regionCode": "US",
            "regionName": "United States",
            "firstShown": null,
            "lastShown": 20250422,
            "impressions": null,
            "surfaceServingStats": null
        }
    ],
    "variations": [
        {
            "adTitle": "lululemon Women's Scuba Oversized Pullover Wordmark Size M/L Pink",
            "adImage": "https://encrypted-tbn3.gstatic.com/shopping?q\\=tbn:ANd9GcQKzTk3ThczwbfU4ZWA3jJ-B1iUItEOtc7PPf9L4ZjV_IXvTYA",
            "adDescription": "lululemon",
            "advertiser": "lululemon",
            "storeType": null,
            "callToAction": null,
            "categories": [],
            "format": "IMAGE"
        },
        {
            "adTitle": "lululemon Women's Pleat-Front High-Rise Trouser Regular Size 6 Brown",
            "adImage": "https://encrypted-tbn1.gstatic.com/shopping?q\\=tbn:ANd9GcR-cXZ2nybKDr9ed0P41PBtQCHiEAHLk66d__Uwjri9l5zzg3Y",
            "adDescription": "lululemon",
            "advertiser": "lululemon",
            "storeType": null,
            "callToAction": null,
            "categories": [],
            "format": "IMAGE"
        },
        {
            "adTitle": "lululemon Women's Pleat-Front High-Rise Trouser Regular Size 6 Brown",
            "adImage": "https://encrypted-tbn1.gstatic.com/shopping?q\\=tbn:ANd9GcR-cXZ2nybKDr9ed0P41PBtQCHiEAHLk66d__Uwjri9l5zzg3Y",
            "adDescription": "lululemon",
            "advertiser": "lululemon",
            "storeType": null,
            "callToAction": null,
            "categories": [],
            "format": "IMAGE"
        }
    ]
}
```

##### Image Ad Output Fields

| Field               | Type     | Description                                                                                   |
|---------------------|----------|-----------------------------------------------------------------------------------------------|
| `advertiserId`      | String   | Unique Google advertiser ID.                                                                  |
| `creativeId`        | String   | Unique ID for the specific ad creative.                                                       |
| `adUrl`             | String   | Direct link to the ad in the Google Ads Transparency Center.                                  |
| `format`            | String   | Ad format, e.g., "Image".                                                                     |
| `advertiserName`    | String   | Name of the advertiser as shown in the Transparency Center.                                   |
| `advertiserDomain`  | String   | Advertiser's website domain.                                                                  |
| `firstShown`        | String   | ISO 8601 date when the ad was first seen running.                                             |
| `lastShown`         | String   | ISO 8601 date when the ad was last seen running.                                              |
| `shownAd`           | Object   | Main ad creative object (see below for subfields).                                            |
| `adLink`            | String   | Direct link to a preview of the ad creative.                                                  |
| `creativeRegions`   | Array    | List of regions/countries where the ad was shown.                                             |
| `regionStats`       | Array    | Array of objects with region-specific stats (region code, name, first/last shown, impressions).|
| `variations`        | Array    | Array of ad creative variations (different images, titles, etc.), each with its own details.  |

**`shownAd` and `variations[]` subfields:**

| Field            | Type     | Description                                                                                   |
|------------------|----------|-----------------------------------------------------------------------------------------------|
| `adTitle`        | String   | Title or headline of the ad.                                                                  |
| `adImage`        | String   | URL to the ad image.                                                                          |
| `adDescription`  | String   | Description text of the ad.                                                                   |
| `advertiser`     | String   | Name of the advertiser (may duplicate `advertiserName`).                                      |
| `storeType`      | String   | Type of store (if available, otherwise null).                                                 |
| `callToAction`   | String   | Call-to-action text (if available, otherwise null).                                           |
| `categories`     | Array    | List of product or ad categories (may be empty).                                              |
| `format`         | String   | Format of the ad creative, e.g., "IMAGE".                                                     |

***

#### Text sample output

```json
{
    "advertiserId": "AR00931916197090295809",
    "creativeId": "CR06698593464864473089",
    "adUrl": "https://adstransparency.google.com/advertiser/AR00931916197090295809/creative/CR06698593464864473089?region=US",
    "archiveImageUrl": "https://tpc.googlesyndication.com/archive/simgad/11649949633206913875",
    "format": "Text",
    "advertiserName": "Whaleco Inc.",
    "advertiserDomain": "temu.com",
    "firstShown": "2024-11-18T12:27:15.000Z",
    "lastShown": "2025-04-22T20:12:32.000Z",
    "adLink": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?client=ads-integrity-transparency&obfuscatedCustomerId=5814258847&creativeId=721827965455&uiFeatures=12&adGroupId=170957075695&overlay=%3DH4sIAAAAAAAAAFVQwUrDQBAlICVdtdZURALCIEgVavHioce2ngLqIRXPa3bSLG52w-6mQRDpP4ggfoHH_oT_If6AXyC425uXYR7z5r03k1yQsEDKBJcYnZL-DMt6OFUl3OQ5zzgVkHKLcAZjIWBKLc6V5miSj4BsMjSZ5pXlSkZvAXkNJlo1BsEWqjZUMgMqh3u97lyBnLvCkAo3kPCoag05XTg9i45gwXsPIC1UBdeqGYKLgevFrMDsAYyHjluuyRSEaqDSPMOB1-ozkLhADQ2VFqyCkhvj6MNkj7QW3NRaRISE1t-XqTJxgfcpY9ynpyJFqrNizC6ppdHz0VMcke6d85N9A1OhbMHlPO6RXR8RJs5Z1RZSKjDukK0JGgdQCNQm3iHbtxXMFIzOj_0T4y7pXP3TeQ8PSS9cLpdfP5_fL79Bd9U-WLVPgqhFNrz-H6qwi6yTAQAA&sig=ACiVB_x_pOkAgixioHlBkBEb5RPa3TuRCw&htmlParentId=fletch-render-6097491865125542417&responseCallback=fletchCallback6097491865125542417",
    "creativeRegions": [
        "Netherlands",
        "Mexico",
        "Northern Mariana Islands",
        "Guam",
        "United States",
        "Canada",
        "Italy",
        "Ireland",
        "Portugal",
        "Germany",
        "France",
        "Spain"
    ],
    "regionStats": [
        {
            "regionCode": "NL",
            "regionName": "Netherlands",
            "firstShown": 20241118,
            "lastShown": 20250419,
            "impressions": {
                "lowerBound": 1000,
                "upperBound": 1000
            },
            "surfaceServingStats": [
                {
                    "surfaceCode": "SEARCH",
                    "surfaceName": "3",
                    "impressions": {
                        "lowerBound": 0,
                        "upperBound": 1000
                    }
                }
            ]
        },
        {
            "regionCode": "MX",
            "regionName": "Mexico",
            "firstShown": null,
            "lastShown": 20250422,
            "impressions": null,
            "surfaceServingStats": null
        },
        {
            "regionCode": "MP",
            "regionName": "Northern Mariana Islands",
            "firstShown": null,
            "lastShown": 20250422,
            "impressions": null,
            "surfaceServingStats": null
        },
        {
            "regionCode": "GU",
            "regionName": "Guam",
            "firstShown": null,
            "lastShown": 20250422,
            "impressions": null,
            "surfaceServingStats": null
        },
        {
            "regionCode": "US",
            "regionName": "United States",
            "firstShown": null,
            "lastShown": 20250422,
            "impressions": null,
            "surfaceServingStats": null
        },
        {
            "regionCode": "CA",
            "regionName": "Canada",
            "firstShown": null,
            "lastShown": 20250422,
            "impressions": null,
            "surfaceServingStats": null
        },
        {
            "regionCode": "IT",
            "regionName": "Italy",
            "firstShown": 20241120,
            "lastShown": 20250421,
            "impressions": {
                "lowerBound": 1000,
                "upperBound": 1000
            },
            "surfaceServingStats": [
                {
                    "surfaceCode": "SEARCH",
                    "surfaceName": "3",
                    "impressions": {
                        "lowerBound": 0,
                        "upperBound": 1000
                    }
                }
            ]
        },
        {
            "regionCode": "IE",
            "regionName": "Ireland",
            "firstShown": 20241121,
            "lastShown": 20250422,
            "impressions": {
                "lowerBound": 1000,
                "upperBound": 1000
            },
            "surfaceServingStats": [
                {
                    "surfaceCode": "SEARCH",
                    "surfaceName": "3",
                    "impressions": {
                        "lowerBound": 0,
                        "upperBound": 1000
                    }
                }
            ]
        },
        {
            "regionCode": "PT",
            "regionName": "Portugal",
            "firstShown": 20241122,
            "lastShown": 20250422,
            "impressions": {
                "lowerBound": 1000,
                "upperBound": 1000
            },
            "surfaceServingStats": [
                {
                    "surfaceCode": "SEARCH",
                    "surfaceName": "3",
                    "impressions": {
                        "lowerBound": 0,
                        "upperBound": 1000
                    }
                }
            ]
        },
        {
            "regionCode": "DE",
            "regionName": "Germany",
            "firstShown": 20241122,
            "lastShown": 20250422,
            "impressions": {
                "lowerBound": 1000,
                "upperBound": 1000
            },
            "surfaceServingStats": [
                {
                    "surfaceCode": "SEARCH",
                    "surfaceName": "3",
                    "impressions": {
                        "lowerBound": 0,
                        "upperBound": 1000
                    }
                }
            ]
        },
        {
            "regionCode": "FR",
            "regionName": "France",
            "firstShown": 20241123,
            "lastShown": 20250421,
            "impressions": {
                "lowerBound": 1000,
                "upperBound": 1000
            },
            "surfaceServingStats": [
                {
                    "surfaceCode": "SEARCH",
                    "surfaceName": "3",
                    "impressions": {
                        "lowerBound": 0,
                        "upperBound": 1000
                    }
                }
            ]
        },
        {
            "regionCode": "ES",
            "regionName": "Spain",
            "firstShown": 20241124,
            "lastShown": 20250422,
            "impressions": {
                "lowerBound": 1000,
                "upperBound": 1000
            },
            "surfaceServingStats": [
                {
                    "surfaceCode": "SHOPPING",
                    "surfaceName": "4",
                    "impressions": {
                        "lowerBound": 0,
                        "upperBound": 1000
                    }
                },
                {
                    "surfaceCode": "SEARCH",
                    "surfaceName": "3",
                    "impressions": {
                        "lowerBound": 0,
                        "upperBound": 1000
                    }
                }
            ]
        }
    ],
    "variations": [
        {
            "adTitle": "Temu.Com Official Site - All Categories",
            "adImage": "www.temu.com/",
            "adDescription": "Temu.Com Official Site - All Categories",
            "advertiser": null,
            "storeType": null,
            "callToAction": null,
            "categories": [
                "Women's Clothing",
                "Men's Clothing"
            ],
            "format": "IMAGE"
        },
        {
            "adTitle": "Temu.Com Official Site - All Categories On Sale",
            "adImage": "www.temu.com/",
            "adDescription": "Temu.Com Official Site - All Categories On Sale",
            "advertiser": null,
            "storeType": null,
            "callToAction": null,
            "categories": [
                "Women's Clothing",
                "Men's Clothing"
            ],
            "format": "IMAGE"
        },
        {
            "adTitle": "Temu.Com Official Site - Shop All Categories",
            "adImage": "www.temu.com/",
            "adDescription": "Temu.Com Official Site - Shop All Categories",
            "advertiser": null,
            "storeType": null,
            "callToAction": null,
            "categories": [
                "Women's Clothing"
            ],
            "format": "IMAGE"
        }
    ]
}
```

##### Text Ad Output Fields

| Field               | Type     | Description                                                                                   |
|---------------------|----------|-----------------------------------------------------------------------------------------------|
| `advertiserId`      | String   | Unique Google advertiser ID.                                                                  |
| `creativeId`        | String   | Unique ID for the specific ad creative.                                                       |
| `adUrl`             | String   | Direct link to the ad in the Google Ads Transparency Center.                                  |
| `archiveImageUrl`   | String   | URL to an archived image of the ad creative (if available).                                   |
| `format`            | String   | Ad format, e.g., "Text".                                                                      |
| `advertiserName`    | String   | Name of the advertiser as shown in the Transparency Center.                                   |
| `advertiserDomain`  | String   | Advertiser's website domain.                                                                  |
| `firstShown`        | String   | ISO 8601 date when the ad was first seen running.                                             |
| `lastShown`         | String   | ISO 8601 date when the ad was last seen running.                                              |
| `adLink`            | String   | Direct link to a preview of the ad creative.                                                  |
| `creativeRegions`   | Array    | List of regions/countries where the ad was shown.                                             |
| `regionStats`       | Array    | Array of objects with region-specific stats (region code, name, first/last shown, impressions, surfaces).|
| `variations`        | Array    | Array of ad creative variations (different text, images, etc.), each with its own details.    |

**`regionStats[]` subfields:**

| Field                | Type     | Description                                                                                   |
|----------------------|----------|-----------------------------------------------------------------------------------------------|
| `regionCode`         | String   | ISO country/region code.                                                                      |
| `regionName`         | String   | Name of the country/region.                                                                   |
| `firstShown`         | Integer  | Date (YYYYMMDD) when the ad was first seen in this region (may be null).                      |
| `lastShown`          | Integer  | Date (YYYYMMDD) when the ad was last seen in this region.                                     |
| `impressions`        | Object   | Estimated impressions bounds (`lowerBound`, `upperBound`) for this region (may be null).      |
| `surfaceServingStats`| Array    | Array of objects with stats for each Google surface (e.g., SEARCH, SHOPPING), may be null.    |

**`surfaceServingStats[]` subfields:**

| Field                | Type     | Description                                                                                   |
|----------------------|----------|-----------------------------------------------------------------------------------------------|
| `surfaceCode`        | String   | Code for the Google surface (e.g., "SEARCH", "SHOPPING").                                     |
| `surfaceName`        | String   | Name or ID of the surface.                                                                    |
| `impressions`        | Object   | Estimated impressions bounds (`lowerBound`, `upperBound`) for this surface.                   |

**`variations[]` subfields:**

| Field            | Type     | Description                                                                                   |
|------------------|----------|-----------------------------------------------------------------------------------------------|
| `adTitle`        | String   | Title or headline of the ad.                                                                  |
| `adImage`        | String   | URL or identifier for the ad image (may be a URL or a domain).                               |
| `adDescription`  | String   | Description text of the ad.                                                                   |
| `advertiser`     | String   | Name of the advertiser (may be null).                                                        |
| `storeType`      | String   | Type of store (if available, otherwise null).                                                 |
| `callToAction`   | String   | Call-to-action text (if available, otherwise null).                                           |
| `categories`     | Array    | List of product or ad categories (may be empty).                                              |
| `format`         | String   | Format of the ad creative, e.g., "IMAGE".                                                     |

***

### Key Notes

1. **Timestamps**: Dates are in ISO 8601 format (e.g., `2024-12-20T00:00:00Z`)
2. **Media URLs**: May expire quickly - download assets soon after scraping
3. **Ad Formats**: Supported formats include IMAGE, VIDEO, and TEXT
4. **Data Availability**: Some fields may be empty if not provided by Google

Key fields will include:

- Ad creative (text/images/video URLs)
- Advertiser details
- Impressions estimate (if available)
- Active dates
- Targeting parameters
- Ad format

***

### Why This Scraper?

- **Compliance**: Follows Google’s rate limits and robots.txt
- **Stealth**: Residential proxies + random delays mimic human behavior
- **Depth**: Captures 15+ data points per ad
- **Future-Proof**: Handles Google’s frequent UI/API changes

***

### Use Cases

- Track competitor ad strategies in real-time
- Analyze seasonal campaign patterns
- Archive political or regulated ads for transparency
- Monitor brand or trademark usage in Google ads

***

### Explore More Scrapers

If you found this Apify Google Ads Transparency Scraper useful, be sure to check out our other powerful scrapers and actors at [memo23's Apify profile](https://apify.com/memo23). We offer a wide range of tools to enhance your web scraping and automation needs across various platforms and use cases.

### Support

- For issues or feature requests, please use the [Issues](https://console.apify.com/actors/VQOu2GOHbeRAoOSGi/issues) section of this actor.
- If you need customization or have questions, feel free to contact the author:
  - Author's website: <https://muhamed-didovic.github.io/>
  - Email: <muhamed.didovic@gmail.com>

### Additional Services

- Request customization or whole dataset: <muhamed.didovic@gmail.com>
- If you need anything else scraped, or this actor customized, email: <muhamed.didovic@gmail.com>
- For API services of this scraper (no Apify fee, just usage fee for the API), contact: <muhamed.didovic@gmail.com>
- Email: muhamed.didovic@gmail.com

# Actor input Schema

## `searchQuery` (type: `string`):

Type a domain (e.g. `temu.com`), an advertiser name/keyword (e.g. `nike`), or an advertiser ID (e.g. `AR13288476527828631553`). The scraper auto-detects the type. Leave empty to use the `Start URLs` field instead.

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

Country the ads were shown in. Defaults to `anywhere` (all regions).

## `format` (type: `string`):

Filter by creative format. Leave `ALL` to include every format.

## `platform` (type: `string`):

Filter by Google surface. Leave `ALL` to include every platform.

## `dateFrom` (type: `string`):

Only include ads first shown on or after this date. Leave empty for no lower bound.

## `dateTo` (type: `string`):

Only include ads last shown on or before this date. Leave empty for no upper bound.

## `startUrls` (type: `array`):

Power-user override. If left empty, URLs are built from the `Search query` + `Region` + `Format` + `Platform` + `Date` fields above. Direct format: `https://adstransparency.google.com/?region=US&domain=temu.com&format=IMAGE`.

## `maxItems` (type: `integer`):

Maximum number of items that will be scraped per crawl.

## `minDelay` (type: `integer`):

Minimum delay to wait before calling the new items from API.

## `maxDelay` (type: `integer`):

Maximum delay to wait before calling the new items from API

## `maxConcurrency` (type: `integer`):

Maximum number of pages that can be processed at the same time.

## `minConcurrency` (type: `integer`):

Minimum number of pages that will be processed at the same time.

## `maxRequestRetries` (type: `integer`):

Number of times the crawler will retry a failed request before giving up.

## `downloadAssets` (type: `boolean`):

Fetch each variation's image / video bytes and store them in your default key-value store. The original `image` / `videoUrl` is replaced with a public Apify KVS URL; original URLs are preserved as `originalImage` / `originalVideoUrl`.

## `downloadPreviews` (type: `boolean`):

Fetch the top-level `previewUrl` thumbnail and store it in your default key-value store. Original URL is preserved as `originalPreviewUrl`.

## `maxAssetSizeKb` (type: `integer`):

Skip downloading assets larger than this. Default 10240 (10 MB) — protects against accidental download of multi-GB videos.

## `proxy` (type: `object`):

Specifies proxy servers that will be used by the scraper in order to hide its origin.<br><br>For details, see <a href='https://apify.com/apify/web-scraper#proxy-configuration' target='_blank' rel='noopener'>Proxy configuration</a> in README.

## Actor input object example

```json
{
  "searchQuery": "temu.com",
  "region": "anywhere",
  "format": "ALL",
  "platform": "ALL",
  "dateFrom": "2024-01-01",
  "dateTo": "2024-12-31",
  "maxItems": 100,
  "minDelay": 5,
  "maxDelay": 10,
  "maxConcurrency": 10,
  "minConcurrency": 1,
  "maxRequestRetries": 100,
  "downloadAssets": false,
  "downloadPreviews": false,
  "maxAssetSizeKb": 10240,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (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 = {
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/google-ads-transparency-scraper-ppe").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 = { "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    } }

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

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

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

```

## CLI example

```bash
echo '{
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call memo23/google-ads-transparency-scraper-ppe --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=memo23/google-ads-transparency-scraper-ppe",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/ITxHYlvd5Ti6p2Yrs/builds/eRcJM6lqvSz4YgMlC/openapi.json
