Campaigns

Stored read: List campaigns

Available on: Meta TikTok Google Ads OpenAI

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.

get/observe/campaigns

Request

  • Base URL: https://api.adcrunch.dev
  • URL: https://api.adcrunch.dev/observe/campaigns
  • Auth: HTTP bearer

Query parameters

idsstring

Ids to filter on, separated by commas. An id is the bare id its provider gives.

cursorstring

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.

limitinteger

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.

advertiserIdstring

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.

'meta'
OR
'tiktok'
OR
'snapchat'
OR
'gads'
OR
'dv360'
OR
'x'
OR
'openai'
status'ACTIVE' | 'PAUSED' | 'DELETED' | 'ARCHIVED'

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.

nextCursorstring

Send this value as cursor to get the next page. It is absent on the last page.

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.