← Open Source

Campaign Analytics Dashboard

wip
PythonStreamlitpandasplotly

A self-hosted Streamlit dashboard that gives marketing teams real-time campaign visibility without waiting for BI team or expensive tools.

The Problem

Marketing teams wait days for BI dashboards to be updated or for data analysts to pull reports. By the time the data arrives, the campaign budget is already spent. Decisions that need to happen this week happen next month.

Business Impact

Gives marketing teams same-day visibility into campaign performance without relying on BI teams or expensive tools. Enables faster budget reallocation, quicker identification of underperforming campaigns, and data-backed decision making at the speed marketing actually moves.

Before / After

Before After
Days waiting for data real-time dashboard. Multiple platform logins

The Problem

Marketing moves fast. Data moves slow.

You launch a campaign on Monday. By Wednesday you want to know: is this working? Should we shift budget? Which channel is actually converting?

But the BI dashboard was last updated Friday. The data analyst is tied up until Thursday. Your Google Sheets pivot table broke again. So you make the decision with incomplete information — or worse, gut feel.

This is not a tooling problem. It’s a timing problem. By the time you see the data, the budget is already spent.

The Solution

A self-hosted Streamlit dashboard that gives you campaign visibility in 30 minutes, not 3 days.

Single view of:

No BI tool required. No waiting for a data team. Upload your CSVs or connect to Google Sheets and the dashboard updates.

Before / After

BeforeAfter
Wait 2-3 days for BI/data analystSame-day dashboard, 30 min setup
Log into 3+ platforms for dataSingle view across all channels
Budget decisions based on gut feelROAS and CPL by channel, visible instantly
”Can someone pull the numbers?""The dashboard is updated. Let’s decide.”

Who this is for

How to use it

git clone https://github.com/christmantoro/campaign-analytics-dashboard
cd campaign-analytics-dashboard
pip install -r requirements.txt
streamlit run app.py

Open http://localhost:8501 in your browser. Upload your data files using the sidebar.

Data format

The dashboard expects CSV files with these columns:

ColumnTypeDescription
datedateYYYY-MM-DD format
campaignstringCampaign name
channelstringChannel (Google, Meta, etc.)
spendfloatAd spend in local currency
clicksintTotal clicks
impressionsintTotal impressions

Revenue and pipeline columns are optional but enable ROAS calculations.

Current status

Work in progress. Core spend and traffic metrics work. Revenue attribution is the next milestone.

This dashboard is the natural next step after automating your reports. Start with Marketing Report Automation to get structured data flowing, then add the dashboard layer for real-time visibility.

Facing the same problem?

I work with marketing teams to automate reporting, build analytics dashboards, and replace manual data work with Python-powered workflows.

Start a conversation →