Space Ads OS

Run Google, Meta and TikTok
by talking to a system

Ask in plain English — the system pulls data from Google Ads v24, Meta v25.0, TikTok v1.3 and GA4, prepares recommendations, and a 6-layer safety check makes sure no change ships without your 'yes'. Monthly subscription with auto-pay, cancel anytime. Self-hosted on your side, on your own API keys.

Full technical documentation →

From $49.00 / month

Built at Space Ads agency and used in production since 2024.

This is how a command looks in practice — type in English, the system does the rest.

claude code · space-ads-os

$ /spaceads-check Plein Outlet

→ pulling Google Ads v24 · 30d window

→ pulling Meta v25.0 · 30d window

→ joining GA4 attribution data

Health score: 76 / 100

Spend yesterday: 2,140 €

⚠ Search Limited by Budget × 2 campaigns

⚠ PMax frequency 5.2× (warning)

Suggested actions: 3 · waiting for your approval ↵

What ships in the package

  • 17 slash commands
  • 5 specialized AI subagents
  • 4 channels: Google Ads, Meta, TikTok, GA4
  • 7 brand-styled HTML report templates
  • 6 safety layers on every change
  • Agency mode — many clients, one CLI

Built and used in production at Space Ads agency

  • 17 Claude Code commands
  • 5 AI subagents (mutation-reviewer, report-builder, brand-extractor, creative-director, onboarding-coach)
  • 4 ad channels + GA4
  • 6 safety layers on every mutation

The problem

Ad platforms are getting more black-box, your day isn't getting longer

Performance Max and Advantage+ hide the decisions

Google and Meta keep moving toward 'tell us your goal, we'll optimize'. You lose visibility into where the money goes and which product segments pull weight versus drain budget.

Three dashboards, three attribution stories, one client

You juggle Google Ads, Meta and GA4 every day, each with different attribution. Pulling a coherent report takes hours and ends up as constant tab switching.

Fear of automation that "breaks something on its own"

Google Ads rules and bidding strategies work, until they don't. You worry a tool will bump a budget by 200% or add a BROAD match negative in the wrong ad group and tank a campaign.

How it works

Three steps, every one under your control

The system does not make decisions for you. It does the analytical and execution work — the call still belongs to you. First run is a 5-minute conversational onboarding — the onboarding-coach agent asks about your vertical, goals and channels and writes brief.yaml itself.

  1. 01
    01

    You ask in Claude Code

    Open a terminal, type something like "Check Plein Outlet for March" or "Find wasted spend in Search campaigns". The system understands the context, picks the right account and the right scripts.

  2. 02
    02

    It pulls data and analyzes

    Real queries to Google Ads v24, Meta v25.0, TikTok v1.3, GA4 and Merchant Center. N-gram analysis on Google search terms, hook rate and completion rate for TikTok, GA4-vs-panel attribution gap. No ML, no black box — plain rules you can read.

  3. 03
    03

    You approve a change, it executes

    Every mutation goes through a 6-layer safety check: limits, destruction blocker, preview, mutation-reviewer agent, post-mutation verification, audit log. Nothing happens without your "yes".

17 slash commands

Each command does one thing well

Type it in Claude Code, the system runs, the audit log captures. No UI, no panels — you're running commands from day one.

Diagnostic

  • /spaceads-check360° account audit — 19 sections, health score 0–100
  • /spaceads-overviewState of every channel for the active client on one screen
  • /spaceads-monitorDaily alert check: learning limited, budget pacing, ROAS drift
  • /spaceads-changesWhat changed in the last N days, per channel

Strategy

  • /spaceads-strategy30-day optimization plan with priorities and KPIs
  • /spaceads-keyword-researchN-gram + intent analysis, negative-keyword candidates
  • /spaceads-geoPer-region performance (HHI), geo exclusions

Mutation

  • /spaceads-modifyChange with preview, reviewer and confirm — no slip-ups
  • /spaceads-createNew campaign / ad set / negative list from a vertical playbook

