Publishing status of the campaign itself. Independent of its children — pausing one ad set leaves the campaign PUBLISHED.
Available optionsDRAFTSCHEDULEDPUBLISHINGPUBLISHEDPAUSEDIN_REVIEWWITH_ISSUESREJECTEDARCHIVEDFAILED
Example:DRAFT
fbErrorstringnullable
Despite the name this is not always an error. Reads return null when there is nothing to report and the upsert returns "", but pausing an ad set or an ad overwrites it with an informational notice — One or more adsets are paused or One or more ads are paused — which the matching resume clears back to null. Treat it as a status line, not a failure signal.
Example:null
sourcestringrequired
Where the campaign was created from
Example:AD_MANAGER
metaobject
Ancillary campaign metadata
meta.evaluatestring
Opportunity-score result, stored as a JSON string rather than an object — parse before use. On Facebook it additionally carries sacCompliance, which is absent on Google and LinkedIn.
Publishing status. On a published entity this is not the state you asked for but the effective_status Meta reports, mapped back — a pause or resume re-reads it live, so an ad awaiting review comes back IN_REVIEW rather than PAUSED or PUBLISHED. Any effective status this service does not recognise also maps to IN_REVIEW.
Available optionsDRAFTSCHEDULEDPUBLISHINGPUBLISHEDPAUSEDIN_REVIEWWITH_ISSUESREJECTEDARCHIVEDFAILED
Example:PUBLISHED
adsets[].fbErrorstringnullable
Publish error from Facebook. null on reads when there is none.
Example:null
adsets[].pageIdstringrequired
Page the ads run under
Example:196684453527082
adsets[].instagramActorIdstringnullable
Instagram account the ads run under. null when not linked.
Example:null
adsets[].messagingPlatformsstring[]required
Messaging destinations for click-to-message ads. Empty for other conversion locations.
Example:["MESSENGER","INSTAGRAM_DIRECT"]
adsets[].conversionLocationstring
Where the conversion happens
Example:on_ad
adsets[].budgetobjectrequired
Budget configuration
adsets[].budget.budgetTypestringrequired
Budget cadence
Example:DAILY
adsets[].budget.amountnumberrequired
Budget amount as entered
Example:1
adsets[].budget.actualAmountnumber
Amount actually applied. Differs from amount on connect-your-BM pricing.
Example:1
adsets[].audienceobjectrequired
Targeting
adsets[].audience.gendersnumber[]required
Genders as Facebook numeric codes, not names — 0 all, 1 male, 2 female. Empty array also means all.
Placement positions per platform. Only meaningful when placementType is manual.
adsets[].audience.placements.property name*any
Placement positions per platform. Only meaningful when placementType is manual.
adsets[].audience.placementTypestring
Placement strategy
Available optionsautomanual
Example:manual
adsets[].unpublishedChangesboolean
Whether the ad set has edits not yet published
Example:false
adsets[].createdAtstringrequired
Created at
Example:2026-06-17T06:31:27.129Z
adsets[].updatedAtstringrequired
Updated at
Example:2026-08-19T11:42:35.835Z
adsets[].adsobject[]required
Ads in this ad set
adsets[].ads[].idstringrequired
Ad identifier
Example:6a323f3f4454921db1498ce1
adsets[].ads[].namestringrequired
Ad name
Example:Ad 1
adsets[].ads[].campaignIdstringrequired
Parent campaign id
Example:6a323f3e4454921db1498ccf
adsets[].ads[].adsetIdstringrequired
Parent ad set id
Example:6a323f3f4454921db1498cd8
adsets[].ads[].fbAdIdstring
Facebook ad id, set once published
Example:120250378908850122
adsets[].ads[].publishingStatusstringrequired
Publishing status. On a published entity this is not the state you asked for but the effective_status Meta reports, mapped back — a pause or resume re-reads it live, so an ad awaiting review comes back IN_REVIEW rather than PAUSED or PUBLISHED. Any effective status this service does not recognise also maps to IN_REVIEW.
Available optionsDRAFTSCHEDULEDPUBLISHINGPUBLISHEDPAUSEDIN_REVIEWWITH_ISSUESREJECTEDARCHIVEDFAILED
Example:PUBLISHED
adsets[].ads[].fbErrorstringnullable
Publish error from Facebook. null on reads when there is none.
Example:null
adsets[].ads[].mediaTypestringrequired
Creative format
Example:SINGLE
adsets[].ads[].ctastring
Call-to-action button
Example:GET_OFFER
adsets[].ads[].multiAdvertiserAdsbooleanrequired
Whether multi-advertiser ads are enabled
Example:true
adsets[].ads[].primaryTextsobject[]required
Primary text variants. Used by SINGLE image and video ads.
adsets[].ads[].primaryTexts[].textstringrequired
Variant text. May be an empty string for an unused slot.
Example:Book a free demo
adsets[].ads[].primaryTexts[]._idstring
Mongo subdocument id. Note _id, not id — the transform applies to the top-level document only.
Example:6a3245204454921db1499735
adsets[].ads[].headlinesobject[]required
Headline variants
adsets[].ads[].headlines[].textstringrequired
Variant text. May be an empty string for an unused slot.
Example:Book a free demo
adsets[].ads[].headlines[]._idstring
Mongo subdocument id. Note _id, not id — the transform applies to the top-level document only.
Example:6a3245204454921db1499735
adsets[].ads[].descriptionsobject[]required
Description variants
adsets[].ads[].descriptions[].textstringrequired
Variant text. May be an empty string for an unused slot.
Example:Book a free demo
adsets[].ads[].descriptions[]._idstring
Mongo subdocument id. Note _id, not id — the transform applies to the top-level document only.
Example:6a3245204454921db1499735
adsets[].ads[].primaryTextstring
Single primary text. Carried alongside primaryTexts, mirroring its first entry.
Example:Get an instant estimate
adsets[].ads[].headlinestring
Single headline. Used by carousel ads; mirrors the first headlines entry otherwise.