import type * as Whop from "../../../../index.mjs"; /** * @example * { * id: "id" * } */ export interface UpdateAdCampaignsRequest { /** The ad campaign ID. */ id: string; /** The platform returned when you last retrieved the campaign, ad group, or ad. A different current platform rejects the request with campaign_changed; retrieve the resource again before editing. Required after a delivery-platform migration when creating ads or ad groups, or changing fields other than title, status, budget, and account scope. */ "X-Ads-Platform"?: Whop.UpdateAdCampaignsRequestXAdsPlatform; /** How delivery bids in the ad auction: `minimum_cost` gets the most results for the budget, `average_target` holds an average cost per result, `maximum_target` never bids above a cap. Switching to `minimum_cost` clears the cap amounts stored on the campaign's ad groups. Only for campaigns that own the budget. */ bid_type?: UpdateAdCampaignsRequest.BidType; /** The campaign budget in USD, which is what it is stored and billed in. Interpreted as daily or lifetime per the campaign's budget type, including a budget_type sent in the same request. */ budget_amount?: number; /** The campaign budget stated in the account's ads reporting currency (`budget_currency` on the response) instead of USD. Converted to USD at the current exchange rate and stored as budget_amount; an amount equal to the current budget_amount_local keeps the stored USD budget as is. Provide this or budget_amount, not both. */ budget_amount_local?: number; /** Which level owns the budget: the whole campaign (`ad_campaign`) or each ad group individually (`ad_group`). Only changeable before the campaign is live on the ad network; switching to `ad_campaign` requires budget_amount in the same request, and switching to `ad_group` clears the campaign budget. */ budget_optimization?: UpdateAdCampaignsRequest.BudgetOptimization; /** Whether `budget_amount` is spent per day (`daily`) or over the campaign's full run (`lifetime`). Only changeable while the campaign is a draft; send budget_amount in the same request so the amount lands on the new type. */ budget_type?: UpdateAdCampaignsRequest.BudgetType; /** Accepted only when it matches the campaign's current type, so a read can be sent back unchanged. The type is fixed at creation. */ campaign_type?: UpdateAdCampaignsRequest.CampaignType; /** The cost per result, in USD, you want this campaign to achieve. A target only: it is not a bid, cost cap, or bid cap, and doesn't change how the campaign's ads bid. Ad groups set cost and bid caps with their own `desired_cost_per_result`. `null` clears it. */ desired_cost_per_result?: number | null; /** When the campaign stops delivering, as an ISO 8601 timestamp. Only for campaigns that own the budget. */ ends_at?: string; /** Regulated categories the campaign falls under. Editable on any campaign, draft or launched; pass an empty array to clear. */ special_ad_categories?: UpdateAdCampaignsRequest.SpecialAdCategories.Item[]; /** When the campaign starts delivering, as an ISO 8601 timestamp. Only for campaigns that own the budget. */ starts_at?: string; /** Set to active to launch a draft campaign (moderates and pushes it live). Live-campaign pause and resume use the pause and unpause actions. */ status?: UpdateAdCampaignsRequest.Status; /** The name of the campaign. */ title?: string; } export declare namespace UpdateAdCampaignsRequest { /** How delivery bids in the ad auction: `minimum_cost` gets the most results for the budget, `average_target` holds an average cost per result, `maximum_target` never bids above a cap. Switching to `minimum_cost` clears the cap amounts stored on the campaign's ad groups. Only for campaigns that own the budget. */ const BidType: { readonly MinimumCost: "minimum_cost"; readonly AverageTarget: "average_target"; readonly MaximumTarget: "maximum_target"; }; type BidType = (typeof BidType)[keyof typeof BidType]; /** Which level owns the budget: the whole campaign (`ad_campaign`) or each ad group individually (`ad_group`). Only changeable before the campaign is live on the ad network; switching to `ad_campaign` requires budget_amount in the same request, and switching to `ad_group` clears the campaign budget. */ const BudgetOptimization: { readonly AdCampaign: "ad_campaign"; readonly AdGroup: "ad_group"; }; type BudgetOptimization = (typeof BudgetOptimization)[keyof typeof BudgetOptimization]; /** Whether `budget_amount` is spent per day (`daily`) or over the campaign's full run (`lifetime`). Only changeable while the campaign is a draft; send budget_amount in the same request so the amount lands on the new type. */ const BudgetType: { readonly Daily: "daily"; readonly Lifetime: "lifetime"; }; type BudgetType = (typeof BudgetType)[keyof typeof BudgetType]; /** Accepted only when it matches the campaign's current type, so a read can be sent back unchanged. The type is fixed at creation. */ const CampaignType: { readonly Standard: "standard"; readonly Search: "search"; }; type CampaignType = (typeof CampaignType)[keyof typeof CampaignType]; type SpecialAdCategories = SpecialAdCategories.Item[]; namespace SpecialAdCategories { const Item: { readonly Housing: "housing"; readonly Employment: "employment"; readonly FinancialProducts: "financial_products"; readonly Politics: "politics"; }; type Item = (typeof Item)[keyof typeof Item]; } /** Set to active to launch a draft campaign (moderates and pushes it live). Live-campaign pause and resume use the pause and unpause actions. */ const Status: { readonly Active: "active"; }; type Status = (typeof Status)[keyof typeof Status]; }