Reporting

  • /spaceads-reportBrand-styled HTML — pick from 7 templates
  • /spaceads-ga4GA4-vs-panel attribution gap, landing page health

Brand + creative

  • /spaceads-brandExtract logo, palette, fonts and voice from the client website
  • /spaceads-briefView / edit / reload the active client's brief.yaml + voice.md
  • /spaceads-creativeWireframe with safety zones + asset validator

Admin

  • /spaceads-onboard5-minute conversational setup — operator + first client
  • /spaceads-clientlist / switch / add — many clients in one CLI
  • /spaceads-agencyCross-client rollup of spend, ROAS and alerts

Google Ads

A full toolkit on the current v24 API

15+ mutation scripts plus diagnostics, attribution and multi-account monitoring on Google Ads API v24. Each with a clear job, each runnable with one command.

  • 360° account audit

    19 diagnostic sections in a single run: campaign structure, keywords, tracking, quality score, account settings, learning-phase alerts. Output includes a 0–100 health score.

    google_ads.scripts.full_audit
  • Search terms & safe negatives

    N-gram analysis (1/2/3-word) finds wasted-spend patterns at the statistical level, not query by query. Suggests negatives in PHRASE and EXACT — BROAD match is hard-blocked.

    google_ads.scripts.search_terms_analyzer
  • Shopping + Merchant Center

    Product-level ROAS split into Stars / Workers / Zombies / Draggers. Feed diagnostics (errors, missing fields, policy violations) via Merchant Center Content API v2.1.

    google_ads.scripts.feed_optimizer + google_ads.merchant_center
  • Performance Max — full visibility

    SEARCH / CONTENT / YOUTUBE / DISCOVERY breakdown per asset group. Gender exclusions (v24), retail filter shared sets (v24), VTC toggle. Things the panel itself does not surface.

    google_ads.scripts.pmax_channel_performance
  • Cart data — what they buy, what they add on

    New view from Google Ads v24: lead_revenue (the SKU that earned the click) vs cross_sell_revenue (what landed in the cart on top). Critical for e-commerce with broad catalogs.

    google_ads.scripts.cart_data_analysis
  • Bidding (tROAS / tCPA) with guardrails

    Target ROAS changes within a 0.5×–20× range, max ±30% per change. The preview shows campaign ROAS history, the system blocks changes that would risk disrupting the learning phase.

    google_ads.scripts.update_troas
  • Geo, device, daypart

    Performance per country (with HHI concentration index), per device, per hour of day. Surfaces wasted spend by region and time, suggests geo exclusions.

    google_ads.scripts.geo_analysis + google_ads.scripts.device_performance
  • GA4 attribution gap

    Confronts Google Ads clicks with GA4 sessions. Shows where the conversion path drifts (lost UTM parameters, tag issues, multi-domain) plus landing page health: bounce, engagement, session duration per campaign.

    google_ads.ga4_helper + google_ads.scripts.landing_page_check
  • Monitoring & alerts

    Daily alert check across the whole MCC: learning-limited, budget pacing off, ROAS drift, no spend, suspension risk. Email digest, JSONL audit trail, optional webhook integration.

    google_ads.scripts.alert_check + google_ads.scripts.campaign_watchdog

Meta Ads

Diagnostics, optimization and safe changes for Facebook + Instagram

