Company Ads
GET/v1/google/company/ads1 credit
Returns the ads an advertiser runs on Google, from the Google Ads Transparency Center: 40 per page, each with format, advertiser, domain, preview image, ad URL and first and last shown dates.
01Query parameters
| Name | Type | Description |
|---|---|---|
| domainoptional | string | Advertiser's website domain, e.g. `lululemon.com`. One of `domain` or `advertiser_id` is required, unless `topic` is `political`. |
| advertiser_idoptional | string | Google advertiser id, e.g. `AR01614014350098432001`; takes precedence over `domain`. One of `domain` or `advertiser_id` is required, unless `topic` is `political`. |
| topicoptional | string | `political` lists political ads; it then needs `region` and works without `domain` or `advertiser_id`.Default: allAccepted values:allpolitical |
| regionoptional | string | Two-letter country code, e.g. `US` or `AU`; `anywhere` or no value means every region. |
| start_dateoptional | string | Only ads shown on or after this date, `YYYY-MM-DD`. |
| end_dateoptional | string | Only ads shown on or before this date, `YYYY-MM-DD`. Must not be before `start_date`. |
| platformoptional | string | Only ads shown on this Google surface.Accepted values:google_mapsgoogle_playgoogle_searchgoogle_shoppingyoutube |
| formatoptional | string | Only ads of this format.Accepted values:textimagevideo |
| get_ad_detailsoptional | boolean | `true` adds each ad's full details (impressions, spend, targeting, regions, variations), as returned by the Ad route. Costs 25 credits per page.Default: false |
| cursoroptional | string | The `cursor` value of the previous answer, to get the next page. |
02Pricing
Without `get_ad_details` a page costs 1 credit. With `get_ad_details=true` it costs 25 credits, reserved before the lookups: your balance must hold at least 25 credits, and nothing is charged if the page has no ads or the call fails.
03Request
curl "https://api.scrapesocial.ai/v1/google/company/ads?domain=lululemon.com" \ -H "x-api-key: $SCRAPESOCIAL_KEY"
04Responses
Real answers from the API. Lists are shortened to 2 items.
GET /v1/google/company/ads?domain=lululemon.com
{
"success": true,
"credits_remaining": 4980,
"credits_charged": 1,
"ads": [
{
"advertiserId": "AR01614014350098432001",
"creativeId": "CR08315718256048472065",
"format": "text",
"adUrl": "https://adstransparency.google.com/advertiser/AR01614014350098432001/creative/CR08315718256048472065",
"advertiserName": "lululemon athletica canada inc.",
"domain": "lululemon.com",
"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/15451929151474865650",
"firstShown": "2026-08-11T21:50:24.000Z",
"lastShown": "2026-10-25T16:51:51.000Z"
},
{
"advertiserId": "AR01614014350098432001",
"creativeId": "CR17441627932949741569",
"format": "image",
"adUrl": "https://adstransparency.google.com/advertiser/AR01614014350098432001/creative/CR17441627932949741569",
"advertiserName": "lululemon athletica canada inc.",
"domain": "lululemon.com",
"imageUrl": null,
"firstShown": "2026-07-16T18:54:34.000Z",
"lastShown": "2026-10-25T16:51:04.000Z"
}
],
"cursor": "CgoAP7zmhU2Ya86nEhDiZmW7pVmRjmE2p%2BIAAAAAGgn8%2BGaH%2BIE0kTk%3D",
"number_of_ads_estimate": 20000
}Common to every endpoint
Any route can answer these: a missing or wrong key, no credits left, the platform not answering, or a failure on our side. None of them costs credits.
GET /v1/cosmos/profile?handle=design
{
"success": false,
"message": "Invalid API key"
}05Notes
40 ads per page. The answer's `cursor` is passed back as `cursor` for the next page, and is null on the last page. `number_of_ads_estimate` is Google's estimate of the total. `imageUrl` is null for ads that have no image preview. A domain or advertiser without ads gives a 200 with an empty `ads` list for 0 credits. Invalid values (region, dates, platform, format, cursor) are a free 400. Pages with `get_ad_details=true` take noticeably longer.
06Errors & credits
Every error has success: false, a real HTTP status and costs no credits.
400missing_parameter
A required parameter is missing or invalid.
403private_account
The account is private or age-restricted.
404not_found
No such account.
503upstream_error
The platform did not answer; retry shortly.