Vexaloom Labs

Google Ads Transparency Creative Lookup by Domain

Look up an advertiser's live and recent Google ads by landing-page domain or advertiser ID, with ad format, preview creative, and first/last shown dates, filterable by region, platform, and date.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringrequiredSearch individual ads, or build one row per advertiser for a domain/brand (ad-check).
searchTermsarrayoptionalExamples: `nike.com`, `Nike`, `AR16735076323512287233`, or an `adstransparency.google.com` URL. Brand names are resolved to the brand's website first.
regionstringoptionalCountry/market to search. `Anywhere` searches all regions.
Show all input fields
FieldTypeRequiredDescription
modestringrequiredSearch individual ads, or build one row per advertiser for a domain/brand (ad-check).
searchTermsarrayoptionalExamples: `nike.com`, `Nike`, `AR16735076323512287233`, or an `adstransparency.google.com` URL. Brand names are resolved to the brand's website first.
regionstringoptionalCountry/market to search. `Anywhere` searches all regions.
adFormatstringoptionalRestrict to one creative format.
platformstringoptionalRestrict to one Google surface. Platform filtering applies to ads shown from September 2023 onward.
dateFromstringoptionalOnly ads shown on or after this date. Leave empty for no lower bound.
dateTostringoptionalOnly ads shown on or before this date. Leave empty for no upper bound.
maxItemsintegeroptionalTotal records to return across all search terms.
maxItemsPerTermintegeroptionalOptional per-term cap. Set to 0 for no per-term cap.
includeDetailsbooleanoptionalFetch every creative's variants, per-country run dates, EU impression ranges, targeting, advertiser identity, and any available ad copy. Adds one or two requests per ad.

Download the published input schema