5 mutation scripts plus diagnostics, recommendation engine and blended GA4 on Marketing API v25.0. You read, optimize and execute changes in one place — with a mandatory confirm wrapper that will not let anything happen without your sign-off.

  • Insights at three levels

    Campaign / AdSet / Ad in one pass. Actions extracted from the actions[] array, CPA / ROAS / CTR computed precisely per conversion type (Purchase, Lead, custom).

    insights.py + analysis.py
  • Diagnostics & alerts

    Threshold rules on frequency cap, CPA, CTR, ROAS — at CRITICAL / WARNING / INFO severity. Catches campaigns stuck in learning, frequency ≥2.5× (warning) and ≥4× (critical), ROAS drifting below target.

    diagnostics.py
  • Recommendation engine

    Budget reallocation across adsets driven by median ROAS, frequency tuning suggestions, audiences flagged for testing. Every recommendation comes with numbers and a rationale.

    optimization.py
  • Blended Meta + GA4

    Joins Meta insights with GA4 by campaign name. Shows how many conversions Meta counts on its side vs how many GA4 actually sees on the store side — the real attribution gap, not a pixel argument.

    blended.py
  • Safe campaign changes

    Pause / update budget / update ROAS target — with a mandatory .confirm() wrapper. Never delete (operation is blocked). Limits: budget max ±30% per change, 3–5 days between tunings.

    campaigns.py + adsets.py + safety.py
  • WoW / MoM trends and anomalies

    Week-over-week and month-over-month with statistical anomaly detection. Tells you whether a dip is seasonal, a weekend effect or a real campaign issue.

    trends.py

TikTok Ads

Full integration with TikTok Business API v1.3

4 mutation scripts plus creative diagnostics, Smart+ migration and CAPI with EMQ on TikTok Business API v1.3. Mutations follow the same dry-run + .confirm() pattern as Meta.

  • Insights at four levels

    Advertiser / Campaign / AdGroup / Ad — plus an hourly breakdown. Default 26 metrics: spend, conversions, total_purchase_value, video_watched_2s, video_views_p100, ROAS, CPA, CTR. All from a single /report/integrated/get/ endpoint.

    insights.py + analysis.py
  • TikTok creative diagnostics

    The metrics TikTok actually rewards: hook rate (30% threshold), completion rate (10% threshold), frequency fatigue (warning at 2.5×, critical at 3.5×), creative decay after 10 days. Severity-tagged alerts: CRITICAL / WARNING / INFO.

    diagnostics.py + rules.py
  • Smart+ migration by the rules

    Checks whether a campaign meets Smart+ criteria: min 50 conversions/week, EMQ ≥ 6 on the Pixel, 6+ creative variants, ROAS within ±15%. If yes — produces a migration plan; if not — flags exactly what is missing.

    optimization.py
  • Pixel + Events API (CAPI)

    Full server-side support: POST /event/track/ with SHA-256 hashing on email/phone/external_id, 5-minute dedup window, Event Match Quality validation (target ≥ 6, warning below 5). Smart+ and VBO require Pixel + CAPI together.

    pixel.py
  • Safe mutations + bulk

    pause / resume / update_budget / update_bid — each via PendingAction with dry_run by default. Limits: budget ±30%, bid ±25%, min 3 days between learning-phase changes, delete blocked. For many campaigns at once: bulk_pause_campaigns().

    campaigns.py + adgroups.py + safety.py
  • Async reports + GA4 blended

    Reports beyond 180 days / 10k rows go through an async flow (create → poll → download). Plus blended.py: merges TikTok insights with GA4 by campaign name — the actual attribution gap between "what TikTok says" and "what GA4 sees".

    reports_async.py + blended.py

GA4 + multichannel attribution

One source of truth on the store side, not three pixel arguments

GA4 is read-only — the system joins it with Google Ads, Meta and TikTok by campaign name and shows who actually drove the conversions.

  • GA4 vs panel attribution gap

    Shows the gap between what Meta counts on its side and what GA4 sees in your store. Pixel argument closed with numbers.

    multichannel.attribution_compare
  • Landing page health

    Bounce, engagement, session duration per campaign. Catches LPs silently dragging CPA up.

    ga4.scripts.landing_page_quality
  • Cross-channel blended view

    Google + Meta + TikTok + GA4 in one CSV/HTML — unified attribution in your weekly report at last.

    multichannel.attribution_compare + multichannel.overview

Safety

Six layers that make sure nothing breaks

