Stored read: List campaigns
Lists the campaigns of every ad account your organization connects, across the providers, newest first.
A campaign is a campaign at every provider, so this reads them all in one call. Send provider to read one platform.
Paging
limit counts rows of the answer itself, not rows of each advertiser, so a limit of 10 answers at most 10 rows however many advertisers you own. When the answer holds nextCursor, more rows exist: send it back as cursor to get the next page. The row that AdCrunch stored last comes first, so a campaign that arrives while you page does not move a page you already read.
Where a campaign comes from
This is a stored read: it answers what AdCrunch holds, which its ingestion refreshes. A campaign a person changed in the provider’s own interface a moment ago may not be here yet — name one advertiser in the path, /observe/{advertiserId}/campaigns, to read the provider itself.
Budget and objective
Every row carries its budget, in whole units of its currency — the unit of spend on an Insight — with budgetType and budgetLevel. budgetLevel says whether the budget lives on the campaign or on its ad groups; when it is ad_group, read /observe/ad-groups for the amounts. objective is the provider’s own word, and it is null on a Google Ads campaign, which has none.
A row carries the fields AdCrunch normalizes. For the provider’s own payload, read one campaign by id.
Request
- Base URL: https://api.adcrunch.dev
- URL: https://api.adcrunch.dev/observe/campaigns
- 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.
Response
The matching campaigns, and how many there are in all.
Example response
{
"data": [
{
"adsetBudgetSharing": null,
"advertiserId": "acc_1203456789012345",
"bidStrategy": null,
"budget": 250,
"budgetLevel": "campaign",
"budgetType": "daily",
"createdAt": 1789610000000,
"createdTime": 1789600000000,
"currency": "EUR",
"deletedAt": null,
"id": "120210000000000",
"name": "Spring sale — prospecting",
"objective": "OUTCOME_SALES",
"path": "120210000000000",
"provider": "meta",
"status": "ACTIVE",
"type": "campaign",
"updatedAt": 1790000000000,
"updatedTime": 1789900000000
}
],
"nextCursor": "eyJwIjpbMTc4OTYxMDAwMDAwMCwibWV0YSIsImNhbXBhaWduIiwiMTIwMjEwMDAwMDAwMDAwIl0sInEiOiIxaDV4cDRhcnZ4bSJ9"
}Changes
No recorded changes to this operation across all 1 revision of this API.