# whole-store profit dashboard and campaign analyzer — AdsMetri

A dashboard that shows the whole store's profit with the Facebook-ads share underneath, an Analyzer that charts real profit per campaign, and numbers that refresh themselves every hour.

Type: project

Published: 2026-09-09

[Original page](<https://artlu.ai/project/whole-store-profit-dashboard-and-campaign-analyzer-adsmetri>)

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

Parent project: AdsMetri

Recorded status: launched

Updated: 2026-09-16T18:07:48.102Z

Technologies: TypeScript, React, Node.js, Meta Graph API, Shopify API, MySQL, Recharts

## Details

**What is it?**
The reporting half of AdsMetri — the part that answers "did the store make money," not just "what did the ads do."

**What it does**
- A Profit card showing the whole store's profit with the ads share beneath it, and the margin percentage beside the dollar amount
- An Analyzer that charts actual profit per campaign, opens on finished days rather than a half-complete one, and can show any span from the last 30 days
- Hourly automatic refresh of Meta numbers, with labeled campaign dots and a dollar-profit axis option
- Refunds and card fees counted properly, including fees paid in a currency the old rate source didn't know

**How it works**
Refresh asks Meta once per account rather than once per ad, and backs off when Meta says "too many calls," retrying the 30-day history an hour later instead of hammering a rate limit. The chart stops drawing the in-progress day as its own point — today's numbers count inside the last finished day, so a partial day never reads as a collapse.

**Built with**
TypeScript and React with Recharts, Node.js, Meta Graph API, Shopify API, MySQL.

## Links

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


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>)
