Ad Accounts

Read an ad account's campaigns and ad sets live

Changed on

Reads an ad account's campaigns and ad sets straight from Meta or TikTok, so checks like budget limits see current values.

Reads the campaigns and ad sets of one Meta ad account or TikTok advertiser live from the platform, so it is cheap enough to run before every write: for example a per-ad-account spend ceiling that must see the current daily / lifetime budget rather than the synced copy. On Meta it is a single Graph call per request (the account's /campaigns and /adsets edges, filtered by effective_status); on TikTok one campaign/get and one adgroup/get page (TikTok ad groups are returned as adSets).

Live vs synced. GET /v1/ads/campaigns and GET /v1/ads/ad-sets serve Zernio's synced store, refreshed by background sync (typically 15 to 60 minutes behind Meta), and their live=true re-reads only the on/off switches of at most 20 objects. This endpoint returns what Meta reports at readAt, for every matching campaign and ad set, and stores nothing.

Budgets and bid amounts are in whole units of currency, the same units as the synced rows (Meta's minor units are converted; TikTok already reports whole units). A campaign with a campaign budget (Meta Advantage+ campaign budget, TikTok campaign budget optimization) carries budget; otherwise each ad set carries its own.

Each level returns at most limit rows. When more match, paging.<level>.after is a cursor: pass it back as after together with level to read the next page of that level only. TikTok pages by number, so a TikTok cursor must be sent with the same limit that produced it (another limit is a 400). Other platforms answer 501 rather than serving synced data.

TikTok specifics. status maps to TikTok's primary_status filter, which takes one value: ACTIVE = delivering (STATUS_DELIVERY_OK), PAUSED = switched off (STATUS_DISABLE), DELETED = STATUS_DELETE; omitted = every status except deleted (STATUS_NOT_DELETE, which includes enabled entities that are not delivering, such as an ad group in review). Several values, or IN_PROCESS, WITH_ISSUES, CAMPAIGN_PAUSED and ARCHIVED, are a 400. budgetRemaining and spendCap are always null (TikTok reports neither), campaign bidStrategy is null (TikTok bids per ad group), ad set bidStrategy is normalized to the Meta vocabulary like GET /v1/ads, promotedObject is { pixelId, customEventType, applicationId, customConversionId } (the keys TikTok has set, as POST /v1/ads/create takes them), and targeting holds TikTok's targeting fields verbatim.

get/v1/ads/accounts/live

Request

  • Base URL: https://zernio.com/api
  • URL: https://zernio.com/api/v1/ads/accounts/live
  • Auth: HTTP bearer

Query parameters

accountIdstring required

Zernio SocialAccount id (posting or ads variant) used to resolve the platform token.

adAccountIdstring required

Meta ad account id (act_<n>) or TikTok advertiser id (digits).

statusstring
Example:ACTIVE

Comma-separated Meta effective_status values to keep: ACTIVE, PAUSED, IN_PROCESS, WITH_ISSUES, DELETED, ARCHIVED, and CAMPAIGN_PAUSED (ad sets only; the campaigns level ignores it). Defaults to every status except DELETED and ARCHIVED. An unknown value is a 400. TikTok takes a single value: ACTIVE, PAUSED or DELETED (see the description).

level'campaign' | 'adSet'

Read only one level. Required with after. Both levels are read when omitted.

limitinteger

Maximum rows per level in this response.

afterstring

Cursor from paging.campaigns.after or paging.adSets.after of a previous response. Requires level (and on TikTok the same limit).

Response

Live campaigns and ad sets

accountIdstring
adAccountIdstring
platform'facebook' | 'tiktok'
currencystring

ISO 4217 code every budget and bid amount is expressed in.

readAtstring date-time

When the platform was read.

Changes

    • warning

      added the new tiktok enum value to the response property for the response status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      endpoint added