What's new in Space Ads OS
The system keeps moving — every new API version, playbook, agent and report template reaches you as long as your subscription is active. This is the record of what shipped.
Always the latest version
Your subscription always runs the latest release — there are no older "editions" to buy into. The system flags an available update at session start and, on your go-ahead, installs it in place. Updates never touch your client data, change logs, or credentials.
- v0.9.1LatestSeptember 27, 2026
Every Google Ads report takes the client
Google Ads reports now take --slug <client>, like the other channels: the account comes from your client registry, and in bridge mode the right connection is used for that client.
- Improved
Every Google Ads report takes --slug <client>; --customer-id keeps working, and when both are given they must match. Reports that cover all clients (digests, alerts) still do so without it, and --slug narrows them to one client.
- Improved
- v0.9.0September 26, 2026
Google Ads without a developer token or a manager account
Google retired developer tokens on 9 September 2026. Space Ads OS no longer asks for one: Google Ads connects like GA4 — with one browser consent through the Space Ads OS bridge — or through your own Google Cloud project.
- Improved
Google Ads connects without a developer token or a manager account (MCC): through the bridge with one browser consent, or through your own Google Cloud project with your own access level. A manager account is needed only if you reach a client’s account through one.
- New
Removing Google Ads campaigns, ad groups, ads and keywords — only through one command that first shows the status and 30-day spend, warns that removal cannot be undone, and needs the ID typed again.
- Improved
Clear messages for missing production access, Google’s known authorisation issue, quota and a wrong manager account. spaceads doctor --online shows how each client is connected.
- Improved
- v0.8.0September 25, 2026
The rest of each platform, and brand rules enforced in code
Standard Shopping, lead forms, offline conversions and Customer Match on Google Ads; audiences, instant forms, custom conversions and automated rules on Meta; Smart+, lead generation, catalogs and GMV Max on TikTok. And your client’s brand rules are now checked in code on every ad the tool writes.
- New
Brand rules enforced, not just suggested: banned words, claims you can’t make, required disclaimers, brand-name spelling and advertising languages — every ad text on Google, Meta and TikTok is checked before it is sent, previews included. Google’s and TikTok’s editorial rules are checked the same way, so fewer ads get disapproved.
- New
Google Ads: Standard Shopping campaigns with only the products you choose, lead forms with lead download, offline conversions from your CRM (including Enhanced Conversions for Leads) and Customer Match lists — customer data hashed on your machine.
- New
Google Ads: recommendations with a preview of the change, conversion value rules, AI Max controls and report, brand lists, shared negative keyword lists, and image and YouTube uploads.
- New
Meta: instant forms, audiences (website visitors, engagers, customer lists, lookalikes), custom conversions, automated rules that start switched off, Advantage+ readiness, and different images per placement.
- New
TikTok: Smart+ campaigns, lead generation with lead download, catalogs and Video Shopping, automated rules, GMV Max and offline events — all created paused (TikTok starts GMV Max live, so it needs an explicit go-ahead).
- New
The weekly industry pulse tracks the official Google Ads, Meta, TikTok, GA4, Search Central and Merchant Center changelogs.
- Improved
Features that need extra platform permissions (such as Meta catalogs and lead download) are ready and check the connection first — when something is missing, they say exactly what and how to add it.
- New
- v0.7.0September 24, 2026
The tool builds campaigns
Performance Max, Search and Demand Gen on Google Ads, and campaigns, ad sets and ads on Meta, are now created by shipped commands — complete, paused, with the platform checking the preview. Agencies get working team seats, client switching that moves the safety checks with it, and change history per client. And when the tool cannot do something yet, it shows how to do it safely from the platform’s official documentation.
- New
Google Ads: Performance Max built in one step — budget, campaign, Merchant Center feed, brand guidelines, images and texts, the “only these products” filter, audience signals and the new-customer goal. Google checks the whole build in the preview, and a failure leaves nothing half-made. Works for e-commerce and lead generation.
- New
Google Ads: Search campaigns built complete (every bidding strategy, several countries and languages, assets, schedule, negative lists), Demand Gen with location and language targeting, and experiments started from the tool.
- New
Google Ads: EU political advertising declaration. Since April 2026 Google refuses every change on an account where one campaign lacks it — the tool checks this first and lets you declare the missing campaigns. You choose the value.
- New
Meta: create campaigns, ad sets and ads from a spec (seven ready-made examples), duplicate them, and upload images and videos. Meta checks every preview, and everything is created paused.
- New
TikTok: audiences (lookalike, saved, customer list — hashed on your computer), creative uploads, and reports over any date range.
- New
Merchant Center: market reports (suggested prices, best sellers, competitive visibility), single-attribute product edits, promotions, and store and regional inventory.
- New
GA4: whole reports, realtime, cohorts, funnels and configuration listings; configuration changes (key events, definitions, retention, the Google Ads link) ready once GA4 is connected with edit permission. Search Console: filters, search appearance, hourly data and sitemap submission.
- New
When the tool does not have something yet, it reads the platform’s official documentation for the API version in use and offers a one-off with the same preview, approval and change log.
- Fixed
Meta reports work for accounts connected through the wizard, and the full Meta audit runs end to end. Budgets in currencies without cents (such as yen) are no longer multiplied by 100.
- Fixed
The cross-channel overview includes Google Ads again. Clients under different Google Ads manager accounts work.
- Fixed
Agency team seats work everywhere, switching clients moves the safety checks to that client’s accounts, and change history shows the chosen client’s changes.
- Improved
The setup wizard obtains Google Ads access through a browser consent and explains Google’s access levels; onboarding records each ad account ID.
- New
- v0.6.7September 23, 2026
A safety release: one rule for every change to an account
Every change to an ad account now works the same way: a preview first, checked by the platform itself where it can be, and the change applies only when you run the same command again with --execute and a reason.
- Fixed
TikTok: nothing the tool builds can start spending by itself. New campaigns, ad groups and copied ad groups are created switched off, and the tool checks this after creating them. Going live is a separate, approved step.
- Fixed
Changes land on the right client’s account. On Google Ads, Meta, TikTok and Merchant Center the account comes from your client registry, and a mismatched account ID on the command line stops the change before anything is sent.
- Fixed
Google Ads: no change without a preview. Budgets, targets, negatives, locations, bulk operations and rules show the plan first, and Google checks it before anything is written.
- Fixed
Google Ads: search terms that converted recently are protected from negative-keyword suggestions again. 60- and 90-day reports really cover 60 and 90 days.
- Fixed
Meta: changes are recorded correctly, with your reason attached, and previews ask Meta whether it would accept the change. New objects are always created paused.
- Fixed
Merchant Center: refreshing a custom label can no longer remove it. Each client also uses its own service account.
- Fixed
Removing a client’s data covers only that client, and the change safeguard also checks your own template scripts.
- Improved
--yes, --dry-run and --apply are gone: running a command without --execute is the preview. A missing TikTok permission is reported as such instead of looking like an empty account.
- Fixed
- v0.6.6September 23, 2026
Meta post boosting is available
Boosting existing Page and Instagram posts is available. The tool’s guidance now says plainly how to switch it on for a client.
- Improved
When a client is missing the Page or Instagram permissions, the tool points to the one step that adds them — reconnecting that client with the boosting option — instead of describing an approval process that is already complete.
- Improved
- v0.6.5September 23, 2026
Meta post boosting checked against Meta’s documentation
A tidy-up release: every step of Meta post boosting was compared with the official documentation and corrected where it drifted from it.
- Fixed
Facebook Page posts are read the way Meta requires — the tool obtains the Page’s own authorisation for it by itself.
- Fixed
Image and carousel posts are not boosted without a destination link. Meta refuses them, so the plan sets them aside up front, with the reason, instead of letting the attempt fail.
- Improved
Clearer messages when Meta refuses a call because of how the Meta app itself is set up, instead of a generic “invalid parameter”. A successful account connection is no longer reported as failed because of a momentary error while it is confirmed.
- Fixed
- v0.6.4September 23, 2026
A more dependable way to connect ad platforms, and Meta post boosting as its own option
A release about the first five minutes with the tool. Connecting Meta, TikTok and GA4 now works the same on a laptop, a remote server and a machine with no browser, and the terminal finds out by itself whether it worked. Post boosting on Meta gets its own opt-in connection, so the standard one stays as narrow as before.
- Improved
Connecting Meta, TikTok and GA4 is rebuilt. The approval link is shown as well as opened, so it can be approved on **any device** — a phone included. The terminal learns the outcome by itself — approved, declined or expired — with nothing to paste back. Once connected, the tool confirms the connection actually works before saying so. Nothing lands on disk; the authorisation stays in the encrypted vault tied to the licence.
- New
Post boosting on Meta as a **separate, opt-in connection**. It asks for Page and Instagram permissions only when an operator deliberately chooses it — the standard connection stays as narrow as before. When those permissions are missing, the tool names exactly which step closes the gap.
- Improved
- v0.6.3September 22, 2026
Meta account health, structural review, and the commands for the start and end of a client relationship
A release about what a performance report cannot show. Metrics report a number moving in the wrong direction; this review reports the things that move no number at all — two ad sets bidding for the same people, a budget too thin to leave the learning phase, a campaign switched on and forgotten. Plus two commands for the edges of a client relationship: removing their data, and bringing an older project up to date.
- New
Meta account health in one pass: delivery, pacing, results, frequency, creative age, structural limits and audience size. Every threshold carries the reasoning behind it, so a finding can be argued with rather than simply accepted. Where the account data did not come back in full, the report **says so** instead of drawing a conclusion from a partial picture — a temporarily unreachable account and a dormant one look identical in the data.
- New
A review of account STRUCTURE, separate from metrics. It finds what survives months of performance reviews precisely because none of it is a number moving: ad sets with identical targeting competing with each other, conversion ad sets that will never reach 50 events a week at their current cost per result, campaigns switched on and not spending, and budget concentrated in one ad set while the others split the signal.
- New
Promoting organic posts on Meta and TikTok. On Meta this is the operation where a small mistake produces something indistinguishable from success: building the ad the obvious way creates a **new unpublished post** rather than promoting the existing one — the likes and comments stay on the original and the ad starts with no social proof. The tool refuses that shape and, after writing, reads the ad back to confirm which post it actually carries. On TikTok, Spark Ads became a repeatable process: per-client policy, a plan that gives a reason for every decision including the ones it skips, and memory of what has already been promoted so rotation does not start over each run.
- New
Boosting on Meta needs Page and Instagram permissions beyond those a standard account connection requests. The tool checks this **before** it starts and says what is missing and who can grant it, rather than stopping partway through. When the platform returns no list of granted permissions — and with this connection type it does not — it says "this cannot be read" rather than "you do not have it", because those are different facts and only one of them is a problem.
- New
`spaceads purge` — remove one client's data from a workspace when an engagement ends. It shows exactly what it will delete first, and states plainly what it does **not** reach: authorisations held server-side are revoked in the platform's own settings, not here.
- New
`spaceads migrate` — bring an existing project up to what later releases added. Updates deliberately never touch your client files, so this is a separate, explicit step rather than something that happens quietly in the background.
- Improved
Reports can be rendered in a language other than English without modifying the package — for agencies presenting results to their own clients.
- New
- v0.6.2September 15, 2026
The boundaries of each platform's API, written where the system looks for them
The system knew what it could do. It did not know what the platform would refuse — and that is the difference between "we have not built it yet" and "it cannot be done", which decides whether someone waits for something that is never coming.
- New
The limits, call contracts and quotas for each channel — what decides whether an operation is possible at all, rather than only what is possible in principle.
- New
A permissions map: which capability needs which access scope on which platform, and what the failure looks like when it is missing. A missing-permission error very often reads as a bug in the tool.
- New
One place stating which API version each channel targets, when that version ends, and why each library version range is the range it is.
- New
A capability matrix separating three different answers to "can the tool do X": we have not built it, the platform does not offer it, or current permissions do not cover it. Each calls for a different response, and collapsing them into one "no" costs the operator time.
- New
Operational playbooks: experiments, Performance Max asset groups, budgeting, growth frameworks, inheriting an e-commerce account, product rotation and duplication.
- Improved
Guidance describing platform behaviour that had since changed was reconciled against current vendor documentation, including two channels whose documented API version was out of date. The knowledge base now flags when its own content is due for review.
- New
- v0.6.1September 8, 2026
Analytics: why the platform and GA4 report different numbers
Both sides are right — they answer different questions. This release shows exactly where the difference sits and what causes it, instead of averaging two correct figures into one wrong one.
- New
Four Google Ads to GA4 comparisons: the gap between clicks and sessions, device, geography and channel mix. Each names the cause of the discrepancy rather than smoothing it away.
- New
For GA4: an hour-by-weekday view for setting an ad schedule, product-level revenue, year-on-year comparison, and first-touch versus last-touch. Each answers a question daily totals cannot.
- New
More from Search Console: period comparison for diagnosing a traffic drop, access to fresher data than the finalised window, branded versus non-branded splitting from terms you supply, and sitemap discovery that survives compression, redirects and index files.
- Improved
Cross-channel views handle accounts billed in different currencies: matching currencies still total as before, mixed ones give you a breakdown instead of a single figure that means nothing. Differing reporting time zones are flagged separately.
- Fixed
Quota exhaustion is recognised as quota exhaustion, rather than reported as an indexing problem with the site.
- New
- v0.6.0MajorAugust 29, 2026
TikTok: a channel you can build on, not only manage
Until now TikTok let you run what already existed. Now it lets you build it.
- New
Creating campaigns, ad groups and ads on TikTok — through the same preview-and-confirm path as every other change.
- New
TikTok account health, in the same shape as the other channels.
- New
Business Center account enumeration — so before diagnosing why something is missing, you can see what the authorisation actually reaches.
- Fixed
Several reads behaved differently against a live account than in testing and have been reconciled, including an hourly breakdown requested over too long a period and filters sent in a shape the platform does not accept.
- Fixed
Revenue reporting recognises both of the platform's metric families, so an account selling through one of them is no longer shown as having no revenue.
- New
- v0.5.9August 18, 2026
Merchant Center, at the depth the channel requires
Feed work has two properties that are easy to miss: a write through the API does nothing until you complete the whole sequence, and what you write has a limited life. This release handles both.
- New
Call quota checked **before** a run begins rather than discovered halfway through it — with the remaining allowance read from the account rather than assumed.
- New
Google's own remediation guidance for disapproved offers, instead of inferring a fix from an error code — including the distinction between a problem you can act on and one waiting on the platform's review.
- New
A per-client feed profile, so title and attribute work rests on that account's conventions rather than on guesswork.
- New
Visibility into entries approaching expiry. Attributes supplied through the API have a limited life and disappear quietly — now you see the edge before the feed work vanishes.
- New
A single audit command with stable finding codes and an exit status suitable for a scheduled run.
- Improved
Feed writes now complete the full sequence needed for a change to take effect, and verify the result from the merged catalogue rather than from the write alone. Catalogue reads report when they were truncated instead of presenting a fragment as the whole.
- New
- v0.5.8August 7, 2026
An install that behaves the same on your machine as on ours
A release about what happens between "works for us" and "works for you". We checked it by installing the package from scratch into a clean environment and running the commands people reach for when something is wrong.
- Improved
The files the tool writes on your behalf — active account, change logs, cache, account configuration and generated reports — now live in your project rather than in the install directory. They survive an update and belong to your backups.
- Improved
Library version ranges describe what actually installs on your machine. Several were satisfied by releases that no longer carry the API surface this package uses.
- Improved
A `.gitignore` is written on first run, so the cache, credentials and reports containing your clients' data do not reach a repository by accident.
- Fixed
Credential files are created owner-readable only, including their backups.
- Fixed
`spaceads init` and `spaceads doctor` work on an incomplete installation — which is exactly when they are most needed.
- Fixed
Changing a bid target on a portfolio strategy now takes effect, rather than reporting success without changing the target.
- New
Editable script templates for every channel — starting points to open and adapt, including scripts that run inside the ad account on the platform's own schedule, with nothing running locally.
- New
Google Ads query field names validated locally, so a mistake surfaces on your machine rather than against a client's account.
- New
A ranked action list. Audits measured waste; they now feed one list ordered by estimated gain, so a report ends in work rather than in a figure.
- Improved
- v0.5.7July 30, 2026
Campaign creation for Google Ads, and the foundation of account health
Until now the tool ran campaigns somebody had built by hand. This release closes the other half.
- New
Creating Search and Demand Gen campaigns from a specification, with audience decisions made explicitly rather than by default.
- New
Experiments, custom audiences and asset automation — run through the same preview-and-confirm path as every other change.
- New
Asset linking at account, campaign and Performance Max asset-group level, campaign settings (geography, devices, radius, shared lists), and Responsive Display Ad text edited in place rather than rebuilt.
- New
The first two layers of account health: the dated context a decision needs, and the memory of what has already been reported and settled.
- New
- v0.5.6July 30, 2026
Channels work straight after install, the change log lives in your project, knowledge reaches the context
A delivery release, not a feature release. We audited what someone actually receives after installing rather than what sits in the code — and found two channels described as part of the product that could not start, a knowledge base nothing could reach, and a change log sitting outside the operator's project. Plus `spaceads doctor`, so the next problem of that kind is visible immediately instead of after a support ticket.
- Improved
Your change log now lives in your project rather than inside Python's install directory. It used to land in three different places inside the package — so "where is the history of changes on this account" had three answers and none of them was in your repository or your backup. On the first write after updating we **copy** your existing history across, we do not move it: the old location stays untouched, so nothing is lost even if the copy fails.
- Improved
The knowledge base now reaches the context at session start. 34 files — channel guides, cross-cutting concepts, vertical playbooks, creative specs — have shipped in the package for a long time, but nothing pointed Claude at them, so in practice it did not use them. Every session now receives an index of what exists and where it is. It reads the specific file when a question needs it, instead of answering from memory.
- New
New knowledge on disclosing AI-generated creative — the EU AI Act applies from 2 August 2026. The duty to disclose sits with whoever publishes the ad, and the most common failure is that the person who generated the creative never passes that fact on. The file covers exactly what Google Ads exposes, who is responsible for what, and what the system does **not** do — because a false assurance on a compliance question is worse than silence.
- New
New command: `spaceads doctor` — one pass over your whole install. Python version, licence status, whether each channel's library actually loads, how many clients you have configured per channel, registry shape, active client, and where your change log really lives. It changes nothing and prints no key or token, so the entire output is safe to paste into an email to us. It answers "is everything in place on my machine?" without waiting on support.
- New
The all-clients roll-up is finally available. The agency-mode commands referenced a digest that was not in the package — so the feature you buy the agency plan for could not be run. It works now, lists clients worst-first, and grades each one against the target ROAS in that client's own brief rather than one fixed threshold for everybody: an account targeting 6.0 sitting at 3.0 shows red, while an account targeting 2.5 at the same number shows green.
- Improved
Search Console and Merchant Center can finally be added by talking to Claude. The terminal wizard knew all six channels, but onboarding and add-a-client collected four — so those two quietly dropped out of the registry if you added a client the recommended way. Includes the two traps you would otherwise meet at your first error: the Search Console property URL has to be exact, and Merchant Center needs a one-time registration only someone with the ADMIN role can complete.
- Fixed
Search Console and Merchant Center did not start after installing. Their libraries were declared as an optional add-on, and none of our install paths pulled them in — not the installer from the purchase email, not the in-place update. The organic-search command failed on first use. Both channels now install with the system and work with no extra step.
- Fixed
The hint we printed alongside that error was a dead end — it had a typo in the package name, so it ended in a second error. Corrected in five places. The same problem affected the hint for the creative safety-zone check: the command looked like it succeeded while installing nothing, so the check kept reporting "skipped". It now actually enables it.
- Improved
Contact details from the client brief finally reach the context. Who to talk to, whether that person can approve a budget, and who owns the account on your side were all being saved in the brief and never reaching the recommendations. They do now — but only when you have actually filled someone in.
- Fixed
The knowledge base and report templates are finally findable. Those files have always shipped in the package, but the documentation pointed at paths that only existed inside our own repository, so every attempt to open them came back empty. Fixed, with instructions for locating them on your machine.
- Fixed
Three corrections in the bundled documentation: the change-log description promised a field we never write; the hint for re-connecting a channel named a command that does not exist; and the change-history review left out a fourth channel — Merchant Center.
- Improved
- v0.5.3July 30, 2026
Google Ads v25, no more orphaned budgets, time zones in the change log
Moved to Google Ads API v25 — checked field by field before anything switched over. On the way there we found a path that could leave a budget sitting on a client account and stop halfway.
- Fixed
Creating a PMax campaign with the "new customers only" option could leave a budget on the account and no campaign. We were setting a field Google does not have on a campaign in any supported API version — the budget was created, then the operation stopped with an error moments later. The option is now refused up front, before anything reaches the API, with a note on where to set that goal instead. Nothing is left behind on the account.
- Improved
Google Ads now runs on API v25. Before switching, we compared it field by field against the previous version: every metric, segment, resource and experiment type the system uses is present. Nothing you were doing goes away — reach-frequency reporting, the iOS/Android split and experiment statistics all behave the same.
- Improved
Change-log entries now carry a time zone. Previously only the machine’s local time was recorded, so if you work from two computers, or across a clock change, events could not be put in order. The time you see is the same as before — what is new is knowing which zone it came from.
- Fixed
The report command listed 7 of the 13 templates. Six finished reports — product feed health and the seasonal calendar among them — shipped in the package but could not be found from the command itself. The list is complete now.
- Fixed
The bundled documentation left out the Search Console and Merchant Center channels and one command. The command list and channel table now match what the system actually does.
- Fixed
- v0.5.2July 29, 2026
TikTok reads its data, GMV Max enters your reports, one change log
The TikTok read path is verified against live accounts. GMV Max campaigns, which report separately, now show up in your numbers. And every change to an account is recorded with a reason, a before-state and an author.
- Fixed
TikTok data reads work at every level. Several field and metric names in our requests were wrong, so reports and campaign listings returned an error instead of numbers. Every read path is now confirmed against live accounts, not only in tests.
- Fixed
ROAS on accounts that record a completed payment rather than a purchase. Revenue arrives in one of two metric families and an account fills only one — we read one of them, so an account with real revenue reported ROAS 0. We now take whichever family the account actually populates, and fall back on the ROAS the platform reports when both are empty.
- New
GMV Max and TikTok Shop campaigns appear in your reports. TikTok reports them through a separate endpoint, so they never showed up in the ordinary campaign listing while the totals still reconciled — on one account that was 29% of spend outside the report. Spend is reconstructed from orders and cost per order; with zero orders we say "unknown", not "zero".
- New
Campaigns with no revenue — followers, reach, views — finally have their own measure: objective result and cost per result. Before, they looked like campaigns with no data at all, which pushed the "what do we switch off" decision onto creative age.
- New
One change log across every channel. Each write now requires a reason and records the state before the change, the author, and a run id — rotating five ads is one operation, not five loose entries. Failed attempts and previewed plans leave a trace too: "the platform rejected the change" used to look exactly like "nobody tried". A new command shows every channel as a single list and reports how many entries actually answer "why".
- New
Meta's own change history alongside yours. Meta records who changed what and when — we now stitch that to our log, so you can see what a person changed in Ads Manager versus what the system did. It also surfaces system writes that never reached the log, meaning they bypassed the safety layer.
- Improved
Smart+ campaigns identified by the right field. The flag the previous read relied on comes back false for campaigns that genuinely are Smart+, so an audit could report "Smart+ unused" on an account whose entire revenue comes from it.
- Improved
On the Agency plan, every team change in the log at /account/audit-log now carries a reason. Previously most entries carried none.
- Fixed
- v0.5.1MajorJuly 28, 2026
Merchant Center on the new API, an organic channel, and the decision core
Google switches off the old Merchant Center API in August — the product module already runs on the new one. Plus Search Console as a read-only channel and 17 modules that work out what is worth doing with an account.
- New
Merchant Center runs on Merchant API v1: accounts and sub-accounts, products, data sources, reports and diagnostics. Google switches off Content API v2.1 on **August 18, 2026** — after that date the old calls stop responding. If you use the product module, this update is required.
- New
Search Console as a new, read-only channel: queries, pages, CTR and average position, plus indexing status checked against your sitemap. Paid and organic sit side by side for the same client.
- New
The Google Ads decision core — 17 modules that compute specific recommendations: budget-limited accounts, scaling candidates, learning phase, marginal cost of sale, search-term n-grams, cannibalization, invalid traffic, PMax placements, conversion goals, bidding strategies, segments and experiments.
- New
Four read-only commands built on that core: scaling candidates, budget-limited triage, invalid-traffic analysis, and PMax placements viewed through brand safety.
- Improved
The system warns you when Google ships an API version newer than the one you are running — previously the version was hard-coded and an install quietly fell behind.
- Fixed
The active client's brief actually reaches Claude. The docs promised every command receives the client's brief and brand voice; nothing was injecting them, so Claude saw a raw placeholder. The brief now arrives once per session and covers free-form questions, not just commands.
- Fixed
Search Console and Merchant Center have a path in the setup wizard, and `spaceads setup` accepts flags instead of rejecting them.
- Fixed
Six commands referenced modules by old paths and failed on launch. All of them run; tests now pin that class of failure.
- New
- v0.4.3June 17, 2026
Connect a platform in one command — and a smoother first run
Connecting an ad platform is now a single focused command, and first-run setup is more reliable across machines and terminals.
- New
Connect one platform at a time: `spaceads-setup --channel meta` (or `tiktok` / `ga4` / `google_ads`) authorizes just that channel for your active client. For the browser-authorized channels it asks nothing in the terminal — it opens a browser, you approve, and you are connected.
- Improved
First-run onboarding now ships the client brief templates with every install, so setting up your first client lands cleanly and consistently.
- Fixed
Setup no longer reports "0 clients" when a client was already saved — your client registry is read the same way no matter how it was written.
- Fixed
Setup runs in more terminals, including Git Bash / mintty on Windows: it falls back to plain text prompts instead of erroring when the terminal is not a full Windows console.
- New
- v0.4.2June 12, 2026
Team audit log now populates
Agency owners now see every confirmed change their team makes, where before the audit log stayed empty.
- Fixed
Confirmed changes on Google, Meta and TikTok now mirror to your account audit log, so an Agency owner's audit trail shows the team's activity instead of staying blank. The mirror is best-effort and can never block or undo an already-applied change.
- Fixed
- v0.4.1June 11, 2026
Updates announce themselves
New releases reach you proactively instead of waiting until you think to ask.
- Improved
The system flags an available update at session start and — once you confirm — installs it itself. The check is non-blocking: being offline or on a slow link never delays Claude Code startup.
- Improved
The update signal refreshes about hourly instead of once a day, so a new release surfaces almost as soon as it goes live.
- Improved
- v0.4.0MajorJune 11, 2026
Build Performance Max campaigns from scratch
The system no longer just analyzes Performance Max — it builds whole tiered campaigns.
- New
Whole-campaign Performance Max creation: budget, campaign, and a separate asset group per tier (Platinum / Gold / Silver / Bronze) with product item_id listing filters. This is the engine behind /spaceads-bucketing — from feed segmentation to a finished campaign structure, fully under the six-layer safety framework and dry-run by default.
- New
A new-campaign tROAS range validator in the safety layer — a new campaign will not launch with a target ROAS outside the safe band.
- Fixed
Geo analysis and the full audit now ship the 110-country location map (with an API fallback), so /spaceads-geo runs cleanly under "python -m".
- New
Start on the latest version
A subscription gives you the current engine, every channel, and each release that follows — for as long as you keep it active.