name: marketing-dashboard description: Unified marketing metrics dashboard and CLI. Use when building or running a marketing status dashboard that pulls from PostHog, Google Search Console, Stripe, and ad platforms. Covers traffic, SEO, ads, revenue, and funnel conversion reporting in terminal output.
Marketing Dashboard
Unified CLI for marketing metrics. Built for quick status checks and deeper dives.
Quick Start
./dashboard.py status
./dashboard.py seo --period 30d
./dashboard.py ads --period 7d
./dashboard.py revenue --period 90d
./dashboard.py funnel
Commands
mktg status- Traffic (7d), revenue (30d), top errorsmktg seo --period [7d|30d|90d]- GSC clicks, impressions, avg position, top queriesmktg ads --period [7d|30d]- Spend, impressions, clicks, CPA by platformmktg revenue --period [30d|90d]- MRR, churn, new subs, revenue by productmktg funnel- Funnel: visit → signup → trial → paid
Environment
| Variable | Purpose |
|---|---|
POSTHOG_API_KEY | PostHog API key |
POSTHOG_PROJECT_ID | PostHog project id |
GSC_SITE_URL | Search Console property URL |
GOOGLE_APPLICATION_CREDENTIALS | Service account JSON path |
STRIPE_SECRET_KEY | Stripe API key |
ADS_METRICS_PATH | JSON file for ad platform metrics |
ADS_METRICS_JSON | Inline JSON for ad metrics |
FUNNEL_STEPS | Comma list of PostHog events (default: $pageview,signup,trial,paid) |
Ads JSON Shape
{
"google": {"spend": 123.45, "impressions": 10000, "clicks": 321, "cpa": 12.34},
"meta": {"spend": 98.76, "impressions": 9000, "clicks": 210, "cpa": 15.67}
}
Files
dashboard.py- Click CLI entrypoint (mktg)src/posthog_client.py- PostHog API wrapper viahttpxsrc/gsc_client.py- Search Console wrapper viagoogle-auth+googleapiclientsrc/stripe_client.py- Stripe metrics wrappersrc/display.py- Rich tables and formatting
Notes
- Prefer PostHog for traffic and funnel. Uses
insights/trendandinsights/funnel. - GSC reads only. Requires Search Console access for the service account.
- Stripe metrics are computed from subscriptions and invoices; keep product naming consistent.