| Name | Type | Description | Notes |
|---|---|---|---|
| id | String | [optional] | |
| name | String | [optional] | |
| platform | PlatformEnum | [optional] | |
| status | AdStatus | [optional] | |
| adType | AdTypeEnum | [optional] | |
| goal | GoalEnum | Available goals vary by platform. Meta (Facebook/Instagram) supports all 9 (incl. `lead_conversion` = website pixel lead optimization and `catalog_sales` = Advantage+ catalog ads). TikTok supports the 7 non-`lead_conversion` goals. LinkedIn supports all except app_promotion / lead_conversion. Twitter/X supports engagement, traffic, awareness, video_views, app_promotion. Pinterest and Google Ads support only engagement, traffic, awareness, video_views. | [optional] |
| isExternal | Boolean | True for ads synced from platform ad managers | [optional] |
| budget | AdBudget | [optional] | |
| metrics | AdMetrics | [optional] | |
| platformAdId | String | [optional] | |
| platformAdAccountId | String | [optional] | |
| platformCampaignId | String | [optional] | |
| platformAdSetId | String | [optional] | |
| campaignName | String | [optional] | |
| adSetName | String | [optional] | |
| platformObjective | String | Raw Meta campaign objective (e.g. OUTCOME_SALES, OUTCOME_LEADS, OUTCOME_TRAFFIC). Only present for Meta ads. | [optional] |
| optimizationGoal | String | Meta ad set optimization goal (e.g. OFFSITE_CONVERSIONS, VALUE, LEAD_GENERATION, LINK_CLICKS). Only present for Meta ads. | [optional] |
| platformAdAccountName | String | Human-readable advertiser/account name (Meta `AdAccount.name`, TikTok `advertiser_name`, LinkedIn / X / Pinterest equivalents). Refreshed every sync so platform-side renames propagate within one cycle. `null` when the platform doesn't return a name or the sync hasn't run yet. | [optional] |
| platformCreatedAt | OffsetDateTime | Platform-reported creation timestamp (Meta `created_time`, TikTok `create_time`). Distinct from `createdAt` which reflects when Zernio first synced the doc — for sort/filter by "when the ad was actually created on the platform", read this field. `null` for legacy ads synced before this field was added; aggregations fall back to `createdAt` in that case. | [optional] |
| bidStrategy | BidStrategy | [optional] | |
| bidAmount | BigDecimal | Bid cap in WHOLE currency units of the ad account (USD: 5 = $5.00; JPY: 100 = ¥100). Populated when bidStrategy is `LOWEST_COST_WITH_BID_CAP` or `COST_CAP`. `null` for auto-bid (`LOWEST_COST_WITHOUT_CAP`). - Meta source: `bid_amount` on the ad set (smallest-denomination int, decoded here). - TikTok source: priority order `bid_price` -> `conversion_bid_price` -> `deep_cpa_bid` (whichever is set on the ad group). TikTok stores all three in whole currency units. Source: facebook-business-sdk-codegen api_specs/specs/AdSet.json (`bid_amount`). | [optional] |
| roasAverageFloor | BigDecimal | Minimum ROAS as a decimal multiplier (2.0 = 2.0x ROAS). Populated when bidStrategy is `LOWEST_COST_WITH_MIN_ROAS`. - Meta source: decoded from `bid_constraints.roas_average_floor` (Meta stores as fixed-point int × 10000; we return the decimal). - TikTok source: `roas_bid` on the ad group (already a decimal). Source: facebook-business-sdk-codegen api_specs/specs/AdCampaignBidConstraint.json. | [optional] |
| promotedObject | AdPromotedObject | [optional] | |
| creative | AdCreative | [optional] | |
| targeting | Object | The ad set's targeting (age, gender, geo, interests, placements, audience inclusions/exclusions). For ads created through Zernio this is the spec you supplied. For external ads (synced from Meta Ads Manager, `isExternal: true`) targeting lives at the ad set and isn't stored at ingest, so on the first `GET /v1/ads/{adId}` Zernio resolves it live from Meta and caches it on the ad; the value is then Meta's raw `targeting` shape (snake_case, e.g. `geo_locations`, `age_min`), the same object Ads Manager shows. May be absent if the ad set exposes no targeting or the lookup fails. | [optional] |
| schedule | AdSchedule | [optional] | |
| rejectionReason | String | [optional] | |
| createdAt | OffsetDateTime | [optional] | |
| updatedAt | OffsetDateTime | [optional] |
| Name | Value |
|---|---|
| "facebook" | |
| "instagram" | |
| TIKTOK | "tiktok" |
| "linkedin" | |
| "pinterest" | |
| "google" | |
| "twitter" |
| Name | Value |
|---|---|
| BOOST | "boost" |
| STANDALONE | "standalone" |
| Name | Value |
|---|---|
| ENGAGEMENT | "engagement" |
| TRAFFIC | "traffic" |
| AWARENESS | "awareness" |
| VIDEO_VIEWS | "video_views" |
| LEAD_GENERATION | "lead_generation" |
| LEAD_CONVERSION | "lead_conversion" |
| CONVERSIONS | "conversions" |
| APP_PROMOTION | "app_promotion" |
| CATALOG_SALES | "catalog_sales" |