# Build a client report dashboard in Claude

> Tier: recipe. Operating recipe: real tool sequence, core rules, known traps.

Builds the Get MCP Ads Client report as a Claude dashboard, one page without tabs headed by the client's name: the site's revenue and purchases from GA4, total ad spend and site revenue per unit of ad spend against an equivalent comparison period; what Meta claims beside what the site sees; every platform's spend, own conversions and cost per conversion in one table; Meta's cost per purchase, spend or purchases day by day against the previous period and the client's target; and the site's revenue by channel.

**Intent.** One page an agency walks its client through: the site's results, what each platform spent and claims, and the month's curve.

## When to use

- Someone prepares a monthly or weekly review for a client, or asks for a report to walk a client through.
- An agency wants one page per client it can open before each client meeting.

## When not to use

- The team's own working view across platforms: build the scorecard dashboard.
- Hosts without Claude's Dashboard artifact type: answer in the conversation with the matching reports instead.

## Sources

Required: any connected source
Optional: Meta Ads, Google Ads, TikTok Ads, Pinterest Ads, Google Analytics 4

## Preconditions

- The organisation is on Team or Enterprise: ready-made dashboards are not offered on Free or Pro.
- The account is among the chosen accounts, confirmed via list_accounts.

## Inputs

- `window`: Analysis window. Default: last 30 days.

## Procedure

1. Resolve the client's workspace and its ad accounts, one per platform, plus its GA4 property when connected, with list_accounts.
2. Fetch the client report template with every account (accounts, one per platform, GA4 included) and the workspace. — tools: `get_dashboard_template`
3. Create a Dashboard artifact, write every document exactly as given in one batch, read its check, hand over with the lines given.

## Decision rules

- **When** The template is refused with PLAN_REQUIRED → **conclude** Say the dashboards come with Team and Enterprise and that only the account owner changes the plan; answer the question in the conversation meanwhile.
- **When** The client has no GA4 property connected → **conclude** Build the report on the ad platforms alone and say the site's revenue, purchases and channel mix appear once GA4 is connected.
- **When** A platform gives no revenue in the account's currency → **conclude** Leave it written as not read: never convert or estimate it.
- **When** A reader sees a source fail to load → **conclude** Their own Get MCP Ads access decides: check that their connection covers this client's workspace and that their plan includes dashboards before changing the dashboard.

## Evidence requirements

- Every figure carries its account, metric and window.
- Anything below a readable sample size is reported as unjudged, not as zero.

## Human approval boundary

- The readout changes nothing. Any change it motivates goes through Safe Writes: preview, human confirmation, then apply.

## Failure modes

- Editing the template's page or queries by hand loses the provenance of each figure: ask for changes by name instead.
- Writing a comment into the report on the team's behalf: the report shows the figures, the agency writes its own message.

## Output

- **Readout**: The figures, with windows and accounts named.
- **Flags**: What deserves a deeper skill or a human decision.

## Related

- Skill: [scorecard-dashboard](https://www.getmcpads.com/skills/scorecard-dashboard.md)
- Skill: [executive-spend-summary](https://www.getmcpads.com/skills/executive-spend-summary.md)
