Advisor / app /ui /dashboard.py
ps1811's picture
updated dashboard.py
22fc55e verified
Raw
History Blame Contribute Delete
1.04 kB
import gradio as gr
import pandas as pd
from app.controller.session_loader import load_google_ads_data
def get_dashboard_data():
dfs = load_google_ads_data()
df = dfs["campaigns"].copy()
if df.empty:
return 0, 0, 0, 0, pd.DataFrame(columns=["Campaign", "Spend", "Leads", "CPL", "CTR"])
df["leads"] = df.get("conversions", 0)
df["cpl"] = df["cost"] / df["leads"].replace(0, 1)
df["ctr"] = df.get("ctr", 0)
formatted = pd.DataFrame({
"Campaign": df["name"],
"Spend": df["cost"],
"Leads": df["leads"],
"CPL": df["cpl"],
"CTR": df["ctr"],
})
return (
round(formatted["Spend"].sum(), 2),
int(formatted["Leads"].sum()),
round(formatted["CPL"].mean(), 2),
len(formatted),
formatted
)
def build_dashboard():
# Retained exactly for backend structural lookups if referenced elsewhere
campaign_table = gr.Dataframe(
label="Campaign Performance",
interactive=True
)
return campaign_table