Skip to main content

Marketing as Code - Manage ad campaigns like infrastructure

Project description

growthctl logo

growthctl

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

Marketing as Code CLI for managing ad campaigns declaratively using YAML and Git.

Note: This project is currently in active development. APIs and configuration schemas are subject to change.

Plan and apply campaign changes safely with Terraform-style dry runs. Version control your ad strategy and collaborate using standard Git workflows. Manage Meta (Facebook/Instagram) ads with built-in provider support.

growthctl demo

Table of Contents

Install

Install using uv (recommended):

uv tool install growthctl

Install using pipx:

pipx install growthctl

Or using pip:

pip install growthctl

Usage

Define your campaign in campaign.yaml:

version: "1.0"
campaigns:
  - id: summer-sale
    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

Preview and apply changes:

# Preview changes
growthctl plan campaign.yaml

# Apply to live
growthctl apply campaign.yaml

Contributing

See the contributing file for details.

License

MIT © growthctl contributors

Contact

For questions or feedback, please reach out to growthctl@gmail.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

growthctl-0.1.3.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

growthctl-0.1.3-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file growthctl-0.1.3.tar.gz.

File metadata

  • Download URL: growthctl-0.1.3.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for growthctl-0.1.3.tar.gz
Algorithm Hash digest
SHA256 5a0145a93131194a7bc7ef0987e156e3f61bfaff0a2e4adfe0f6c2fc5924b130
MD5 35a8a3dc8eac520956821bc545819e42
BLAKE2b-256 9afe5548f9a807dbef00a29a2b895c8f081277d72c8640500ac27d60c44a78ae

See more details on using hashes here.

File details

Details for the file growthctl-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: growthctl-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for growthctl-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 98e8dfa4cad26b405b77f402fc4b7fc69dca0624b0df44a2ad1bb51798b7749c
MD5 2ac80babe34d964d38ca0607ce73d1f4
BLAKE2b-256 2671cb3d05fdac1956e570b645bfc89ac183ca7bd0696a7d9f87491c9e552f07

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page