This is not "AI oversight". These are deterministic rules baked into code plus one specialized review agent — they behave the same on a Friday at 5pm and a Sunday at 3am.

  1. 01Layer 01

    Guardrails

    Hard limits in code: budget max ±30% per change, target ROAS within 0.5×–20×, BROAD match negatives unconditionally blocked, edits blocked on campaigns in learning phase.

  2. 02Layer 02

    Destruction blocker

    REMOVE operations are disabled at the API client level. There is no command that deletes a campaign, ad group or keyword — not by accident, not even with full access.

  3. 03Layer 03

    Preview on every change

    Before anything hits the API, you see exactly: which object, which field, from what value to what value, expected impact on spend.

  4. 04Layer 04

    mutation-reviewer agent (AI review)

    A specialized Claude Sonnet subagent reads the change plan against campaign history and the playbook and returns one of APPROVE / WARN / BLOCK. WARN surfaces the risk, BLOCK hard-stops execution. This is the only place AI judges anything on its own — and it runs before your confirmation, not instead of it.

  5. 05Layer 05

    Post-mutation verification

    After the change, the system reads back from the API. If the post-state does not match the expected one, the change is flagged as incomplete and you get an alert.

  6. 06Layer 06

    Audit log

    Every mutation lands in logs/changes.jsonl: who, when, on what, from which state to which, with what reason, with the reviewer verdict. Full audit trail — useful in every client conversation.

Plus a mandatory .confirm() on Meta changes and a 15-minute GAQL cache on Google Ads queries (saves API quota and speeds up repeat reports).

AI subagents

Five specialized Claude subagents, not one general-purpose chat

Each subagent owns one piece of work. The main Claude Code orchestrates — agents execute, each in its own context window.

  • mutation-reviewer

    Reads every planned change against campaign history and the playbook, returns APPROVE / WARN / BLOCK. Independent review before your "yes".

    agents/mutation-reviewer.md
  • report-builder

    Generates HTML reports in client branding — executive summary, e-commerce, lead-gen, brand awareness, social engagement, content analysis, local. Email-ready out of the box.

    agents/report-builder.md
  • brand-extractor

    Visits the client website, extracts logo, palette, fonts and tone-of-voice, writes them into brief.yaml.brand_system. Onboarding without a manual brief.

    agents/brand-extractor.md
  • creative-director

    Takes a brief and a wireframe, validates safety zones per platform (Meta Stories/Reels/Feed, Google Display 5 aspect ratios, TikTok in-feed), returns a production-ready spec.

    agents/creative-director.md
  • onboarding-coach

    Runs a 5-minute conversational onboarding — asks about vertical, goals, channels, clients, generates brief.yaml. Triggered by the SessionStart hook.

    agents/onboarding-coach.md

Reports

7 brand-styled HTML templates — email-ready out of the box

Brand-styled (logo, palette, fonts from brief.yaml.brand_system), responsive, with built-in commentary and CTA. Generated by /spaceads-report.

  • Executive summary

    HTML, brand-styled

    Top-level KPIs, WoW/MoM trends, top 3 recommendations. For a decision-maker, not a performance specialist.

  • E-commerce performance

    HTML, brand-styled

    ROAS per channel, top SKUs, Stars/Workers/Zombies/Draggers, GA4 attribution gap. Hard report for a store.

  • Lead generation

    HTML, brand-styled

    CPL, MQL→SQL pipeline, source quality scoring, cost per stage. B2B perspective.

  • Brand awareness

    HTML, brand-styled

    Reach, frequency, view-through, brand search lift, share of voice. For TOFU campaigns.

  • Social engagement

    HTML, brand-styled

    Hook rate, completion rate, saves, shares, comments sentiment. TikTok and Instagram-first.

  • Content analysis

    HTML, brand-styled

    Performance per creative format (UGC vs studio, static vs video, hook style). What to produce next.

  • Local business

    HTML, brand-styled

    Per-location: ROAS, CPC, geo coverage, store visit conversions. For multi-location and franchise.

Brand + creative pipeline

From the client website to a production-ready creative spec

