# Meta Ads dashboard — AdsMetri

Meta Ads intelligence dashboard for e-commerce — campaign metrics, budget queue, scheduled execution.

Type: project entry

Published: 2026-05-04

[Original page](<https://artlu.ai/project/adsmetri>)

[Browse this group](<https://artlu.ai/ai/groups/adsmetri.md>)

Parent project: AdsMetri

Recorded status: launched

Updated: 2026-09-16T16:22:42.715Z

Technologies: React, TypeScript, Tailwind CSS, shadcn/ui, Express, tRPC, cron, OAuth, MySQL, Drizzle, Manus

Tags: ecom, ai, dashboard

## Details

**What is AdsMetri?**
A Meta Ads intelligence dashboard for e-commerce teams. Visual campaign metrics, budget management, and scheduled execution — all in one place. Live at adsmetri.com.

**What it does**
Dashboard with campaign metrics: spend, ROAS, CPA, conversions, CTR, CPC. Color-coded performance indicators show at a glance which campaigns are trending up or down vs. a configurable comparison period (3d / 7d).

Budget management flow: select a campaign, enter a new budget as a dollar amount or percentage change, and queue it for execution at 11pm local time in the ad account's timezone. The pending changes queue shows scheduled updates with a live countdown timer. "Apply immediately" hits the Meta API inline.

Expandable campaign rows reveal ad sets and individual ads with their own metrics. Stacked-bar spend distribution chart shows budget allocation across campaigns. Settings shows connected ad accounts (name, ID, currency, timezone) and lets you tune comparison period and color thresholds.

Demo mode: try the full dashboard without signing in — seeds five realistic campaigns into the app's own database under a temporary demo user.

**How it works**
Full-stack tRPC monorepo. Express server handles the API and serves the Vite-built React frontend. Drizzle ORM over MySQL/TiDB. Auth via Manus OAuth (Google, GitHub, etc.); Meta accounts connect through a dedicated OAuth callback that stores per-account access tokens, currency, and timezone.

**How execution works**
A Manus cron job hits a SCHEDULER_SECRET-protected endpoint hourly. The scheduler checks each connected ad account's stored timezone and executes any pending budget changes at 11pm local time for that account. Each attempt writes an immutable row to the execution log.

**Built with**
React 19, TypeScript, tRPC 11, Express 4, Drizzle ORM, MySQL/TiDB, node-cron, Manus cron, Tailwind CSS 4, shadcn/ui, Manus hosting + auth.

## Links

[Site or demo](<https://adsmetri.com/>)

## Related build notes

[building AdsMetri — a Meta Ads dashboard in one session](<https://artlu.ai/ai/log/day-48-building-adsmetri-a-meta-ads-dashboard-in-one-session.md>)


Status and dates describe the published record, not a recent test of an external service. Missing details are not inferred. Public links do not imply an open-source licence or permission to reuse material.

[Directory](<https://artlu.ai/llms.txt>)
