pub enum Goal {
Engagement,
Traffic,
Awareness,
VideoViews,
LeadGeneration,
LeadConversion,
Conversions,
AppPromotion,
CatalogSales,
}Expand description
Required on legacy + multi-creative shapes. Inherited from the ad set on the attach shape. Available goals vary by platform. Meta-specific: conversions (OUTCOME_SALES) requires promotedObject.pixelId + promotedObject.customEventType (use a commerce event, e.g. PURCHASE, START_TRIAL); lead_conversion (OUTCOME_LEADS, website pixel leads) requires the same pixel + event but with a leads-class event (e.g. LEAD, SUBMIT_APPLICATION, SCHEDULE, CONTACT) — these are rejected under conversions because Meta gates conversion events by objective; lead_generation is OUTCOME_LEADS with instant forms (leadGenFormId), distinct from lead_conversion’s website pixel optimization; app_promotion requires promotedObject.applicationId + promotedObject.objectStoreUrl; catalog_sales (Advantage+ catalog ads, e.g. vehicle inventory) requires promotedObject.productSetId + promotedObject.pixelId + promotedObject.customEventType and builds a catalog TEMPLATE creative from the copy fields (headline/body/description/linkUrl/callToAction, which may carry catalog template tags like {{product.name}} or {{vehicle.make}}) — no imageUrl/video is sent, Meta renders the visuals per catalog item; discover catalogs via GET /v1/ads/catalogs and product sets via GET /v1/ads/catalogs/{catalogId}/product-sets; single shape only (no creatives[]/adSetId/dynamicCreative/placementAssets); lead_generation accepts an optional promotedObject.pageId (auto-filled from the connected Page when omitted). TikTok-specific: conversions (website-conversion ad group) requires promotedObject.pixelId (your TikTok Pixel ID) and accepts an optional promotedObject.customEventType (a TikTok optimization_event code like ON_WEB_ORDER, INITIATE_ORDER, ON_WEB_REGISTER, FORM); to inherit a pixel + event from an existing ad group, pass adSetId instead. LinkedIn-specific: engagement, traffic, awareness, and video_views are supported for standalone ads (creates a Direct Sponsored Content single image or single video ad). traffic requires linkUrl; video_views requires the video field. For lead_generation / conversions on LinkedIn — or to promote an existing post — use POST /v1/ads/boost.