Update an Ad Group
Updates an ad group's editable fields. Only the keys you send are changed.
Request body
Saved-audience targeting: { include, exclude } arrays of audience IDs. Incompatible with demographics.automatic (Advantage+).
Bid strategy.
Ad-set budget in dollars (ABO only; omit under CBO).
Whether the budget is daily or lifetime.
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.
Demographic targeting: { automatic, minimum_age, maximum_age, gender }.
Target/cap cost for average_target / maximum_target.
Device targeting: { platforms, operating_systems: [{ os, minimum_version }] }.
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.
Daily spend floor within the budget.
What the ad group optimizes for (e.g. conversions, link_clicks, reach).
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).
The display name of the ad group.
Response
ad group updated
Whop pixel-attributed add-to-cart events, last-click.
Saved-audience targeting: { include, exclude } arrays of audience IDs.
Bid strategy.
Ad-set budget; null when the campaign owns budget (CBO).
Whether the budget is daily or lifetime.
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.
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).
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.
Whop pixel-attributed custom conversions broken out by merchant-defined event name, last-click, as a { event_name => count } map over the stats window. Empty when no named custom events are attributed. Custom events fired without a name are counted in custom_conversions but omitted here, so these values sum to at most custom_conversions.
The current delivery state, mirroring the Delivery column in the ads dashboard. When several states apply at once, the highest-precedence one is returned.
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.
Whop pixel-attributed leads, last-click.
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.
The merchant-defined event name when result_event is custom; null for the standard events.
The Whop pixel-attributed count behind result_event. When a campaign's ad groups optimize different goals there is no single result_event (it is null), and this is instead the sum of each ad group's own attributed results. Null when nothing Whop-attributable is being optimized for.
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.
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.
Example response
{
"bid_type": "minimum_cost",
"budget_type": "daily",
"conversion_location": "website",
"delivery_status": "all_ads_rejected",
"issues": [
{
"resource_type": "ad_campaign"
}
],
"result_event": "purchase",
"status": "active"
}