Four steps, each driven by an agent or a command. No "send me the brand book PDF" and no 24h ban after review.

  1. 01

    Brand extract

    The brand-extractor agent pulls logo, palette, fonts and voice from the client URL and writes them into brief.yaml.brand_system. No manual briefing.

  2. 02

    Brief

    /spaceads-brief generates a creative brief for the campaign objective — hook angles, value props, proof points, CTA — in the brand voice, not corporate speak.

  3. 03

    Wireframe

    The creative-director agent assembles a wireframe per format (Meta Story 1080×1920, Reel, Feed 1:1, Google Display 5 ratios, TikTok in-feed 9:16) with safety zones and text-overlay slots.

  4. 04

    Validator

    Checks dimensions, safe-zone, contrast and text-on-image % against the platform policy. Anything that would fail review goes back to iteration immediately, not after a 24h ban.

Agency mode

Many clients, one CLI, isolated audit logs

Every client gets its own brief.yaml, its own voice.md, its own logs/changes.jsonl. /spaceads-agency adds a cross-client rollup — without mixing data.

  • clients/registry.yaml — single source of truth for active clients
  • Per-client brief.yaml: goals, ICP, voice, brand_system, vertical playbook
  • Per-client credentials/ — your Google Ads token, Meta business, TikTok account stay isolated
  • Per-client logs/changes.jsonl — full audit trail per client (GDPR-friendly)
  • /spaceads-agency — cross-client rollup of spend, ROAS, alerts for the agency weekly
clients/registry.yaml
clients:
  - id: plein-outlet
    name: Plein Outlet
    vertical: dtc-ecommerce
    channels: [google, meta, ga4]
  - id: acme-saas
    name: Acme SaaS
    vertical: b2b-saas
    channels: [google, meta]

Vertical playbooks

Five verticals, five different rule sets

The system picks optimization patterns for your vertical — tROAS targets, conversion lag, bidding strategy presets, campaign structure.

  • DTC e-commerce

    PMax + Shopping + Search brand. Stars/Workers/Zombies/Draggers segmentation. Cross-sell tracking. Conversion lag 3–7 days.

  • Lead generation B2C

    Conversion ladder MQL→SQL, source quality scoring, lead value per stage. Conversion lag 7–14 days.

  • B2B / SaaS

    Long sales cycle (14–30+ days), MQL→SQL→Opportunity tracking, brand search incrementality, LinkedIn as a placeholder.

  • Mobile app

    Install→engage→retain funnel, AppsFlyer/Adjust integration, in-app event optimization, ARPU targets.

  • Local / multi-location

    Per-location geo, store visit conversions, local Search, Google Business Profile signals.

Embedded know-how

Optimization patterns that work — baked into the product

knowledge/patterns.md is a distilled brief of the team's experience running campaigns. The system references these patterns automatically; you can also read and adapt them for your business.

  • tROAS ramp-up

    How to push target ROAS up safely without killing the learning phase: max ±30% every 5–7 days, minimum 14-day monitoring window, expect a conversion dip in the first 3 days after the change.

  • Meta Andromeda — full-funnel optimization at the ad-set level

    Andromeda optimizes at the ad-set level, not per ad. Spend distribution is intentionally uneven — one ad commonly takes 60–80% of the budget. You evaluate the ad-set portfolio, not individual ad CPA, and you don't pause based on single-ad metrics. Test 10+ conceptually distinct creatives, not minor variations of the same one.

  • Conversion lag awareness

    E-commerce: 3–7 days from click to actual conversion. B2B / lead gen: 14–30 days. The system does not panic when "today's" ROAS looks low — it knows when to evaluate.

  • PMax vs Search ROAS comparison

    How to compare Performance Max and Search fairly when PMax cannibalizes brand search: forced SEARCH-only breakdown, brand-traffic correction, real incremental ROAS.

  • Learning-phase respect

    A learning campaign is sacred: ±30% is the absolute change limit, no creative edits, no audience changes, ad scheduling only in extreme cases.

