Practical automation scripts for performance marketing operations: inbox management, platform auditing, reporting workflows, and repeatable campaign-health checks.
This toolkit is built for operators who need faster diagnosis, cleaner execution, and less manual reporting drag.
Marketing operations teams lose time and budget to predictable failures: campaigns pace incorrectly, conversion tracking goes stale, spend leaks into irrelevant search terms, and reports get assembled manually every week.
These scripts automate detection and diagnosis so operators can focus on decisions.
The goal is not to replace judgment. The goal is to surface issues earlier, reduce manual review, and make recurring workflows more reliable.
flowchart LR
Inputs[Operational inputs] --> DryRun[Dry-run preview]
DryRun --> Review[Human review]
Review --> Apply[Apply approved actions]
Apply --> Report[Structured report]
Report --> Decision[Next decision]
Inputs --> Inbox[Inbox automation]
Inputs --> Audit[Platform audit]
Inputs --> Brief[Executive briefing]
Inbox --> DryRun
Audit --> DryRun
Brief --> Report
These are the active scripts this repo exposes today.
| Script | Command | What it does | Safety posture |
|---|---|---|---|
| Gmail Inbox Accelerator preview | python -m src.inbox.accelerator |
Loads configurable Gmail rules, searches matching messages, and previews label/archive actions | Dry run by default; no Gmail or local state changes are saved |
| Gmail Inbox Accelerator apply | python -m src.inbox.accelerator --apply |
Applies reviewed rules to Gmail labels, archive state, and read state if configured | Write-capable; run only after preview review |
| Inbox status check | python -m src.inbox.accelerator --status |
Prints current state, rule index, labeled count, archived count, errors, runs, and last run | Read-only |
| Inbox state reset | python -m src.inbox.accelerator --reset |
Removes local processing state so the next run starts from rule 0 | Local state only |
| Google Ads Campaign Health Audit | python -m src.audit.campaign_health --days 30 |
Pulls Google Ads campaign data and checks budget pacing, conversion health, impression share, naming, auto-tagging, and status anomalies | Read-only API workflow |
Reporting workflows are represented in the repo as output patterns and operating guidance. They are not positioned here as a separate production reporting application unless backed by an executable script.
Rule-based email processing using the Gmail API. Categorizes, labels, archives, and prioritizes messages in batch.
- Rule engine — configurable pattern matching by sender, subject, and keywords
- Batch processing — labels and archives messages efficiently through API calls
- State persistence — tracks progress across runs and resumes where it left off
- Dry-run mode — previews changes without modifying Gmail or local state
Automated health checks for Google Ads accounts and paid media operations.
- Campaign structure audit — hierarchy validation and naming-convention checks
- Budget pacing — spend vs. target tracking with alert thresholds
- Conversion tracking audit — validates tracking setup and identifies gaps
- Search term analysis — waste identification and negative keyword recommendations
Structured reporting examples show how script output can be translated into operator-ready summaries. These examples are public-safe mock outputs, not live account exports.
- Performance summary patterns — key metrics with period-over-period comparison
- Anomaly framing — deviation flags translated into review questions
- Formatted output — clean summaries for Markdown, console, or downstream reporting
- Python 3.12+
- Google Ads API (
google-ads) - Gmail API (
google-api-python-client) - Local configuration files
- No unnecessary framework layer
Start in dry-run or read-only mode before applying changes.
python -m src.inbox.accelerator
python -m src.inbox.accelerator --status
python -m src.audit.campaign_health --days 30Use python -m src.inbox.accelerator --apply only after reviewing the dry-run output and confirming the rule configuration. Avoid broad catch-all inbox rules, and treat mark_read as an explicit opt-in for narrow, low-risk message classes.
See examples/example-run.md for mock dry-run output covering the real command shapes, state behavior, campaign-health checks, audit findings, and recommended follow-up actions.
See config/README.md for setup instructions.
Do not commit local credentials, tokens, private account IDs, exports, or sensitive campaign data.
This repo is part of a connected public system. See the GitHub Ecosystem Map for how the repos relate.
Shared terminology: Common Language.
Usage and rights: see USAGE.md.
- Single-purpose scripts — each file does one thing well
- Batch over loop — minimize API calls and maximize throughput
- Dry-run everything — preview before modifying
- State machines — support resume-safe, idempotent operations
- No magic — keep configuration explicit and code readable
- Operator-first automation — make the next decision easier, not just the next report faster
This repo shows how recurring marketing operations problems can be turned into practical, reusable automation: structured inbox handling, platform-health checks, reporting patterns, and operating discipline around paid media execution.