NextReport logoNextReport

Data guide

Connect via official APIs — or export CSVs manually if you prefer

Option A — Sync from API (recommended)

NextReport syncs with Meta's Marketing API, Google's Ads API, TikTok's Marketing API, and GA4's Data API. Connect once in Account Settings and pull data directly — no manual CSV export.

Meta Marketing API

Connect Meta Ads

Account Settings → Meta Ads → Connect. Read-only access — we never change your campaigns.

Available on this site.

Google Ads API

Connect Google Ads

Same pattern as Meta — OAuth in Account Settings, then pick account and dates in the report wizard.

Available on this site.

TikTok Marketing API

Connect TikTok Ads

Read-only USD reporting for US and global accounts. Same 5-step wizard as Meta after you connect.

Add TIKTOK_APP_ID and TIKTOK_APP_SECRET on Vercel.

GA4 website reports are available from Step 1 of the report wizard — choose Google Analytics. Connect in Account Settings and link a property to each client first.

In the ad report wizard, choose Sync from API on Step 1 after connecting. CSV upload always works as a fallback.

API sync — limits, previous month & metrics

  • NextReport billing: API sync costs the same as CSV upload — unlimited report generation on both plans. No per-sync credits.
  • Meta API limits: Each sync uses a small number of read-only Marketing API calls (typically a handful per account). Meta applies hourly rate limits per ad account — normal weekly reporting is well within these. If sync fails with a rate-limit message, wait a few minutes and retry, or upload CSV that week. The 15,000/day figure applies to Google Ads API, not Meta.
  • Two date ranges, not one file: API sync pulls last 30 complete days ending yesterday for the main report (weekly slides, MTD row, chart). Previous calendar month is fetched separately when missing or stale — you usually do not need a manual previous-month CSV upload after a successful sync. If the account had no spend last month, the previous-month row is simply skipped — no error. Upload previous month manually only if auto-sync did not run or you prefer a custom export.
  • Previous-month campaign selection:After sync or upload, the wizard shows a checkbox list of campaigns detected in last month's data. Uncheck any campaigns you don't manage (e.g. run by another agency) — only checked campaigns appear in the Combined Total previous-month row. Your selection is saved per client and preserved on re-sync; newly appearing campaigns default to included.
  • Report types supported: Weekly, Monthly, Daily, Quarterly, YTD, Comparison, Multi-month Historical, and Demo reports all work from API sync the same way as CSV. Creative reports still require an Ad-level CSV export (API sync is campaign/ad-set level only).
  • How metrics are chosen:API sync does not use Ads Manager's column picker. It pulls a fixed standard column set (same as our CSV download guide — spend, reach, impressions, frequency, link clicks, results, lead columns, landing page views, etc.). After sync, the wizard runs the same pipeline as CSV: objectives are detected per campaign, then Step 3 (Metrics) pre-selects eight chips per objective (e.g. Frequency + CPM for Reach, Meta form leads + cost per lead for Instant Forms). You can add or remove chips on Step 3 — but only from metrics present in the synced data. CPM and cost per 1K reach are computed from spend/impressions/reach even when not separate columns.
  • Mixed objectives: An account with Reach, Instant Form, and Landing Page View campaigns gets the correct default chips per campaign, not one global set.
  • When to use CSV instead: Video metrics (ThruPlays, 3-second views), purchase conversion value, CPC (all), or any column not in the standard API export — download from Ads Manager with those columns and upload manually for that report.

Option B — Upload CSV manually

Two files power a full Meta weekly report: your main Last 30 Days CSV (every report) and an optional Previous Month CSV(once per month) for the previous-month row on the Monthly Overview slide — not a month-over-month comparison, just last month's totals alongside this month's MTD.

Main CSV — Last 30 Days (Meta)

Open Meta Ads Manager → Campaigns

Reports → Export → Export Table Data

Date range: Last 30 Days

On the 1st of the month, use Previous Month instead — see the callout below.

Time Breakdown: Day

Required — one row per day.

Columns to include

Campaign name, Day, Result type, Results, Amount spent, Cost per result, Reach, Impressions, CTR (all), CPC (link click), Frequency, Link clicks, Landing page views, Cost per landing page view.

Lead gen campaigns — also include

Website leads, On-Facebook leads, Cost per lead.

Export as CSV

Which date range on the 1st?

  • 1st of the month (client timezone): export Previous Monthwith Day breakdown for the main CSV — one file for last week's slides and last month's row. Do not use Last 30 Days on the 1st (it skips the 1st of the prior month).
  • All other days: Last 30 Days with Day breakdown — weekly slides, custom ranges, MTD table row, and the visual chart (last 30 days ending yesterday) all come from this file.

MTD in the Combined Total table uses calendar month day 1 through yesterday. Today is never included.

Multi-Month Historical reports

When a client asks for the last few months (e.g. May through August), choose Multi-Month Historical Report in Step 5 — not a Monthly report and not four separate uploads. Export one daily CSV whose date range covers every complete month you need (Custom date range in Ads Manager, Day breakdown).

  • Each month gets campaign slides with a month header (e.g. "May Performance"), then a month total slide.
  • The deck ends with a comparison table — one row per month.
  • Campaigns under $10 spend in a month are excluded (same as other report types).

Monthly vs Multi-Month Historical

  • Monthly — one current or recent month deck with an MTD chart and optional previous-month row on the overview slide.
  • Multi-Month Historical — several complete past months in one deck, with per-month totals and a final comparison table.

Optional — Previous Month CSV (Meta)

Upload once per client at the start of each month. Adds the previous month row on the Monthly Overview slide (e.g. Aug 1 - 31). If the campaign started mid-month, the row shows the actual span (e.g. Aug 22 - 31). Day or monthly-totals exports both work.

Same export flow — set date range to Last Month

Time Breakdown

Day is recommended. Monthly totals (no day breakdown) also work for the previous month row.

Same columns as the Last 30 Days export

Export as CSV

Upload once per client in the wizard or on the client page.

Result Type column tells NextReport what each campaign optimised for (purchases, leads, link clicks, etc.).

Creative reports — Ad-level CSV (Meta)

Only for dedicated Creative reports. If your main CSV includes Ad name, creative slides can be added to any report type automatically.

Meta Ads Manager → Ads tab

Not Campaigns or Ad Sets.

Last 30 days (or at least 14 days)

Time Breakdown: Day

Columns

Campaign name, Ad set name, Ad name, Day, Amount spent, Results, Cost per result, Reach, Impressions, CTR, Frequency, Link clicks.

Video ads — also include

3-second video plays, ThruPlays.

Export as CSV

Powers Creative reports and optional creative slides in any report.

TikTok Ads — CSV export

TikTok uses the same 5-step wizard as Meta. Ad groups map to ad-set slides in your deck.

TikTok Ads Manager → Campaign / Ad group report

Date range: Last 30 days

Breakdown: Day

Required — one row per day.

Columns

Campaign name, Ad group name, Day, Cost, Impressions, Clicks, CTR, CPC, Conversions, Cost per conversion.

Download CSV

Same 5-step wizard as Meta — ad groups appear as ad-set slides.

Ready to generate your first report?

See the full workflow on the Getting Started page.

Chat with us on WhatsApp