Research & Benchmarks Optimization AI Ads Analytics Why Madgicx? About Us Blog Careers Case Studies Events Glossary Guides Answers Pricing Login Try for Free

Export Facebook Ads Data: Every Method and Its Limits

Date updated
Nov 12, 2026
Reading time
30 mins
Export Facebook Ads Data: Every Method and Its Limits

Four ways to export Facebook ads data from Meta, the limits of each, and when to share a report instead of a file.

You can export Facebook ads data four ways: from the tables in Ads Manager, from a custom report in Meta Ads Reporting, from the Marketing API, or by pulling a report into a spreadsheet. For a one-off file, use Ads Manager or Ads Reporting. For a number you need every week, schedule a report or use the API.

The right method depends on three things: how often you need the data, how many ad accounts it covers, and whether the person receiving it has access to your ad account. This guide goes through each method, what it limits, and what to use when the goal is to share results instead of sending files.

Share Facebook ads data without files

Madgicx reports are shared by link or PDF, not sent as exports.

Start your 7-day free trial

Short answer: pick a method

You needUseThe limit to know
A one-time file of one account's resultsExport from Ads Manager or Ads ReportingYou repeat it by hand each time you need fresh numbers
The same report in your inbox every weekA scheduled report in Ads ReportingCross-account reports can't be scheduled for email
Data in your own database or scriptThe Marketing API (Ads Insights)Needs an app, the ads_read permission and code
Data in a spreadsheet you build onExport a file and import it, or call the API from your own scriptMeta's own tools don't keep the sheet updated for you
Results a client or boss can readA shared report instead of a fileA file goes stale the moment you send it

Ads Manager table export

The quickest route is the table you already look at in Ads Manager. Set the date range, choose the columns and breakdowns you want, and use the export option on the table. You get what is on screen, which makes this the best method for a quick check or a file you will open once.

Before you export, check two settings that change what ends up in the file:

  • Filters: by default, Meta's Had delivery filter shows only ads that were delivered with at least one impression. Ads that got no delivery in the date range are not in the table, so they are not in the file either.
  • Breakdowns: Meta's breakdown categories are Level, Time, Demographics, Geography, Delivery and Actions, and you cannot combine two breakdowns from the same category. Age (under Delivery) with Day (under Time) works; two Demographics breakdowns do not.

Plan your breakdowns before you export. If you need the data cut two ways that Meta does not allow in one table, you need two exports.

Reporting export

For anything you will repeat, build a report in Meta Ads Reporting. According to Meta's guide to recurring reports, you open Ads Reporting from the main menu under Analyze and report, and you create a custom report from the Export dropdown, under the Export data header, with Create custom report.

The advantage is that the report is saved. You choose the columns and breakdowns once, and you can schedule it:

  1. Open the report in Ads Reporting.
  2. Use the link in the top-left corner under the report name to reach the schedule email option.
  3. Turn on the schedule email, add the subscriber and click apply.
  4. Click Save.

The report can be emailed to you or to someone else. You need administrator, advertiser or analyst access to the ad account linked to the report, and cross-account reports can't be scheduled for email. If you manage several ad accounts, that means one scheduled report per account.

The Marketing API

The Marketing API is the route for anyone who wants raw numbers in their own system. The Ads Insights API returns performance data for Meta ads, and you can read it at four levels: ad account, campaign, ad set and ad.

A request has three parts:

  • Parameters, such as the time range and the attribution window (for example date_preset=last_7d).
  • Fields, which are the metrics you want back (for example clicks).
  • Breakdowns, such as gender.

Three things to know before you start. You need an app and the ads_read permission. A plain GET request returns basic metrics for the ad object, typically for the past 30 days, so you must set the time range yourself if you want something else. And Meta's developer policies apply to any solution that includes Ads Insights data, so read the Meta Platform Terms and Developer Policies for the Marketing API before you build on it.

The API suits a developer or an analyst who is comfortable with scripts. It is more setup than an export, and it pays off when you want the same numbers on a schedule, in a warehouse, or next to data from other sources.

Excel and Sheets

