Stored read: List ads
Lists the ads of every ad account your organization connects, across the providers, newest first.
One concept, two words
An ad is an ad at Meta and TikTok. At Google Ads it is an ad_group_ad — the link resource that joins an ad to an ad group, whose id is the composite {adGroupId}~{adId}. AdCrunch stores that link as the leaf and does not model a separate shared ad, so a Google row answers the composite id. Every row keeps its own provider’s word in type.
Narrowing
Two parents, and they are not the same question. adGroupId reads the ads of one ad group. campaignId reads every ad of a campaign, whatever ad group holds it — a grandparent, which the ad group filter cannot express. Send both to narrow twice.
What is not here
Performance Max campaigns have no ads. Google’s automation assembles placements from an asset group, so nothing below a Performance Max campaign appears here.
Request
- Base URL: https://api.adcrunch.dev
- URL: https://api.adcrunch.dev/observe/ads
- Auth: HTTP bearer
Query parameters
Ids to filter on, separated by commas. An id is the bare id its provider gives.
The nextCursor of the previous page. Omit it to get the first page. Send it with no change, and with the same filters as the request that answered it: a cursor from a different query gets a 400 invalid_cursor. Do not build or change a cursor.
The greatest number of rows on the page, from 1 to 500. The default is 100. A greater value gets a 400, with error of invalid_request.
Read one ad account from what AdCrunch holds, prefixed acc_. One your organization does not own answers an empty list rather than a failure. To ask the provider instead, put the advertiser in the path.
Read one status, normalized across the providers. TikTok ENABLE and DISABLE are read here as ACTIVE and PAUSED.
Read only what this campaign holds. Send the bare id its provider gives, which is the campaignId every row answers.
Read only what this ad group holds. Send the bare id its provider gives, which is the adGroupId every row answers.
Response
The matching ads, and how many there are in all. Each row keeps its provider’s own type: ad, or ad_group_ad at Google Ads.
Example response
{
"data": [
{
"adGroupId": "169283746152",
"advertiserId": "acc_4829301756",
"campaignId": "20481523697",
"createdAt": 1789610000000,
"createdTime": null,
"currency": "EUR",
"deletedAt": null,
"id": "169283746152~712398456012",
"name": "Responsive search ad — winter",
"path": "20481523697/169283746152/169283746152~712398456012",
"provider": "gads",
"status": "ACTIVE",
"type": "ad_group_ad",
"updatedAt": null,
"updatedTime": null
}
],
"nextCursor": "eyJwIjpbMTc4OTYxMDAwMDAwMCwiZ2FkcyIsImFkX2dyb3VwX2FkIiwiMTY5MjgzNzQ2MTUyfjcxMjM5ODQ1NjAxMiJdLCJxIjoiZTBmZ2hvbDFrYSJ9"
}Changes
No recorded changes to this operation across all 1 revision of this API.