ChatGPT campaigns now run for a set period — 30 days by default, adjustable between 7 and 90 — or until the total budget is spent, whichever hits first. Before launching, you'll see a confirmation step that shows exactly what will be charged and when the campaign stops. Larger budgets require you to type the amount to confirm.
Performance data pulls from OpenAI every 6 hours in the background, but opening the Ads page now also triggers a live refresh if the stored numbers are more than 5 minutes old — so what you see is current without a manual reload. Impressions, clicks, and spend appear as totals alongside the last-checked timestamp. New ads also get UTM parameters on their links, so traffic shows up correctly in your own analytics.
The budget labels have been corrected. ChatGPT campaigns have a lifetime spend cap, not a monthly one, and the Ads page now says so — showing figures like "$295 total budget" and "$X of $Y spent" rather than the old "/mo" label. A campaign that has exhausted its budget is marked as such, and you can reactivate it with "Add budget" from the Manage screen, behind the same confirmation flow. Yelp budgets, which are monthly, are unchanged.
Two edge cases are also resolved: overlapping "Add budget" requests no longer corrupt the stored budget, and the stop date shown in the confirmation now matches exactly what gets sent to ChatGPT.