Create an Ad Group
Creates an ad group (ad set) in a campaign.
Authorizations
A company API key, company scoped JWT, app API key, or user OAuth token. You must prepend your key/token with the word 'Bearer', which will look like Bearer ***************************
Headers
Pins the request to a dated API version.
"2026-07-08-1"
Body
The ad campaign to create the ad group in.
Saved-audience targeting: { include, exclude } arrays of audience IDs. Incompatible with demographics.automatic (Advantage+).
Bid strategy.
minimum_cost, average_target, maximum_target Ad-set budget in dollars (ABO only; omit under CBO).
Whether the budget is daily or lifetime.
daily, lifetime The pixel event optimized for. A standard event, or any custom pixel event name.
purchase, add_to_cart, initiated_checkout, add_payment_info, complete_registration, lead, content_view, search, contact, customize_product, donate, find_location, schedule, start_trial, submit_application, subscribe Where results happen: website (conversions), profile (IG/FB engagement), messaging (DM), on_ad (engagement on the ad, surface follows the optimization goal), or the lead destinations (instant_forms, instant_forms_and_messenger, website_and_instant_forms). The lead form itself is set on the ad.
website, profile, messaging, on_ad, instant_forms, instant_forms_and_messenger, website_and_instant_forms Demographic targeting: { automatic, minimum_age, maximum_age, gender }.
Target/cap cost for average_target / maximum_target.
Device targeting: { platforms, operating_systems: [{ os, minimum_version }] }.
Run Meta dynamic (Advantage+) creative for this ad set. Set at creation; immutable afterward.
Schedule end, ISO 8601.
{ maximum_impressions, per_days } — only valid for reach optimization.
Languages to target as ISO 639 codes (e.g. en, es). Empty/omitted = all languages.
Required when conversion_location is messaging: which apps to message on. Combinations map to the matching Meta destination.
messenger, instagram, whatsapp Daily spend floor within the budget.
What the ad group optimizes for (e.g. conversions, link_clicks, reach).
'automatic' (Advantage+) or a list of { platform, positions }. Omit positions to target all of a platform's.
Valid positions per platform:
facebook:feed,right_hand_column,marketplace,search,profile_feed,notification,story,instream_video,facebook_reels,facebook_reels_overlay,biz_disco_feedinstagram:stream,story,explore,explore_home,reels,profile_feed,profile_reels,ig_searchmessenger:storyaudience_network:classic,rewarded_videothreads:threads_streamwhatsapp:status
Geo targeting: { include / exclude: { countries (ISO 3166-1), regions (states/provinces as ISO 3166-2, e.g. US-CA), cities (keyed), zips } }.
Schedule start, ISO 8601.
Initial status (default: active).
active, paused The display name of the ad group.
Response
ad group created
The ad campaign this ad group belongs to, an object with an id.
Whop pixel-attributed add-to-cart events, last-click.
Saved-audience targeting: { include, exclude } arrays of audience IDs.
Bid strategy.
minimum_cost, average_target, maximum_target, null "minimum_cost"
Ad-set budget; null when the campaign owns budget (CBO).
Whether the budget is daily or lifetime.
daily, lifetime, null "daily"
Clicks divided by impressions, between 0 and 1.
The number of clicks.
Whop pixel-attributed complete-registration events, last-click.
Whop pixel-attributed contact events, last-click.
The pixel event optimized for. A standard event, or any custom pixel event name.
purchase, add_to_cart, initiated_checkout, add_payment_info, complete_registration, lead, content_view, search, contact, customize_product, donate, find_location, schedule, start_trial, submit_application, subscribe Where results happen: website, profile (IG/FB), messaging (DM), on_ad (engagement), or the lead destinations (instant_forms, instant_forms_and_messenger, website_and_instant_forms).
website, profile, messaging, on_ad, instant_forms, instant_forms_and_messenger, website_and_instant_forms, null "website"
Spend divided by attributed add-to-cart events; null when they are not the goal and none are attributed.
Spend divided by clicks; 0 when there are no clicks.
Spend divided by attributed complete-registration events; null when they are not the goal and none are attributed.
Spend divided by attributed contact events; null when contacts are not the goal and none are attributed.
Spend divided by attributed leads; null when leads are not a goal and none are attributed.
Spend per 1,000 impressions; 0 when there are no impressions.
Spend divided by attributed purchases; null when purchases are not a goal and none are attributed.
Spend divided by Whop pixel-attributed results; null when nothing Whop-attributable is being optimized for.
Spend divided by attributed schedule events; null when schedules are not the goal and none are attributed.
Spend divided by attributed submit-application events; null when they are not the goal and none are attributed.
Spend divided by attributed view-content events; null when they are not the goal and none are attributed.
When the ad group was created, ISO 8601.
Whop pixel-attributed custom (merchant-defined) conversion events, last-click, across all custom event names.
The current delivery state, mirroring the Delivery column in the ads dashboard. When several states apply at once, the highest-precedence one is returned.
all_ads_rejected, rejected, draft, no_ads, campaign_paused, paused, processing, issues, scheduled, completed, ads_off, learning_limited, learning, active "all_ads_rejected"
Demographic targeting: automatic (Advantage+), age range, gender.
Target/cap cost for average_target / maximum_target.
Device targeting: platforms and operating systems.
Whether ads within this ad group have their creatives and copy dynamically AB tested.
Schedule end, ISO 8601.
Platform-reported impressions divided by reach.
Impression cap; only valid for reach optimization.
Unique identifier for the ad group.
The number of impressions.
Targeted languages as ISO 639 codes (e.g. en, es). Region-specific Meta locales without an ISO mapping appear as their numeric Meta locale key. Empty = all languages.
Whop pixel-attributed leads, last-click.
For messaging destinations: the apps to message on (messenger, instagram, whatsapp). Empty otherwise.
Daily spend floor within the budget.
What the ad group optimizes for.
USD value of pixel-attributed purchases.
Whop pixel-attributed purchases, last-click.
The number of unique people who saw this.
Geo targeting: include/exclude countries, regions (ISO 3166-2 states, e.g. US-CA), cities, zips.
The Whop pixel conversion event whose attributed count represents results — the optimization goal, or the highest-volume attributed event for campaigns that budget per ad group. Null when the goal isn't a Whop-attributed event.
purchase, lead, schedule, submit_application, contact, complete_registration, view_content, add_to_cart, custom, null "purchase"
The merchant-defined event name when result_event is custom; null for the standard events.
Purchase value divided by spend, both in USD (a currency-neutral ratio); 0 when there is no spend.
Whop pixel-attributed schedule events, last-click.
The amount charged, in spend_currency.
The ISO 4217 currency code of all monetary metrics.
Schedule start, ISO 8601.
Delivery status of the ad group.
active, paused, rejected "active"
Whop pixel-attributed submit-application events, last-click.
The display title of the ad group.
Unique clicks divided by impressions, between 0 and 1.
The number of unique clicks.
When the ad group was last updated, ISO 8601.
Whop pixel-attributed view-content events, last-click.

