Skip to content

Insights

Updated: Apr 29, 2026

This guide covers how to query ad performance data with Ads CLI, including date ranges, breakdowns, custom metrics, and sorting.

Query options

Basic usage

# Account-level metrics for the last 30 days (default)
meta ads insights get

# Specific metrics
meta ads insights get --adset-id <AD_SET_ID> --fields spend,impressions,ctr,cpc

Date ranges

Preset ranges

meta ads insights get --date-preset last_30d
meta ads insights get --date-preset yesterday

Available presets: today, yesterday, last_3d, last_7d, last_14d, last_30d, last_90d, this_month, last_month (same as the Marketing API)

Custom date range

meta ads insights get --since 2024-01-01 --until 2024-01-31

Note:--since and --until must be used together and override --date-preset.

Time granularity

Control how results are broken down over time with --time-increment:

ValueDescription
all_days (default)Aggregate across the entire date range
dailyOne row per day
weeklyOne row per week
monthlyOne row per month
# Daily spend for the last 30 days
meta ads insights get --date-preset last_30d --time-increment daily --fields spend

# Weekly campaign performance
meta ads insights get --campaign-id <CAMPAIGN_ID> --time-increment weekly

Breakdowns

Add demographic or placement dimensions with --breakdown (repeatable):

BreakdownDescription
ageAge ranges
genderGender
countryCountry
publisher_platformFacebook, Instagram, Audience Network (see Breakdowns for others)
device_platformMobile, desktop
platform_positionFeed, Stories, Reels
impression_deviceDevice type
# Performance by age and gender
meta ads insights get --breakdown age --breakdown gender

# Platform comparison
meta ads insights get --breakdown publisher_platform --fields spend,impressions,ctr

Filtering

Filter results to a specific ad campaign, ad set, or ad:

meta ads insights get --campaign-id <CAMPAIGN_ID>
meta ads insights get --adset-id <AD_SET_ID>
meta ads insights get --ad-id <AD_ID>

Sorting

Sort results by a metric:

meta ads insights get --adset-id <AD_SET_ID> --sort spend_descending
meta ads insights get --adset-id <AD_SET_ID> --sort impressions_ascending

# Last 30 days, ad campaign level, sorted by spend
meta ads insights get --campaign-id <CAMPAIGN_ID> --date-preset last_30d --sort spend_descending

The format is <metric>_ascending or <metric>_descending.

Custom fields

Specify which metrics to include with --fields (comma-separated):

meta ads insights get --fields spend,impressions,clicks,ctr,cpc,reach
meta ads insights get --fields spend,conversions,cost_per_conversion,purchase_roas

Default fields: spend, impressions, clicks, ctr, cpc, reach

Any valid Meta Insights API field can be used. Common fields include:

FieldDescription
spendTotal amount spent
impressionsNumber of times ads were shown
reachNumber of unique users who saw the ad
clicksTotal clicks
ctrClick-through rate
cpcCost per click
cpmCost per 1,000 impressions
frequencyAverage number of times each person saw the ad
conversionsNumber of conversions
cost_per_conversionCost per conversion
purchase_roasReturn on ad spend

Result limit

meta ads insights get --campaign-id <CAMPAIGN_ID> --limit 100    # Default: 50

Full options reference

OptionDefaultDescription
--date-presetlast_30dPredefined date range
--sinceStart date (YYYY-MM-DD). Requires --until
--untilEnd date (YYYY-MM-DD). Requires --since
--time-incrementall_daysTime granularity: all_days, daily, weekly, monthly
--breakdownBreakdown dimension (repeatable)
--fieldsspend,impressions,...Comma-separated list of metrics
--campaign-idFilter to an ad campaign
--adset-idFilter to an ad set
--ad-idFilter to an ad
--sortSort order (for example, spend_descending)
--limit / -l50Maximum rows to return

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