Export reports to PDF

Last updated: May 19, 2026

Export reports to PDF

/reports → Export → PDF. Backed by POST /api/v1/report-pdf endpoint (verified). Generates a formatted report with branding, charts, summary tables. Async generation (5-30 sec). Use cases: client deliverables, monthly reviews, executive summary. Customizable via report templates (POST /api/v1/report-templates).

Who is this for

Agencies producing client-facing reports. Mediabuyers running monthly stakeholder reviews. Anyone who needs a polished visual report (vs raw CSV data).

When to use PDF vs CSV

Use PDF

Use CSV

Client deliverable

BI tool input

Monthly review meeting

Spreadsheet analysis

Executive summary

Accounting reconciliation

Visual report with charts

Raw data manipulation

Polished branded output

Quick data dump

PDF wins on presentation; CSV wins on data manipulation.

How to export PDF

Step 1: Open Reports

/reports page.

Step 2: Configure report

Same as CSV: level, date range, filters, columns.

Step 3: Pick template

Templates control look + sections included:

  • Default: clean Wevion-branded report with standard sections

  • Executive Summary: shorter, top-line metrics only

  • Detailed Performance: full granular detail

  • Custom: configured per workspace

For custom templates: see template creation via POST /api/v1/report-templates (verified endpoint).

Step 4: Click Export → PDF

Top toolbar → Export → PDF.

Step 5: Async generation

PDF generation takes 5-30 sec depending on:

  • Date range size

  • Number of campaigns

  • Number of charts

  • Custom branding complexity

UI shows "Generating PDF...".

Step 6: Download

Once ready: download starts automatically. Or check Reports → Recent exports for the file.

What's in the PDF

Standard sections:

  1. Cover page

    • Workspace name + brand logo

    • Report period (date range)

    • Generated timestamp

    • Recipient (if customized)

  2. Executive summary

    • Top-line KPIs (total spend, impressions, conversions, ROAS, CPA)

    • Vs previous period (% change)

    • Top 3 campaigns by spend / ROAS

  3. Per-platform breakdown

    • Spend per platform (donut chart)

    • Performance per platform (table)

  4. Per-campaign detail

    • Table sorted by spend desc

    • Per-campaign metrics + delta vs comparison

  5. Per-ad-set detail (if level=adset)

  6. Per-ad detail (if level=ad, optional creative thumbnails)

  7. Appendix

    • Filters applied

    • Date range exact

    • Currency + timezone notes

Branding + customization

Workspace-level customization:

  • Logo: upload via team-branding (workspace settings)

  • Brand colors: configured for chart colors

  • Cover image: optional banner

  • Footer text: legal disclaimer or contact info

  • Custom sections: agency can add/remove sections

Per-PDF customization at export time:

  • Cover title: custom title for this specific report

  • Recipient name: addressee field

Report templates

Reusable configurations for recurring reports:

  • Save current report config + customizations as template

  • POST /api/v1/report-templates (verified)

  • Reuse: select template → exports with that config

Use cases:

  • "Monthly Client Report" template

  • "Weekly Performance Brief" template

  • "Quarterly Executive Summary" template

Saves clicks on every recurring report.

Endpoint

POST /api/v1/report-pdf (verified apps/backend/src/routes/api/report-pdf.route.ts).

Request:

  • Report config (level, date, filters, columns)

  • Template ID (optional)

  • Custom fields (cover title, recipient)

Returns: PDF file (or URL to download).

Async via SQS worker for large reports.

Async PDF generation

For very long reports (12-month detailed): async generation:

  1. Click Export → PDF

  2. UI shows "Generating — we'll email when ready"

  3. SQS worker generates

  4. Email with download link (valid 7 days)

  5. Download → open

Size + page count

  • Small report (1 month, 10 campaigns): 5-10 pages

  • Medium (3 months, 50 campaigns): 20-30 pages

  • Large (12 months, 200 campaigns): 100+ pages

Very large reports: consider CSV export instead OR split into multiple PDFs by period.

Comparison period in PDF

If you enable Compare to (e.g. compare last 30 days vs previous 30 days):

  • Each metric shows current value + delta (% change)

  • Charts may show stacked / overlaid for both periods

  • Adds 1-2 pages of comparison summary

See am-120 comparison period.

Best practices

One PDF per audience

Don't make one giant PDF for everyone. Make:

  • 2-page executive summary PDF for C-level

  • 10-page detailed performance PDF for team lead

  • 50-page granular PDF for direct mediabuyer

Each fits the consumer's depth needs.

Use templates for consistency

Recurring reports: build template once + reuse. Keeps every monthly report consistent.

Customize branding once

Set workspace branding once (logo, colors) → applies to all PDF exports. Don't customize per-export unless special.

Schedule for recurring reports

For weekly / monthly recurring: use scheduled reports. Auto-generate + email recipients. No manual export needed.

RBAC + audit

Mediabuyer+ to export PDF. Audit log: action: report_pdf_export.

What you'll see

After Export PDF:

  • For sync (< 10 sec): download starts

  • For async: "Generating — email when ready" toast + Reports history entry

  • PDF is professionally formatted, branded, ready to send to clients

Common issues

  • "PDF generation hung > 5 min": large report; switching to CSV may be faster.

  • "Brand colors not applied": workspace branding not configured. Set up at workspace settings.

  • "Logo missing": not uploaded yet. Workspace settings → Branding.

  • "PDF too large to email": > 25 MB. Use shareable link (Wevion provides) instead of attachment.

  • "Wrong language in PDF": PDF respects workspace locale; verify Workspace Defaults.

Cross-cluster: report scheduling

For recurring PDF exports: scheduled reports automate the workflow (generate + email at fixed cadence).

Related