Introduction
growthctl is a CLI tool that brings Infrastructure-as-Code principles to marketing campaign management. Define your ad campaigns in YAML, version control them, and deploy with confidence.
info
This project is currently in active development. APIs and configuration schemas are subject to change.
Why growthctl?
Managing ad campaigns through web UIs is error-prone and doesn't scale:
- No version control - Changes are hard to track and rollback
- No code review - Team members can't review changes before they go live
- No automation - Manual processes lead to human errors
- No consistency - Different team members set up campaigns differently
growthctl solves these problems by treating marketing campaigns as code.
Key Features
- Declarative YAML - Define campaigns, ad sets, and targeting in simple YAML files
- Plan & Apply - Preview changes before applying them (like Terraform)
- Import existing - Import your current campaigns to YAML and start managing them as code
- Multi-provider - Support for Meta (Facebook/Instagram) with more platforms coming
Quick Example
version: "1.0"
campaigns:
- id: summer-sale-2026
name: Summer Sale 2026
objective: OUTCOME_SALES
status: ACTIVE
ad_sets:
- id: us-audience
name: US Audience
status: ACTIVE
budget_daily: 5000
targeting:
locations: ["US"]
age_min: 25
age_max: 54
interests: ["online shopping", "fashion"]
# Preview changes
growthctl plan campaign.yaml
# Apply to live
growthctl apply campaign.yaml
Installation
Install using uv (recommended):
uv tool install growthctl
Install using pipx:
pipx install growthctl
Or using pip:
pip install growthctl
For development setup, see our Contributing Guide.
Next Steps
- Getting Started - Set up your first campaign
- CLI Reference - Full command documentation
- Configuration - YAML schema and options