Skip to main content

Introduction

PyPI version License: MIT Project Status: Active – The project has reached a stable, usable state and is being actively developed.

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.

growthctl demo

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