Living Online

Agency OS

Paid social

Meta Ads Reporting

Builds an internal Meta Ads performance report from the Meta Marketing API with campaign, ad set, creative, placement, and action evidence.

Status

Live API path implemented

Current hosted implementation state.

Trigger Surface

Asana task

Created or updated in Jessie Intake and assigned to Jessie.

Delivery

HTML artifact

Attached to the source task or linked as a stable artifact.

Approval

Review required

No client-facing or external-system action without human approval.

Consultant Prompt

Live API path implemented

Example Asana request

Please do a Meta Ads report for Plunkett Homes last month.

Routes when a Jessie-assigned Asana task asks for Meta Ads, Facebook Ads, paid social, social advertising, campaign delivery, or Meta performance reporting.

Default Inference

  • Infers the configured Plunkett Meta ad account and business ID from Plunkett shorthand.
  • Uses last complete calendar month and prior-month comparison for "last month".
  • Falls back with explicit credential or permission caveats if the token or account access is missing.
  • Keeps the report internal and review-required.

Data Sources

  • Meta Marketing API Insights for the configured ad account.
  • Campaign, ad set, ad, placement, and action/event breakdowns where available.
  • Optional GA4 paid social outcome context.
  • Optional Cloudflare Browser Run landing-page checks.

Output Contract

  • Internal Meta Ads HTML report attached to the source Asana task.
  • Review-required Asana comment.
  • Delivery, traffic, efficiency, campaign, ad set, creative, placement, and action/event movement.
  • Cause hypotheses with confidence, lag timing, and follow-up checks.

Guardrails

  • No Meta account, budget, creative, tracking, website, or client-facing changes.
  • No external writes beyond the source Asana task comment and attachment.
  • Breakdowns that are unavailable are omitted with explicit caveats.

Current System Context

Recent changes
  • The skill and hosted execution path use the Meta token from secrets/env and the configured Plunkett ad account.
  • The runbook records the hosted smoke procedure and expected attachment checks.
  • Latest smoke identifiers should be logged in the runbook after each verified live Asana run.

Prompt Source

skills/meta-ads-reporting/SKILL.md
---
name: meta-ads-reporting
description: Draft internal Meta Ads performance reports from Asana task requests using live Meta Marketing API evidence. Use when a task asks for a Meta Ads, Facebook Ads, paid social, or social advertising report, review, summary, or performance analysis.
---

# Meta Ads Reporting

## Quick Start

For Plunkett, a consultant can create an Asana task assigned to Jessie:

```text
Please do a Meta Ads report for Plunkett Homes last month.
```

Hosted Team Agent execution should infer:

- Skill: `meta-ads-reporting`
- Brand: `Plunkett Homes`
- Audience: `consultant`
- Reporting period: last complete calendar month
- Comparison period: prior calendar month

## Workflow

1. Confirm the task is agent-eligible and ready.
2. Fetch live Meta Ads evidence from the configured ad account.
3. Build a deterministic reporting model before any prose generation.
4. Render an internal HTML report.
5. Attach the HTML report to the Asana task.
6. Post a review-required Asana comment.

## Evidence Rules

- Treat explanations as hypotheses, not attribution.
- Use account, campaign, ad set, ad, placement, and action/event evidence where available.
- State missing source caveats explicitly.
- Do not recommend Meta account changes as completed work.
- Do not publish or send client-facing output.

## Data Sources

Primary source:

- Meta Marketing API Insights for the configured ad account.

Optional sources:

- GA4 paid social outcomes.
- Cloudflare Browser Run landing-page checks.

## Approval Gates

Always gate:

- Client-facing action.
- External system write beyond the source Asana task comment/attachment.
- New secret or credential.

## Fixture

Use `fixtures/meta-ads-reporting-input.example.json` for local shape checks only. It is synthetic and must not be used as client evidence.

Related Docs

3 references
  • Meta Ads Reporting Skill decisions/meta-ads-reporting-skill.md
  • Meta Ads Reporting Skill docs/runbooks/meta-ads-reporting-skill.md
  • Team Agent Work Intake docs/runbooks/team-agent-work-intake.md