Spreadsheets are where most people end up, so it helps to be clear about what Meta's tools do here. Meta's exports and reports give you a file to open in Excel or import into Google Sheets. They do not keep a sheet updated by themselves. To get a live sheet, you need your own script on top of the API or a third-party connector.

For lead ads, you have one more option. Meta says you can still download your leads data from Ads Manager or Meta Business Suite without a CRM integration, and you can connect a CRM so new leads appear in one place without downloading a CSV each time.

When you work with an exported file, a few habits save time later:

  • Keep one tab per export and never edit the raw data. Do your math in a second tab.
  • Write the date range and the filters in the file name, so you can tell two exports apart next month.
  • Check that totals match Ads Manager before you build on the file.
  • Record which attribution window the numbers used. Two exports with different windows will not match, and neither is wrong.

If you need clean data before you feed it into a spreadsheet or a model, see our guide to preparing ad data for AI.

Limits of each method

MethodWhat it limits
Ads Manager table exportOnly what is in the table: the date range, filters and columns on screen, with breakdowns from different categories only
Scheduled report in Ads ReportingEmailed on a schedule, but not for cross-account reports, and only to people you add as subscribers
Marketing APINeeds an app, ads_read permission and code; default window is about 30 days
Lead ads downloadCovers lead data only, not ad performance
Sending the file to someoneThe way Meta lists to share a report without giving ad account access, and it is a snapshot

One more limit sits behind all of these: conversions Meta can't attribute show up as "Uncategorized" when you break results down by conversion, and Meta says statistical modeling may fill in breakdowns when conversion data is missing or partial. If a breakdown does not add up to your total, that is a likely reason. Meta's breakdowns and metrics guide explains both.

Share reports instead of files

Most exports are made to answer a question for someone else: a client, a founder, a teammate. A file is a poor way to do that. It goes out of date, it gets forwarded without context, and the reader has to find the number you meant.

Meta's own guidance is that only people with permissions on the ad account can open a report in Ads Reporting. To share a report with someone who has no access, you export it and send the file. That keeps your account private, and it also means every update is another file.

A report that is shared by link or as a PDF avoids that loop. The reader sees the same numbers you do, and you send one link instead of a new attachment each week.

Share your Facebook ads data without exporting it

Madgicx's One-Click Report and Business Dashboard pull Meta, Google Ads, TikTok, Shopify and Klaviyo data into one place, and you share the result by link or as a PDF. There is no Google Sheets export, so this is the route for people who want to send results, not a file for more spreadsheet work.

If you want to ask questions of your own data, Copilot answers from your ad account and shows charts. And if you already work in Claude or ChatGPT, the Madgicx MCP for Meta ads lets your AI assistant read your account data directly, so you ask for the numbers in plain language instead of exporting them first. See Madgicx plans and prices for what is included.

For a wider look at what to measure once the data is in one place, read our guide to the best advertising data to track and the post on turning analytics data into decisions.

Try Madgicx reporting free for 7 days

FAQ

How do I export Facebook ads data?

Use the export option on a table in Ads Manager for a quick file, or create a custom report in Meta Ads Reporting under the Export dropdown. For ongoing needs, schedule the report or use the Marketing API.

Can I schedule a Facebook ads report to email me?

Yes. Open a report in Ads Reporting, turn on the schedule email, add the subscriber, click apply and save. You need administrator, advertiser or analyst access to the ad account, and cross-account reports can't be scheduled for email.

How do I get Facebook ads data through the API?

Use the Ads Insights API. You need an app and the ads_read permission, then you request insights at the ad account, campaign, ad set or ad level with parameters, fields and breakdowns. By default it returns basic metrics, typically from the past 30 days.

Why can't I combine two breakdowns in one export?

Meta does not allow two breakdowns from the same category, such as two under Demographics. You can combine breakdowns from different categories, such as Age (under Delivery) and Day (under Time).

How can I share Facebook ads results without giving access to my ad account?

Meta says to export the report and send the file. A shared report by link or PDF, such as Madgicx's One-Click Report, avoids sending a new file each time.

Does Madgicx export to Google Sheets?

No. Madgicx shares reports by link or PDF and answers questions about your data in Copilot, and its MCP connects your data to an AI assistant.

You scrolled so far. You want this. Trust us.