View complete JSON
{
  "description": "Find ads by domain, brand, advertiser ID, or Transparency Center URL, with optional detail enrichment.",
  "properties": {
    "adFormat": {
      "default": "ALL",
      "description": "Restrict to one creative format.",
      "editor": "select",
      "enum": [
        "ALL",
        "TEXT",
        "IMAGE",
        "VIDEO",
        ""
      ],
      "enumTitles": [
        "All formats",
        "Text",
        "Image",
        "Video",
        "All formats (legacy)"
      ],
      "prefill": "ALL",
      "title": "Ad format",
      "type": "string"
    },
    "dateFrom": {
      "description": "Only ads shown on or after this date. Leave empty for no lower bound.",
      "editor": "textfield",
      "title": "Shown from (YYYY-MM-DD)",
      "type": "string"
    },
    "dateTo": {
      "description": "Only ads shown on or before this date. Leave empty for no upper bound.",
      "editor": "textfield",
      "title": "Shown to (YYYY-MM-DD)",
      "type": "string"
    },
    "includeDetails": {
      "default": true,
      "description": "Fetch every creative's variants, per-country run dates, EU impression ranges, targeting, advertiser identity, and any available ad copy. Adds one or two requests per ad.",
      "prefill": false,
      "title": "Include full ad details",
      "type": "boolean"
    },
    "maxItems": {
      "default": 100,
      "description": "Total records to return across all search terms.",
      "maximum": 100000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max records",
      "type": "integer"
    },
    "maxItemsPerTerm": {
      "default": 0,
      "description": "Optional per-term cap. Set to 0 for no per-term cap.",
      "maximum": 100000,
      "minimum": 0,
      "prefill": 0,
      "title": "Max records per search term",
      "type": "integer"
    },
    "mode": {
      "default": "search",
      "description": "Search individual ads, or build one row per advertiser for a domain/brand (ad-check).",
      "editor": "select",
      "enum": [
        "search",
        "advertisers",
        "byQuery",
        "byAdvertiserId"
      ],
      "enumTitles": [
        "Search ads",
        "Ad-check: one row per advertiser",
        "Legacy: search by query",
        "Legacy: search by advertiser ID"
      ],
      "prefill": "search",
      "title": "Mode",
      "type": "string"
    },
    "platform": {
      "default": "ALL",
      "description": "Restrict to one Google surface. Platform filtering applies to ads shown from September 2023 onward.",
      "editor": "select",
      "enum": [
        "ALL",
        "SEARCH",
        "MAPS",
        "SHOPPING",
        "PLAY",
        "YOUTUBE",
        ""
      ],
      "enumTitles": [
        "All platforms",
        "Google Search",
        "Google Maps",
        "Google Shopping",
        "Google Play",
        "YouTube",
        "All platforms (legacy)"
      ],
      "prefill": "ALL",
      "title": "Platform",
      "type": "string"
    },
    "region": {
      "default": "US",
      "description": "Country/market to search. `Anywhere` searches all regions.",
      "editor": "select",
      "enum": [
        "ANYWHERE",
        "AD",
        "AE",
        "AF",
        "AG",
        "AI",
        "AL",
        "AM",
        "AO",
        "AQ",
        "AR",
        "AS",
        "AT",
        "AU",
        "AW",
        "AX",
        "AZ",
        "BA",
        "BB",
        "BD",
        "BE",
        "BF",
        "BG",
        "BH",
        "BI",
        "BJ",
        "BL",
        "BM",
        "BN",
        "BO",
        "BQ",
        "BR",
        "BS",
        "BT",
        "BV",
        "BW",
        "BY",
        "BZ",
        "CA",
        "CC",
        "CD",
        "CF",
        "CG",
        "CH",
        "CI",
        "CK",
        "CL",
        "CM",
        "CN",
        "CO",
        "CR",
        "CU",
        "CV",
        "CW",
        "CX",
        "CY",
        "CZ",
        "DE",
        "DJ",
        "DK",
        "DM",
        "DO",
        "DZ",
        "EC",
        "EE",
        "EG",
        "EH",
        "ER",
        "ES",
        "ET",
        "FI",
        "FJ",
        "FK",
        "FM",
        "FO",
        "FR",
        "GA",
        "GB",
        "GD",
        "GE",
        "GF",
        "GG",
        "GH",
        "GI",
        "GL",
        "GM",
        "GN",
        "GP",
        "GQ",
        "GR",
        "GS",
        "GT",
        "GU",
        "GW",
        "GY",
        "HK",
        "HM",
        "HN",
        "HR",
        "HT",
        "HU",
        "ID",
        "IE",
        "IL",
        "IM",
        "IN",
        "IO",
        "IQ",
        "IR",
        "IS",
        "IT",
        "JE",
        "JM",
        "JO",
        "JP",
        "KE",
        "KG",
        "KH",
        "KI",
        "KM",
        "KN",
        "KP",
        "KR",
        "KW",
        "KY",
        "KZ",
        "LA",
        "LB",
        "LC",
        "LI",
        "LK",
        "LR",
        "LS",
        "LT",
        "LU",
        "LV",
        "LY",
        "MA",
        "MC",
        "MD",
        "ME",
        "MF",
        "MG",
        "MH",
        "MK",
        "ML",
        "MM",
        "MN",
        "MO",
        "MP",
        "MQ",
        "MR",
        "MS",
        "MT",
        "MU",
        "MV",
        "MW",
        "MX",
        "MY",
        "MZ",
        "NA",
        "NC",
        "NE",
        "NF",
        "NG",
        "NI",
        "NL",
        "NO",
        "NP",
        "NR",
        "NU",
        "NZ",
        "OM",
        "PA",
        "PE",
        "PF",
        "PG",
        "PH",
        "PK",
        "PL",
        "PM",
        "PN",
        "PR",
        "PS",
        "PT",
        "PW",
        "PY",
        "QA",
        "RE",
        "RO",
        "RS",
        "RU",
        "RW",
        "SA",
        "SB",
        "SC",
        "SD",
        "SE",
        "SG",
        "SH",
        "SI",
        "SJ",
        "SK",
        "SL",
        "SM",
        "SN",
        "SO",
        "SR",
        "SS",
        "ST",
        "SV",
        "SX",
        "SY",
        "SZ",
        "TC",
        "TD",
        "TF",
        "TG",
        "TH",
        "TJ",
        "TK",
        "TL",
        "TM",
        "TN",
        "TO",
        "TR",
        "TT",
        "TV",
        "TW",
        "TZ",
        "UA",
        "UG",
        "UM",
        "US",
        "UY",
        "UZ",
        "VA",
        "VC",
        "VE",
        "VG",
        "VI",
        "VN",
        "VU",
        "WF",
        "WS",
        "YE",
        "YT",
        "ZA",
        "ZM",
        "ZW"
      ],
      "enumTitles": [
        "Anywhere",
        "Andorra",
        "United Arab Emirates",
        "Afghanistan",
        "Antigua and Barbuda",
        "Anguilla",
        "Albania",
        "Armenia",
        "Angola",
        "Antarctica",
        "Argentina",
        "American Samoa",
        "Austria",
        "Australia",
        "Aruba",
        "Åland Islands",
        "Azerbaijan",
        "Bosnia and Herzegovina",
        "Barbados",
        "Bangladesh",
        "Belgium",
        "Burkina Faso",
        "Bulgaria",
        "Bahrain",
        "Burundi",
        "Benin",
        "Saint Barthélemy",
        "Bermuda",
        "Brunei Darussalam",
        "Bolivia, Plurinational State of",
        "Bonaire, Sint Eustatius and Saba",
        "Brazil",
        "Bahamas",
        "Bhutan",
        "Bouvet Island",
        "Botswana",
        "Belarus",
        "Belize",
        "Canada",
        "Cocos (Keeling) Islands",
        "Congo, The Democratic Republic of the",
        "Central African Republic",
        "Congo",
        "Switzerland",
        "Côte d'Ivoire",
        "Cook Islands",
        "Chile",
        "Cameroon",
        "China",
        "Colombia",
        "Costa Rica",
        "Cuba",
        "Cabo Verde",
        "Curaçao",
        "Christmas Island",
        "Cyprus",
        "Czechia",
        "Germany",
        "Djibouti",
        "Denmark",
        "Dominica",
        "Dominican Republic",
        "Algeria",
        "Ecuador",
        "Estonia",
        "Egypt",
        "Western Sahara",
        "Eritrea",
        "Spain",
        "Ethiopia",
        "Finland",
        "Fiji",
        "Falkland Islands (Malvinas)",
        "Micronesia, Federated States of",
        "Faroe Islands",
        "France",
        "Gabon",
        "United Kingdom",
        "Grenada",
        "Georgia",
        "French Guiana",
        "Guernsey",
        "Ghana",
        "Gibraltar",
        "Greenland",
        "Gambia",
        "Guinea",
        "Guadeloupe",
        "Equatorial Guinea",
        "Greece",
        "South Georgia and the South Sandwich Islands",
        "Guatemala",
        "Guam",
        "Guinea-Bissau",
        "Guyana",
        "Hong Kong",
        "Heard Island and McDonald Islands",
        "Honduras",
        "Croatia",
        "Haiti",
        "Hungary",
        "Indonesia",
        "Ireland",
        "Israel",
        "Isle of Man",
        "India",
        "British Indian Ocean Territory",
        "Iraq",
        "Iran, Islamic Republic of",
        "Iceland",
        "Italy",
        "Jersey",
        "Jamaica",
        "Jordan",
        "Japan",
        "Kenya",
        "Kyrgyzstan",
        "Cambodia",
        "Kiribati",
        "Comoros",
        "Saint Kitts and Nevis",
        "Korea, Democratic People's Republic of",
        "Korea, Republic of",
        "Kuwait",
        "Cayman Islands",
        "Kazakhstan",
        "Lao People's Democratic Republic",
        "Lebanon",
        "Saint Lucia",
        "Liechtenstein",
        "Sri Lanka",
        "Liberia",
        "Lesotho",
        "Lithuania",
        "Luxembourg",
        "Latvia",
        "Libya",
        "Morocco",
        "Monaco",
        "Moldova, Republic of",
        "Montenegro",
        "Saint Martin (French part)",
        "Madagascar",
        "Marshall Islands",
        "North Macedonia",
        "Mali",
        "Myanmar",
        "Mongolia",
        "Macao",
        "Northern Mariana Islands",
        "Martinique",
        "Mauritania",
        "Montserrat",
        "Malta",
        "Mauritius",
        "Maldives",
        "Malawi",
        "Mexico",
        "Malaysia",
        "Mozambique",
        "Namibia",
        "New Caledonia",
        "Niger",
        "Norfolk Island",
        "Nigeria",
        "Nicaragua",
        "Netherlands",
        "Norway",
        "Nepal",
        "Nauru",
        "Niue",
        "New Zealand",
        "Oman",
        "Panama",
        "Peru",
        "French Polynesia",
        "Papua New Guinea",
        "Philippines",
        "Pakistan",
        "Poland",
        "Saint Pierre and Miquelon",
        "Pitcairn",
        "Puerto Rico",
        "Palestine, State of",
        "Portugal",
        "Palau",
        "Paraguay",
        "Qatar",
        "Réunion",
        "Romania",
        "Serbia",
        "Russian Federation",
        "Rwanda",
        "Saudi Arabia",
        "Solomon Islands",
        "Seychelles",
        "Sudan",
        "Sweden",
        "Singapore",
        "Saint Helena, Ascension and Tristan da Cunha",
        "Slovenia",
        "Svalbard and Jan Mayen",
        "Slovakia",
        "Sierra Leone",
        "San Marino",
        "Senegal",
        "Somalia",
        "Suriname",
        "South Sudan",
        "Sao Tome and Principe",
        "El Salvador",
        "Sint Maarten (Dutch part)",
        "Syrian Arab Republic",
        "Eswatini",
        "Turks and Caicos Islands",
        "Chad",
        "French Southern Territories",
        "Togo",
        "Thailand",
        "Tajikistan",
        "Tokelau",
        "Timor-Leste",
        "Turkmenistan",
        "Tunisia",
        "Tonga",
        "Türkiye",
        "Trinidad and Tobago",
        "Tuvalu",
        "Taiwan, Province of China",
        "Tanzania, United Republic of",
        "Ukraine",
        "Uganda",
        "United States Minor Outlying Islands",
        "United States",
        "Uruguay",
        "Uzbekistan",
        "Holy See (Vatican City State)",
        "Saint Vincent and the Grenadines",
        "Venezuela, Bolivarian Republic of",
        "Virgin Islands, British",
        "Virgin Islands, U.S.",
        "Viet Nam",
        "Vanuatu",
        "Wallis and Futuna",
        "Samoa",
        "Yemen",
        "Mayotte",
        "South Africa",
        "Zambia",
        "Zimbabwe"
      ],
      "prefill": "US",
      "title": "Region",
      "type": "string"
    },
    "searchTerms": {
      "description": "Examples: `nike.com`, `Nike`, `AR16735076323512287233`, or an `adstransparency.google.com` URL. Brand names are resolved to the brand's website first.",
      "editor": "stringList",
      "prefill": [
        "nike.com"
      ],
      "title": "Domains, brands, advertiser IDs, or URLs",
      "type": "array"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Google Ads Transparency Center Scraper Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
adsstringoptionalDataset containing ad creative records and, in ad-check mode, advertiser summary records.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Ad creatives and advertiser summaries from Google Ads Transparency Center: identity, formats, run dates, variants, per-country reach, EU impressions, and targeting.",
  "properties": {
    "ads": {
      "description": "Dataset containing ad creative records and, in ad-check mode, advertiser summary records.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Ads and advertisers",
      "type": "string"
    }
  },
  "title": "Google Ads Transparency Creative Lookup by Domain Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "advertisers": {
      "display": {
        "component": "table",
        "properties": {}
      },
      "title": "Advertisers",
      "transformation": {
        "fields": [
          "advertiserName",
          "advertiserCountry",
          "advertiserVerified",
          "approxAdCountLow",
          "approxAdCountHigh",
          "matchedTerm",
          "scannedAds"
        ]
      }
    },
    "overview": {
      "display": {
        "component": "table",
        "properties": {}
      },
      "title": "Ads",
      "transformation": {
        "fields": [
          "advertiserName",
          "format",
          "firstShownAt",
          "lastShownAt",
          "daysShown",
          "destinationDomain",
          "advertiserVerified",
          "creativeUrl"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

Google Ads Transparency Creative Lookup by Domain

Research the ads a company runs through Google without a Google Ads account. Search the public Ads Transparency Center by landing-page domain, brand name, exact advertiser ID, or pasted URL, and export creatives with run dates, destination domains, variants, per-country activity, EU impression ranges, audience targeting, and verified advertiser identity. No login, no API key, no cookies.

What this actor does

  • Search by domain, brand, advertiser ID, or URL in one batch — paste nike.com, Nike, AR16735076323512287233, or a Transparency Center link
  • Full result sets, not the first page — follows Google's continuation cursor to the end of the result set or your chosen limit
  • Ad details on demand — every creative variation, per-country run dates, EU impression ranges by country and platform, audience-selection categories, and advertiser country, legal name (when published), and verification
  • Ad-check mode — turn a domain or brand into one row per advertiser found, with verification status and, for exact advertiser-ID lookups, Google's approximate ad-count range
  • Filters: 249 countries plus Anywhere, text/image/video, Search/Maps/Shopping/Play/YouTube, and a shown-during date window
  • Empty fields are omitted — no nulls or placeholder strings

Output per ad

  • advertiserId, advertiserName, advertiserCountry, advertiserLegalName, advertiserVerified
  • creativeId, format — Text, Image, or Video
  • firstShownAt, lastShownAt — Google's search-index first/last activity in ISO-8601 UTC, plus epoch timestamps; per-country dates are in regions[]. Direct creative URLs omit firstShownAt because the detail endpoint has no first-shown date
  • daysShown — Google's count of days the creative has been active (omitted for direct creative URLs)
  • destinationDomain, destinationUrl — where the ad clicks through to, when Google exposes it
  • headline, description, callToAction — when the creative stores readable copy
  • youtubeVideoId, youtubeUrl, videoThumbnailUrl — for video creatives
  • previewImageUrl, previewWidth, previewHeight, previewContentUrl — static image or rendered preview
  • variationCount, variations[] — every image/content variation Google returns
  • regions[] — per-country last-shown dates for every ad, plus first-shown dates, impression ranges, and platform breakdown where Google publishes them (mostly EU/EEA and Turkey)
  • impressionsLow, impressionsHigh, platformsShown — Google's EU/EEA totals; Turkey and other per-country figures are in regions[]. Google sometimes omits a bound, so each bound is returned only when published
  • audienceSelection — demographics, geographic locations, contextual signals, customer lists, and topics, each marked included/excluded
  • creativeUrl, advertiserUrl, region, searchTerm, matchedVia
  • recordType: "ad", scrapedAt

Output per advertiser (mode = advertisers)

  • advertiserId, advertiserName, advertiserCountry, advertiserLegalName, advertiserVerified
  • approxAdCountLow, approxAdCountHigh — Google's stated range for exact advertiser-ID lookups; omitted for domain/brand ad-check scans, which inspect up to 500 ads
  • scannedAds — how many ads were inspected to find the advertisers in domain/brand ad-check mode; omitted for exact advertiser-ID lookups
  • matchedTerm, matchedVia, matchedDomain
  • advertiserUrl, region, recordType: "advertiser", scrapedAt

Input

Field Type Default Description
mode string search search for ad records; advertisers for one row per advertiser
searchTerms array – Domains, brand names, advertiser IDs, or Transparency Center URLs
region string US Country code or ANYWHERE
adFormat string ALL ALL, TEXT, IMAGE, VIDEO
platform string ALL ALL, SEARCH, MAPS, SHOPPING, PLAY, YOUTUBE
dateFrom string – Start of the shown-during window (YYYY-MM-DD)
dateTo string – End of the shown-during window (YYYY-MM-DD); an ad qualifies if it ran at any point in the window, so ads still running after this date are not excluded
maxItems integer 100 Total records to return (1–100,000)
maxItemsPerTerm integer 0 Per-term cap; 0 = no per-term cap
includeDetails boolean true Fetch variants, per-country reach, EU impressions, targeting, advertiser identity, and available copy

Example: recent ads for a domain

{
  "mode": "search",
  "searchTerms": ["nike.com"],
  "region": "US",
  "maxItems": 100,
  "includeDetails": true
}

Example: brand ads in Germany, video only

{
  "mode": "search",
  "searchTerms": ["Zalando"],
  "region": "DE",
  "adFormat": "VIDEO",
  "dateFrom": "2026-01-01",
  "maxItems": 50
}

Example: exact advertiser IDs across every region

{
  "mode": "search",
  "searchTerms": ["AR16735076323512287233", "AR15589870916631265281"],
  "region": "ANYWHERE",
  "maxItemsPerTerm": 200,
  "maxItems": 500
}

Example: ad-check a list of competitors

{
  "mode": "advertisers",
  "searchTerms": ["nike.com", "adidas.com", "hellofresh.com"],
  "region": "US",
  "maxItems": 30
}

Use cases

  • Competitive creative research — collect a swipe file of live and recent ads, with run dates and destination pages
  • Ad-check and lead generation — find which advertisers send clicks to a domain, with legal names and verification badges
  • EU reach analysis — compare impression ranges by country and platform for DSA-covered ads
  • Campaign longevity — use daysShown and lastShownAt to separate long-running winners from short tests
  • Brand safety and compliance — verify who is paying for ads that point at your domain
  • Market expansion — compare a brand's creative set across countries

FAQ

Is this the official Google Ads API? No. It reads the public Ads Transparency Center, the same data any visitor can browse, without a Google Ads account, developer project, or API key.

Do I need to paste a domain, a brand name, or an advertiser ID? Any of the three works. Brand names are resolved to the brand's website first because Google's advertiser-name lookup often leads with small regional accounts that share the name. Use an exact AR... ID when you need one specific account.

Why does one domain return ads from several advertisers? A domain search returns every ad that points at that domain, including partners, resellers, and agencies. Use mode=advertisers to see the accounts involved, or search an AR... ID to isolate one account.

Why are headline, description, or CTA missing on some ads? Google stores many search text ads only as a picture of the ad. The actor returns readable copy when Google exposes it, and omits the field when the creative has no machine-readable text.

Why are impressions missing for some ads? Google publishes impression ranges for some ads shown in the EU/EEA and Turkey, after a delay. Coverage is partial and varies by market and ad: some ads have run dates but no impression figures even after three months. Per-country figures are in regions[]; the top-level totals cover the EU/EEA only.

What does advertiserVerified mean? It reflects Google's advertiser identity verification badge and is returned whenever the advertiser lookup succeeds. false means Google shows the advertiser as not verified.

Why is destinationUrl sometimes missing? Google does not expose a landing URL on every creative. destinationDomain comes from the search result when you search by domain; the full URL is added when the creative preview contains it.

Can I search all countries at once? Yes — set region to ANYWHERE. Per-ad regions[] then shows where each creative ran, with EU impression data where Google publishes it.

Does the actor include age-restricted ads? No. Google requires a signed-in account to show age-restricted creatives, and this actor never uses cookies or logins.

Is this affiliated with Google? No. It is an independent tool that reads public transparency data and is not endorsed by Google.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build QYKqbZf5c4yCTduA0. Documentation is regenerated from the default published build; private drafts are not included.