Comparison

Manual vs Space Ads OS

Concrete numbers, not promises. Times measured against an average e-commerce account running PMax + Search + Shopping with parallel Meta campaigns.

  • Daily account health check
    45–60 min (4 tabs, manual comparisons)
    2–5 min (one command, severity-tagged alerts)
  • Weekly client report
    2–3 h (export, merge, format)
    15–25 min (auto-generated digest + commentary)
  • Find wasted spend in search
    2–4 h analysis in Google Sheets
    30 sec (N-gram analysis on 90 days)
  • Consolidate Google + Meta + GA4
    3 dashboards, 3 attributions, manual reconciliation
    One blended report with attribution gap
  • Safe tROAS change on 5 campaigns
    15–20 min + risk of human error
    60 sec with preview, reviewer and audit log
  • Product feed health check
    Open Merchant Center + manual categorization
    Error list + spend impact per category

What you get

What you get in the subscription

  • Full CLI + every module

    The complete Space Ads OS CLI — every Google Ads script, Meta module, TikTok integration, GA4 and Merchant Center. Updated with one command, runs on your own infrastructure.

  • 17 slash commands + 5 AI subagents

    Full command and subagent catalog — from /spaceads-check to /spaceads-agency, including mutation-reviewer and creative-director. No UI, no panels — you're running commands from day one.

  • 7 HTML report templates

    Executive summary, e-commerce, lead-gen, brand awareness, social, content analysis, local. Brand-styled from brief.yaml.brand_system. Generate by command, open in the browser, send by email.

  • Updates included for the lifetime of your subscription

    Every new API version (Google v24→v25, Meta, TikTok), every new playbook, agent and report template lands automatically — as long as your subscription stays active.

  • Email support for the lifetime of your subscription

    First 30 days are onboarding priority. After that, standard SLA: business days, within 24h. OAuth setup, API debugging, version-bump help (v24→v25).

  • Monthly VAT invoice

    Full invoice the moment payment clears — PL with VAT 23%, EU B2B with VAT-EU reverse charge, non-EU export VAT-free.

Pricing

Monthly subscription, self-hosted

Pay once a month, automatically. Cancel anytime from the dashboard — the next renewal won't charge your card. No per-seat, no per-account, no hidden cost.

Space Ads OS

Monthly subscription with auto-pay

$49.00/ month

net · VAT depends on your country

  • Full CLI + every module
  • 17 slash commands + 5 AI subagents
  • 7 brand-styled HTML report templates
  • Every API update during your subscription
  • Agency mode — many clients, isolated audit logs
  • Email support while your subscription is active
  • Monthly VAT invoice
  • Cancel anytime — no penalty, no prorate
Activate subscription

First charge happens immediately after you submit the form. Subsequent charges — every month on the same day, automatically from the saved card. Cancelling at academy.spaceads.agency/account/subscription stops the next renewal; the current cycle still runs to its end. Self-hosted on your side. Requires your own: Google Ads developer token, Meta app, GA4 service account. After cancellation the CLI stops executing commands at the next billing cycle — your data, keys and accounts stay untouched on disk.

Net price per month. Final VAT depends on your country and VAT-EU status — shown in checkout.

FAQ

