Getting Started
This guide walks you through setting up growthctl and managing your first campaign.
Prerequisites
- Python 3.10 or higher
- A Meta (Facebook) Business account with Marketing API access
Installation
We recommend using uv to install growthctl:
uv tool install growthctl
Alternatively, you can use pipx:
pipx install growthctl
Or with standard pip:
pip install growthctl
Development Setup
If you want to contribute or modify the code, see our Contributing Guide.
Configuration
Meta Provider Setup
To connect to Meta's Marketing API, set the following environment variable:
export META_ACCESS_TOKEN="your-access-token"
You can get an access token from the Meta Business Suite.
Mock Mode
If no credentials are set, growthctl runs in mock mode - perfect for testing and learning:
# No credentials = mock mode
growthctl plan campaign.yaml
Your First Campaign
1. Create a Campaign File
Create a file called campaign.yaml:
version: "1.0"
campaigns:
- id: my-first-campaign
name: My First Campaign
objective: OUTCOME_TRAFFIC
status: PAUSED
ad_sets:
- id: test-audience
name: Test Audience
status: PAUSED
budget_daily: 1000
targeting:
locations: ["US"]
age_min: 18
age_max: 65
2. Preview Changes
Run plan to see what would change:
growthctl plan campaign.yaml
Output:
╭─ Running Plan for campaign.yaml ─╮
+ Create Campaign: My First Campaign (ID: my-first-campaign)
+ Create AdSet: Test Audience
3. Apply Changes
When ready, apply to your ad account:
growthctl apply campaign.yaml
You'll be prompted for confirmation before any changes are made to your live account.
Importing Existing Campaigns
Already have campaigns running? Import them to YAML:
growthctl import "Summer Sale" --output summer-sale.yaml
This creates a YAML file from your existing campaign that you can then version control and manage with growthctl.
Next Steps
- CLI Reference - Detailed command documentation
- Configuration - Full YAML schema reference
- Providers - Provider-specific setup guides