Meta Ads Manager data API: campaigns, insights, billing
Meta Ads Manager is the official mobile client from Meta Platforms, Inc. for running Facebook and Instagram advertising — the phone companion to the desktop Ads Manager. Its home screen lists every campaign in the selected ad account with name, objective, budget and spend, next to a weekly-summary tab that charts daily spend, impressions and results; drilling into a campaign, ad set or ad opens a performance screen with reach, clicks, CPM, frequency, conversions and return on ad spend over a chosen date range. Advertisers can start and edit ad drafts on the phone that sync back to Ads Manager on desktop, manage billing — outstanding balance, account spending limit, stored cards and adding funds — and see warning banners the moment an ad account is restricted or disabled, including whether the restriction can be appealed. Listed in the US store, it serves the small businesses, in-house marketers and agencies buying ads across Meta's social platforms, including operators who juggle many client ad accounts and need to watch spend pacing and account health away from a desk; it competes for the same budgets as self-serve ad tools like Google Ads and TikTok Ads Manager, while Meta Business Suite covers the lighter Page management and post-boosting side.
Campaign rows keyed by campaign_group_id anchor everything this app reads and writes: each row in an ad account's flat campaign list carries a campaign_group_name, an objective such as OUTCOME_SALES, a daily_budget and lifetime spend; the per-object insights attached to any campaign, ad set or ad return spend, impressions, reach, clicks, cpm, frequency, actions, action_values, purchase_roas and results, sliced by date_preset, time_increment and breakdowns; and a weekly performance_chart series plots timestamp-stamped daily points for spend, impressions and results.
Alongside the metrics sit the money and the account's standing: billing records expose current_balance with its currency, the account_spending_limit and stored payment_methods identified by credential_id and credential_type; server-side ad drafts come back as a draft_id plus the ad_draft body, which is how edits made on the phone persist to desktop; and the compliance record pairs account_status with each restriction_type, the entries behind the in-app warning banners when an account is restricted or disabled.
Agency reporting tools pull per-campaign spend, reach and purchase_roas on a daily time_increment and blend them with other channels into one blended cost-per-result dashboard; finance automation compares daily_budget against lifetime-to-date spend to flag campaigns pacing above plan; multi-account operators poll account_status and restriction_type across every client account and page on-call the moment one is restricted; and accounting pipelines reconcile current_balance, currency, account_spending_limit and stored payment methods against the corporate card statement each month. openData Studio turns this ad-account data into callable open data, so those dashboards, pacing alerts and reconciliations read the same numbers the app shows.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
List ad-account campaigns
POST
/v1/ads/campaignsopendataLoads the flat campaign list for the selected ad account that fills the app's home screen.
Auth: OAuth access token from the logged-in advertiser session + persisted-document id (doc_id) and a generic operation name.
- account_id
- account_status
- campaign_group_id
- campaign_group_name
- objective
- daily_budget
- spend
POST /v1/ads/campaigns HTTP/1.1 Content-Type: application/x-www-form-urlencoded access_token=<advertiser_session_token>&doc_id=<persisted_doc_id>&operation_name=CampaignList&variables={"account_id":"act_1234567890","first":50,"filter":"ALL"}{ "data": { "ad_account": { "account_id": "1234567890", "account_status": "ACTIVE", "campaign_groups": { "edges": [ {"node": {"campaign_group_id": "23850123456789", "campaign_group_name": "Spring Sale — Conversions", "objective": "OUTCOME_SALES", "daily_budget": "5000", "spend": "123.45"}} ] } } } }Fetch ad-object insights
POST
/v1/ads/insightsopendataReads performance metrics (spend, impressions, clicks, conversions, ROAS) for one campaign, ad set or ad over a chosen date preset.
Auth: OAuth access token from the logged-in advertiser session + persisted-document id (doc_id) and a generic operation name.
- spend
- impressions
- reach
- clicks
- cpm
- frequency
- actions
- action_values
- purchase_roas
- results
- date_preset
- time_increment
- breakdowns
POST /v1/ads/insights HTTP/1.1 Content-Type: application/x-www-form-urlencoded access_token=<advertiser_session_token>&doc_id=<persisted_doc_id>&operation_name=AdObjectInsights&variables={"ad_object_id":"23850123456789","date_preset":"last_7d","time_increment":1}{ "data": { "ad_object": { "insights": { "spend": "412.10", "impressions": "58230", "reach": "41102", "clicks": "1987", "cpm": "7.08", "frequency": "1.42", "actions": [{"action_type": "offsite_conversion", "value": "63"}], "action_values": [{"action_type": "offsite_conversion", "value": "2415.30"}], "purchase_roas": [{"action_type": "omni_purchase", "value": "5.86"}], "results": [{"indicator": "actions:offsite_conversion", "value": "63"}] } } } }Weekly account performance charts
POST
/v1/ads/performance-chartopendataPowers the weekly-summary charts on the account home tab with daily spend/impressions/results series.
Auth: OAuth access token from the logged-in advertiser session + persisted-document id (doc_id) and a generic operation name.
- account_id
- performance_chart
- timestamp
- spend
- impressions
- results
POST /v1/ads/performance-chart HTTP/1.1 Content-Type: application/x-www-form-urlencoded access_token=<advertiser_session_token>&doc_id=<persisted_doc_id>&operation_name=WeeklyAccountPerformanceChart&variables={"account_id":"act_1234567890"}{ "data": { "ad_account": { "account_id": "1234567890", "performance_chart": { "series": [ {"metric": "spend", "points": [{"timestamp": 1758153600, "value": "58.20"}]}, {"metric": "impressions", "points": [{"timestamp": 1758153600, "value": "9102"}]}, {"metric": "results", "points": [{"timestamp": 1758153600, "value": "11"}]} ] } } } }Read billing account information
POST
/v1/billing/accountopenfinanceLoads the ad account's billing screen: outstanding balance, spending limit and stored payment methods.
Auth: OAuth access token from the logged-in advertiser session + persisted-document id (doc_id) and a generic operation name.
- current_balance
- currency
- account_spending_limit
- payment_methods
- credential_id
- credential_type
POST /v1/billing/account HTTP/1.1 Content-Type: application/x-www-form-urlencoded access_token=<advertiser_session_token>&doc_id=<persisted_doc_id>&operation_name=BillingAccountInfo&variables={"account_id":"act_1234567890"}{ "data": { "billing": { "current_balance": {"amount": "87.42", "currency": "USD"}, "account_spending_limit": "1000.00", "payment_methods": [ {"credential_id": "pm_9001", "credential_type": "CREDIT_CARD", "display": "Visa •••• 4242", "is_primary": true} ] } } }Create ad draft
POST
/v1/ads/draftsopendataCreates a server-side ad draft so edits made on the phone persist and sync to Ads Manager on desktop.
Auth: OAuth access token from the logged-in advertiser session + persisted-document id (doc_id) and a generic operation name.
- draft_id
- ad_draft
- account_id
- objective
POST /v1/ads/drafts HTTP/1.1 Content-Type: application/x-www-form-urlencoded access_token=<advertiser_session_token>&doc_id=<persisted_doc_id>&operation_name=CreateAdDraft&variables={"input":{"account_id":"act_1234567890","ad_draft":{"name":"Weekend push — lookalike 1%","objective":"OUTCOME_TRAFFIC"}}}{ "data": { "create_ad_draft": { "draft_id": "99001234567890", "ad_draft": {"name": "Weekend push — lookalike 1%", "objective": "OUTCOME_TRAFFIC", "status": "DRAFT"} } } }Check ad-account compliance standing
POST
/v1/ads/account-standingosintReads the ad account's standing — whether it is active, restricted or disabled — behind the app's warning banners.
Auth: OAuth access token from the logged-in advertiser session + persisted-document id (doc_id) and a generic operation name.
- account_id
- account_status
- restriction_type
POST /v1/ads/account-standing HTTP/1.1 Content-Type: application/x-www-form-urlencoded access_token=<advertiser_session_token>&doc_id=<persisted_doc_id>&operation_name=AccountComplianceStatus&variables={"account_id":"act_1234567890"}{ "data": { "ad_account": { "account_id": "1234567890", "account_status": "ACTIVE", "restrictions": [ {"restriction_type": "AD_ACCOUNT_SPEND_LIMIT", "appeal_eligible": true} ] } } }
Data categories
- campaigns
- ad-insights
- performance-charts
- billing
- payment-methods
- ad-drafts
- account-standing
Where teams use this data
Cross-platform spend dashboards
Agency reporting tools pull per-campaign spend, impressions, reach, clicks, cpm and purchase_roas on a daily time_increment, joining Meta results with other channels so clients see one blended cost-per-result instead of three separate dashboards.
Budget-pacing alerts
Finance automation reads the campaign list with daily_budget and lifetime-to-date spend, then flags campaigns pacing above plan — the same data behind the app's weekly-summary performance charts.
Ad-account health monitoring
Multi-account operators poll account_status and restriction_type across every client account and page on-call the moment an account is restricted, instead of waiting for an advertiser to notice the in-app banhammer banner.
Billing reconciliation
Accounting pipelines read current_balance, currency, account_spending_limit and the stored payment_methods (credential_id, credential_type) to reconcile Meta ad invoices against the corporate card statement each month.
Frequently asked questions
What data API does the Meta Ads Manager app use?
The app talks to Meta's GraphQL API over a single signed-in gateway: each screen issues a named, persisted query document — a campaign-list query for the home screen, an insights query for per-object metrics, and a billing query for balance and payment methods. The endpoints shown here are an illustrative, generalized map of that surface rather than live captures.
How is the Meta Ads Manager API authenticated?
Calls are authenticated with the advertiser's OAuth access token issued when they sign in with their Facebook account inside the app. The token rides as a form parameter alongside a persisted-document id and the variables payload; there is no public developer key — these are first-party calls scoped to the ad accounts the signed-in user administers.
Which performance metrics does the app expose?
The insights surface returns spend, impressions, reach, clicks, cpm, frequency, actions, action_values, purchase_roas and results, filterable by date preset (for example last_7d), time range, time increment and breakdowns — the same rows that fill the campaign, ad-set and ad detail screens.
Can I read billing and account-standing data from the app?
Yes — the billing screens load current_balance, currency, account_spending_limit and stored payment_methods (credential_id, credential_type), while the account-standing surface returns account_status plus restriction_type entries, which is what drives the in-app warnings when an ad account is restricted or disabled.
Apps similar to Meta Ads Manager
- Google Ads — Google Ads is Alphabet's platform for Search, Shopping and YouTube campaigns aimed at people already looking to buy.
- TikTok Ads Manager — TikTok Ads Manager is ByteDance's tool for creating and running short-form video ads on TikTok.
- Meta Business Suite — Meta Business Suite is Meta's dashboard for Facebook Pages and Instagram accounts, with posting, inbox tools and simplified post boosting rather than full campaign controls.
- LinkedIn Ads — LinkedIn Ads lets advertisers reach professionals using job-title and company filters.
- Amazon Ads — Amazon Ads places sponsored product and retail ads on Amazon's storefront, close to checkout.
- Pinterest Ads — Pinterest Ads run on a visual discovery feed used for lifestyle and shopping categories such as home and wedding.
- Snapchat Ads Manager — Snapchat Ads Manager is used to run ads on Snapchat, often as a channel for a younger audience.
- Microsoft Advertising — Microsoft Advertising is a search-network ads platform that runs campaigns on Bing and partner sites.
Topics
- meta ads manager api
- facebook ads api endpoints
- ads insights fields
- spend impressions roas
- meta graphql persisted queries
- ad account billing api
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use