Questions we get the most

  • Do I need to know how to code?
    You don't need to write code, but you need to be comfortable in a terminal. Day-to-day work is typing commands in Claude Code (e.g. /spaceads-check). Setup involves a one-time paste of API keys into config files — step by step in the docs. If you've ever installed git or Python, you'll be fine.
  • Do I need Claude Code?
    Yes — Space Ads OS works as a toolkit that orchestrates Claude Code. Claude Code is free to download from Anthropic and runs on macOS, Linux and Windows. First install takes about 5 minutes, instructions are included.
  • Do I need a Google Ads developer token?
    Yes. Anyone calling the Google Ads API needs their own developer token at Basic level (up to 15k ops/day, plenty for a solo operator) or Standard. The token is issued **from a Manager Account (MCC)** — not from a regular Google Ads account. Apply through TOOLS → API Center inside the MCC; approval typically lands in 1–2 business days. The package includes a checklist of what to fill in.
  • What if I don't have a Manager Account (MCC), just a regular Google Ads account?
    You need to create an MCC — Google does not issue developer tokens from regular accounts, regardless of whether you manage 1 client or 50. Setup is free, ~10 minutes: ads.google.com/aw/accounts/managers/ → Create manager account → use case "Manage my own accounts" for solo or "Manage other accounts" for agencies. Then link your existing Google Ads account to the MCC (Sub-account settings → Link existing account with the 10-digit Customer ID). From the MCC, apply for the developer token. The CLI setup wizard walks you through this end-to-end.
  • Can I run only one platform — say, just Google?
    Yes. Each module works independently. If you only run Google Ads, you only use the Google Ads scripts. Meta and TikTok come online once you plug in the relevant credentials (Marketing API for Meta, TikTok Business app + OAuth for TikTok).
  • Do you support TikTok Ads?
    Yes — full integration with TikTok Business API v1.3: insights at four levels, creative diagnostics with hook rate and completion rate, Smart+ migration, Pixel + Events API with EMQ, safe mutations, async reports. A handful of v2 endpoints (/dmp/, /pixel/, /event/track/, /spark/) need path verification on first real call — clearly flagged in the included docs.
  • What if the system breaks my campaign?
    The six safety layers exist exactly to prevent that: ±30% limits, destruction blocker, preview, mutation-reviewer agent (APPROVE/WARN/BLOCK), post-mutation verification, audit log. Plus every change waits for your approval. If something still goes wrong — the logs hold the exact pre and post state, so a rollback is one command.
  • What about API updates? Google is shipping v25.
    API updates are included as long as your subscription is active. We pin stable versions (currently Google v24, Meta v25.0, TikTok v1.3) and ship updates when a new version brings meaningful features or when an old one starts to be deprecated. No extra fee for version bumps.
  • What about the security of my data?
    The system is self-hosted on your side. API keys stay on your disk (credentials/, gitignored). Nobody from outside has access to your accounts — Space Ads does not see your data, because nothing goes anywhere external. That is a meaningful difference from SaaS tools where the agency has to grant MCC access to a third party.
  • Does it work on Mac, Windows and Linux?
    Yes. Python 3.10+, runs natively on macOS, Linux and Windows.
  • What happens when I cancel?
    Cancel from academy.spaceads.agency/account/subscription. The current billing cycle runs out — the CLI keeps working through it. After the cycle ends the CLI stops accepting commands. All your data, audit logs, brief.yaml and credentials/ stay untouched on disk — only the CLI is blocked. Reactivate any time and pick up where you left off, no re-onboarding.
  • Where can I read the full documentation before I buy?
    Full technical documentation lives at /space-ads-os/docs — complete list of 17 commands, 5 agents, 7 reports, per-platform creative specs, and the 6-layer safety pipeline. Browse everything before deciding to subscribe.
  • Can I get a refund if I change my mind?
    The first charge is non-refundable from the moment performance starts (matching the digital-delivery withdrawal-waiver you accept at checkout). For subsequent months — cancellation in the dashboard stops the next charge, with no proration. There is no standard refund-window; for exceptional cases (technical failure on our side) write to support@spaceads.agency and we will review case by case.
  • What support do you offer?
    Email: support@spaceads.agency. First 30 days — priority onboarding, response under 8h on business days. Afterwards standard SLA: 24h on business days. Coverage: OAuth setup (Google/Meta/TikTok), API debugging, version migrations, questions about commands and agents. Out of scope: custom CLI modifications, custom integrations with your internal systems.

Fewer tabs, more decisions

Monthly subscription, cancel anytime. Self-hosted on your side, runs across all your ad accounts — no per-seat. Monthly invoice, instant access after first payment.

Activate Space Ads OS subscription