Skip to main content
An Ad Campaign is the top-level container for paid ads on an ad network. It sets the platform, objective, and budget strategy shared by its ad groups and ads. Use the Ad Campaigns API to create campaigns, list campaigns for an account, retrieve or update campaign settings, and pause or resume campaign delivery. Ads billing combines eligible spend across the account’s campaigns. A failed payment blocks delivery with delivery_status: payment_failed while preserving the configured active/paused status. Fix the account’s payment method and retry its ads payment once for the account. The retry is asynchronous: acceptance does not confirm payment. Successful settlement clears the block; active campaigns can resume if otherwise eligible, while paused campaigns stay paused. See billing and retries.

Endpoints

Attributes

string
required
Unique identifier for the ad campaign, prefixed adcamp_.
number
required
USD value attributed to add-to-cart events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.
number
required
Whop pixel-attributed add-to-cart events, last-click.
string | null
How delivery bids in the ad auction: minimum_cost gets the most results for the budget, average_target holds an average cost per result, and maximum_target never bids above a cap.Available options: minimum_cost, average_target, maximum_target
number | null
required
The campaign’s budget in USD, which is what it is stored and billed in. null when each ad group sets its own budget instead.
number | null
required
The same budget stated in budget_currency at today’s exchange rate, for display in the account’s ads reporting currency. null when budget_amount is.
string
required
The ISO 4217 code budget_amount_local is in: the account’s ads_reporting_currency preference. usd unless the account changed it.
string | null
required
Which level owns the budget: the whole campaign (ad_campaign) or each ad group individually (ad_group).Available options: ad_campaign, ad_group
string | null
required
Whether budget_amount is spent per day (daily) or over the campaign’s full run (lifetime).Available options: daily, lifetime
string
required
The kind of campaign, fixed at creation. standard is the ad network’s standard campaign; search shows text ads on search results for the ad groups’ keywords.Available options: standard, search
number
required
Clicks divided by impressions, between 0 and 1.
number
required
The number of clicks.
number
required
USD value attributed to complete-registration events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.
number
required
Whop pixel-attributed complete-registration events, last-click.
number
required
USD value attributed to contact events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.
number
required
Whop pixel-attributed contact events, last-click.
number | null
required
Spend divided by attributed add-to-cart events; null when they are not the goal and none are attributed.
number
required
Spend divided by clicks; 0 when there are no clicks.
number | null
required
Spend divided by attributed complete-registration events; null when they are not the goal and none are attributed.
number | null
required
Spend divided by attributed contact events; null when contacts are not the goal and none are attributed.
number | null
required
Spend divided by attributed leads; null when leads are not a goal and none are attributed.
number
required
Spend per 1,000 impressions; 0 when there are no impressions.
number | null
required
Spend divided by attributed purchases; null when purchases are not a goal and none are attributed.
number | null
required
Spend divided by Whop pixel-attributed results; null when nothing Whop-attributable is being optimized for.
number | null
required
Spend divided by attributed schedule events; null when schedules are not the goal and none are attributed.
number | null
required
Spend divided by attributed submit-application events; null when they are not the goal and none are attributed.
number | null
required
Spend divided by unique clicks; null when there are no unique clicks.
number | null
required
Spend divided by attributed view-content events; null when they are not the goal and none are attributed.
string
required
When the campaign was created, as an ISO 8601 timestamp.
number
required
Whop pixel-attributed custom (merchant-defined) conversion events, last-click, across all custom event names.
object
required
Whop pixel-attributed custom conversions, keyed by your event name with its last-click count as the value. 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.
object
required
Conversion value attributed to each custom event, keyed by event name like custom_event_counts. Sums the value passed to whop.track, normalized to USD; events fired without a value contribute 0.
string
required
Whether the campaign’s ads are delivering right now, and if not, why. Account billing failures set payment_failed without changing the configured status. Successful payment retry clears that block and recalculates delivery. When several states apply at once, the highest-precedence one is returned.Available options: payment_failed, in_appeal, all_ads_rejected, draft, no_ad_groups, no_ads, paused, processing, issues, scheduled, completed, ad_groups_off, active
number | null
Google only: the target cost per conversion in USD when bid_type is average_target. null otherwise.
string | null
Google only: when the campaign stops delivering, as an ISO 8601 timestamp. null runs it until paused.
number | null
required
Platform-reported impressions divided by reach.
number
required
The number of impressions.
object[]
required
Open issues affecting the campaign and its descendant ad groups and ads.

Properties

string
required
Unique identifier for the issue.
string
required
The kind of issue: information about delivery, a warning, or an error requiring attention.Available options: information, warning, error
string
required
A description of what the issue is and how it can be resolved.
string | null
required
The ID of the campaign, ad group, or ad the issue is attached to.
string
required
The type of resource the issue is attached to.Available options: ad_campaign, ad_group, ad
string
required
A short, creator-facing title for the issue.
number
required
USD value attributed to lead events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.
number
required
Whop pixel-attributed leads, last-click.
Clicks on links in the ad that lead to your destination, as reported by the ad platform. A subset of clicks, which also counts likes, comments, and other interactions with the ad.
string | null
required
The goal the campaign optimizes toward.Available options: awareness, traffic, engagement, leads, sales
string | null
required
The event the campaign optimizes for when a single goal is set campaign-wide. null when each ad group sets its own optimization_goal.
string
required
The ad network the campaign runs on.Available options: meta, tiktok, google
number
required
USD value of pixel-attributed purchases.
number
required
Whop pixel-attributed purchases, last-click.
number
required
The number of unique people who saw this.
string | null
required
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.Available options: purchase, lead, schedule, submit_application, contact, complete_registration, view_content, add_to_cart, custom, messaging_conversation
string | null
required
The merchant-defined event name when result_event is custom; null for the standard events.
number | null
required
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.
number
required
Purchase value divided by spend, both in USD (a currency-neutral ratio); 0 when there is no spend.
number
required
USD value attributed to schedule events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.
number
required
Whop pixel-attributed schedule events, last-click.
string[]
required
Regulated categories the campaign is declared under. Ads in these categories are subject to extra targeting restrictions. Empty when none apply.Available options: housing, employment, financial_products, politics
number
required
The amount charged, in spend_currency.
string | null
required
The ISO 4217 currency code of all monetary metrics.
string | null
Google only: when the campaign starts delivering, as an ISO 8601 timestamp. null starts it as soon as it launches.
string
required
The configured lifecycle status of the ad campaign. Billing failures preserve active or paused here and set delivery_status to payment_failed.Available options: active, paused, inactive, stale, pending_refund, payment_failed, draft, in_review, flagged, importing, imported, duplicating
number
required
USD value attributed to submit-application events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.
number
required
Whop pixel-attributed submit-application events, last-click.
string
required
Display name of the ad campaign.
number | null
required
Unique clicks divided by impressions, between 0 and 1.
number
required
People who clicked, reported by the Whop pixel, counted once per person.
string
required
When the campaign was last updated, as an ISO 8601 timestamp.
number
required
USD value attributed to view-content events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.
number
required
Whop pixel-attributed view-content events, last-click.
AdCampaign