Skip to content

Marketing Mix Modeling Breakdown on Insights API

Updated: Jun 9, 2026

The marketing mix modeling breakdown on the Insights API is a self-service data extraction option you can use in order to export Meta ads data quickly and easily without going through a Meta Marketing Science Partner or third-party agencies and mobile measurement partners.

The API calls are built into the Insights API using the breakdowns=mmm parameter. Note: It is not supported in combination with other breakdowns or action_breakdowns.

The responses contain similar metrics and breakdowns as results from the Marketing Mix Modeling Data Export in Ads Reporting. Marketing mix modeling data is available only on the ad set level (equivalent to the level=adset parameter). Currently, the supported metrics for marketing mix modeling data are impressions and spend. Note: The spend metric is estimated. See Insights API, Estimated and Deprecated Metrics for more information.

Permissions

You will need the following permissions for your ad account:

  • ads_read

Export marketing mix modeling data

Marketing mix modeling data is retrieved as an asynchronous CSV export. Send a POST to the /insights endpoint with breakdowns=mmm and export_format=csv. The call returns a report_run_id; once the job finishes, download the results from the report run's async_report_url field. The CSV uses column names that match those in Ads Manager.

Note: A request with breakdowns=mmm that does not include export_format=csv returns an error. The legacy flow of reading results from GET /<report_run_id>/insights is no longer supported—marketing mix modeling results are delivered only as a CSV file.

The Insights API uses default values for parameters you don't specify. We recommend setting the time_range or date_preset parameter, and using time_increment to control granularity.

Note: The time_increment can be set to 1 day (i.e., 1), otherwise all_time will be used by default.

1. Submit the export job

curl -X POST \
  -F "access_token=<ACCESS_TOKEN>" \
  -F "breakdowns=mmm" \
  -F "export_format=csv" \
  -F "level=adset" \
  -F "date_preset=last_7d" \
  -F "time_increment=1" \
"https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/insights"

The endpoint responds with the report run ID:

{ "report_run_id": "<REPORT_RUN_ID>" }

2. Poll for completion

curl -X GET \
  -F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/v25.0/<REPORT_RUN_ID>?fields=async_status,async_percent_completion"

When async_status is Job Completed, proceed to download.

3. Download the CSV

curl -X GET \
  -F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/v25.0/<REPORT_RUN_ID>?fields=async_report_url"

Follow the returned async_report_url to download the CSV file.

Note: If you open the URL directly and the download fails with the error "Sorry, this content isn't available right now", manually append your access token as a parameter by adding &access_token=<ACCESS_TOKEN> to the end of the URL.

For more information about the Insights API and how to onboard to the Marketing API, see the Insights API Quickstart.

Querying at the Business Manager Level

A common use case is to retrieve marketing mix modeling data for a single Business Manager. This operation isn't directly supported because the Insights API works on the ad account level and below.

To download data for a Business Manager you first need to query available ad accounts with the /owned_ad_accounts and /client_ad_accounts endpoints. Then iterate over the returned individual ad account IDs to query the marketing mix modeling data for each ad account.

Example requests

Using /owned_ad_accounts

curl GET \
  -F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/v25.0/<BUSINESS_ID>/owned_ad_accounts"

Using /client_ad_accounts

curl GET \
  -F "access_token=<ACCESS_TOKEN>" \
"https://graph.facebook.com/v25.0/<BUSINESS_ID>/client_ad_accounts"

Limits and best practices

The granularity of marketing mix modeling data causes the response to have a large number of records as well as a substantial record size. This can cause your requests to time out during computation. To mitigate this, decrease the size of the request by using the time_range and filtering parameters and query for the total time range in sections. To learn more, see Insights API Limits & Best Practices.

Only specific filtering supported for querying the marketing mix modeling data. Only these listed operator combinations are allowed for a field; other usages of filtering will return an error.

FieldAllowed Operators
campaign.idIN, NOT_IN
campaign.nameCONTAIN, NOT_CONTAIN
adset.idIN, NOT_IN
adset.nameCONTAIN, NOT_CONTAIN
countryIN
regionIN
dmaIN
device_platformIN
publisher_platformIN
platform_positionIN

We recommend leveraging the Marketing Mix Modeling Data Export in Ads Reporting to export historical data if the API is not needed.

Marketing mix modeling requests always run as asynchronous CSV export jobs (see Export marketing mix modeling data above). The POST returns a report_run_id; query it for async_status and, once the job completes, download the results from async_report_url. Note: Some requests can still time out even as an asynchronous job—narrow the time_range and use filtering to reduce the result size. For more information, see Insights API Asynchronous Jobs.

You may encounter slightly different column header mappings and column header ordering than the Marketing Mix Modeling Data Export in Ads Reporting. You also have full flexibility to join the marketing mix modeling breakdown's default data with other tables queried from the API.

Column IndexDefault Column Headers from Marketing Mix Modeling Breakdown
0account_id
1campaign_id
2adset_id
3date_start
4date_stop
5impressions
6spend
7country
8region
9dma
10device_platform
11platform_position
12publisher_platform
13creative_media_type

Unofficial mirror for reference/search purposes. All content originates from developers.facebook.com — see the source link at the top of each page. Machine-readable indexes: llms.txt · llms-full.txt · About