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.
$ /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.
- 0101
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.
- 0202
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.
- 0303
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_auditSearch 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_analyzerShopping + 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_centerPerformance 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_performanceCart 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_analysisBidding (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_troasGeo, 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_performanceGA4 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_checkMonitoring & 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.pyDiagnostics & 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.pyRecommendation 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.pyBlended 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.pySafe 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.pyWoW / 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.pyTikTok 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.pySmart+ 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.pyPixel + 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.pySafe 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.pyAsync 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_compareLanding page health
Bounce, engagement, session duration per campaign. Catches LPs silently dragging CPA up.
ga4.scripts.landing_page_qualityCross-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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.mdreport-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.mdbrand-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.mdcreative-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.mdonboarding-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.
- 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.
- 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.
- 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.
- 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:
- 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 check45–60 min (4 tabs, manual comparisons)2–5 min (one command, severity-tagged alerts)
- Weekly client report2–3 h (export, merge, format)15–25 min (auto-generated digest + commentary)
- Find wasted spend in search2–4 h analysis in Google Sheets30 sec (N-gram analysis on 90 days)
- Consolidate Google + Meta + GA43 dashboards, 3 attributions, manual reconciliationOne blended report with attribution gap
- Safe tROAS change on 5 campaigns15–20 min + risk of human error60 sec with preview, reviewer and audit log
- Product feed health checkOpen Merchant Center + manual categorizationError 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
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