Connect Facebook Ads to ChatGPT, Claude, Gemini, and other LLMs
Description
Section titled “Description”Facebook Ads (Meta Ads) is Meta's advertising platform for campaigns across Facebook, Instagram, Messenger, and the Audience Network. Its data covers campaigns, ad sets, ads, creatives, spend, reach, clicks, and conversions. To analyze it in ChatGPT, Claude, Gemini, or another LLM, use scheduled Coupler.io imports.
Also searched as Meta Ads, Facebook Ads Manager.
How to connect
Section titled “How to connect”Connect Facebook Ads to your AI tool with Coupler.io. Pick the tool you use to see how to install it.
Coupler.io imports a Facebook Ads report on a schedule and exposes the result to Claude through its own MCP server, so Claude queries a stored dataset instead of calling the Meta Marketing API during the conversation.
Works with
Pick the AI tool you use. The install steps below change to match it.
- Each AI tool sees only the datasets from data flows that have that tool as a destination. To use the same data in several tools, add each one as a destination on the data flow.
- Every AI tool destination replaces the data on each run; append mode is not supported.
How to install
Works in Claude web, Claude desktop, Claude mobile, Cowork, Claude Code.
In Coupler.io
- In Coupler.io, create a data flow, add Facebook Ads as the source, and sign in with your Facebook account, granting every permission it requests.
- Select the ad accounts to pull from, then choose a report type; Reports and Insights is the one with performance metrics.
- Set the date range with yesterday as the end date, pick your metrics and breakdowns, and match the attribution window to the one you use in Ads Manager.
- Choose Claude as the destination in the data flow's destination step.
- Give the data flow a clear name, because Claude refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In Claude web, desktop, and Cowork
- Install the Coupler.io connector from Claude's connector directory and click Connect.
- In the Connectors menu, click Connect again and sign in to Coupler.io.
- Open a new chat. Claude asks permission to use the Coupler.io tools the first time; allow them.
In Claude Code
- Start a new Claude Code session.
- Paste the connection command shown in the Claude destination step of your data flow.
- Restart the session.
- Run
/mcp, select Coupler.io, and click Authorize in the browser window that opens.
Check it worked
Ask Claude to list the datasets it can see; the Facebook Ads data flow should appear under the name you gave it. Then compare total spend for a closed date range with Ads Manager, using the same attribution window.
Good to know
- On individual Claude Free and Pro plans the official connector may connect but fail to load its tools. The documented workaround is a custom connector: in Coupler.io, open AI integrations, click Custom connector, and copy the URL. Remove the official connector in Claude, then go to Connectors, Add, Add custom connector, give it a name with plain letters and spaces only (for example Coupler Custom), paste the URL, and connect.
- Local use with Claude desktop is also available through a Desktop Extension.
Coupler.io guide for ClaudeCoupler.io in the Claude connectors directory
Connects through the Coupler.io ChatGPT app.
In Coupler.io
- In Coupler.io, create a data flow, add Facebook Ads as the source, and sign in with your Facebook account, granting every permission it requests.
- Select the ad accounts to pull from, then choose a report type; Reports and Insights is the one with performance metrics.
- Set the date range with yesterday as the end date, pick your metrics and breakdowns, and match the attribution window to the one you use in Ads Manager.
- Choose ChatGPT as the destination in the data flow's destination step.
- Give the data flow a clear name, because ChatGPT refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In ChatGPT
- Open the Coupler.io app in ChatGPT, from the link in your Coupler.io account or the apps section of ChatGPT settings.
- Install the app and authorize it with your Coupler.io account.
- Start a new chat to pick up fresh data after a run, or ask ChatGPT to fetch it again in an ongoing conversation.
Check it worked
Ask ChatGPT to list the datasets it can see; the Facebook Ads data flow should appear under the name you gave it. Then compare total spend for a closed date range with Ads Manager, using the same attribution window.
In Coupler.io
- In Coupler.io, create a data flow, add Facebook Ads as the source, and sign in with your Facebook account, granting every permission it requests.
- Select the ad accounts to pull from, then choose a report type; Reports and Insights is the one with performance metrics.
- Set the date range with yesterday as the end date, pick your metrics and breakdowns, and match the attribution window to the one you use in Ads Manager.
- Choose Gemini CLI as the destination in the data flow's destination step.
- Give the data flow a clear name, because Gemini CLI refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In Gemini CLI
- In the Gemini CLI destination step, generate the command that adds the Coupler.io MCP server, then run it in your terminal. It looks like
gemini mcp add coupler --transport=http --scope=user https://mcp.coupler.io/mcp/.... - Start Gemini CLI and run
/mcp auth couplerto sign in to Coupler.io.
Check it worked
Ask Gemini CLI to list the datasets it can see; the Facebook Ads data flow should appear under the name you gave it. Then compare total spend for a closed date range with Ads Manager, using the same attribution window.
Added as a custom MCP data store with OAuth credentials from Coupler.io.
In Coupler.io
- In Coupler.io, create a data flow, add Facebook Ads as the source, and sign in with your Facebook account, granting every permission it requests.
- Select the ad accounts to pull from, then choose a report type; Reports and Insights is the one with performance metrics.
- Set the date range with yesterday as the end date, pick your metrics and breakdowns, and match the attribution window to the one you use in Ads Manager.
- Choose Gemini Enterprise as the destination in the data flow's destination step.
- Give the data flow a clear name, because Gemini Enterprise refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In Gemini Enterprise
- In the Gemini Enterprise destination step, create OAuth credentials and copy the Client ID and Client Secret. The secret is shown only once; if you lose it, regenerate it.
- In Gemini Enterprise, go to Data stores, Create data store, and choose Custom MCP server.
- Paste the MCP Server URL, Authorization URL, Token URL, and the scope
mcpfrom the destination step, together with the Client ID and Client Secret.
Check it worked
Ask Gemini Enterprise to list the datasets it can see; the Facebook Ads data flow should appear under the name you gave it. Then compare total spend for a closed date range with Ads Manager, using the same attribution window.
Coupler.io guide for Gemini EnterpriseGoogle Cloud documentation
Added to a Copilot Studio agent as an MCP tool.
In Coupler.io
- In Coupler.io, create a data flow, add Facebook Ads as the source, and sign in with your Facebook account, granting every permission it requests.
- Select the ad accounts to pull from, then choose a report type; Reports and Insights is the one with performance metrics.
- Set the date range with yesterday as the end date, pick your metrics and breakdowns, and match the attribution window to the one you use in Ads Manager.
- Choose Microsoft Copilot Studio as the destination in the data flow's destination step.
- Give the data flow a clear name, because your Copilot Studio agent refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In Microsoft Copilot Studio
- Open your agent in Copilot Studio and confirm generative orchestration is on.
- Go to Tools, Add a tool, New tool, Model Context Protocol, and paste the Coupler.io MCP server URL shown in the destination step.
- For authentication, choose OAuth 2.0 and Dynamic discovery, then click Create. No client ID or secret is needed.
- The first time someone uses the tool, they see a consent card in chat and sign in to Coupler.io once.
Check it worked
Ask your Copilot Studio agent to list the datasets it can see; the Facebook Ads data flow should appear under the name you gave it. Then compare total spend for a closed date range with Ads Manager, using the same attribution window.
Coupler.io guide for Microsoft Copilot StudioMicrosoft documentation
Perplexity currently uses the local Coupler.io MCP server, which runs in Docker.
In Coupler.io
- In Coupler.io, create a data flow, add Facebook Ads as the source, and sign in with your Facebook account, granting every permission it requests.
- Select the ad accounts to pull from, then choose a report type; Reports and Insights is the one with performance metrics.
- Set the date range with yesterday as the end date, pick your metrics and breakdowns, and match the attribution window to the one you use in Ads Manager.
- Choose Perplexity as the destination in the data flow's destination step.
- Give the data flow a clear name, because Perplexity refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In Perplexity
- In Perplexity, go to Settings, Connectors, click Add new connector, and choose the simpler settings.
- Name the connection coupler-io and enter the command
docker run --pull=always -e COUPLER_ACCESS_TOKEN --rm -i ghcr.io/railsware/coupler-io-mcp-server. - Add an environment variable called
COUPLER_ACCESS_TOKEN, then generate a Coupler.io personal access token and paste it as the value. - Save the configuration and accept the security warning about Docker.
Check it worked
Ask Perplexity to list the datasets it can see; the Facebook Ads data flow should appear under the name you gave it. Then compare total spend for a closed date range with Ads Manager, using the same attribution window.
In Coupler.io
- In Coupler.io, create a data flow, add Facebook Ads as the source, and sign in with your Facebook account, granting every permission it requests.
- Select the ad accounts to pull from, then choose a report type; Reports and Insights is the one with performance metrics.
- Set the date range with yesterday as the end date, pick your metrics and breakdowns, and match the attribution window to the one you use in Ads Manager.
- Choose Cursor as the destination in the data flow's destination step.
- Give the data flow a clear name, because Cursor refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In Cursor
- Open the Coupler.io entry in Cursor's MCP directory and click Add to Cursor.
- In Cursor, find the new Coupler.io integration, click Needs authentication, then sign in with your Coupler.io account and grant access.
- Open the AI pane and ask about your dataset.
Check it worked
Ask Cursor to list the datasets it can see; the Facebook Ads data flow should appear under the name you gave it. Then compare total spend for a closed date range with Ads Manager, using the same attribution window.
Coupler.io guide for CursorCoupler.io in the Cursor MCP directory
Connects to the Coupler.io MCP server through mcporter.
In Coupler.io
- In Coupler.io, create a data flow, add Facebook Ads as the source, and sign in with your Facebook account, granting every permission it requests.
- Select the ad accounts to pull from, then choose a report type; Reports and Insights is the one with performance metrics.
- Set the date range with yesterday as the end date, pick your metrics and breakdowns, and match the attribution window to the one you use in Ads Manager.
- Choose OpenClaw as the destination in the data flow's destination step.
- Give the data flow a clear name, because OpenClaw refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In OpenClaw
- Install the coupler-io skill from ClawHub. It holds the commands that connect the Coupler.io MCP server to OpenClaw with mcporter.
Check it worked
Ask OpenClaw to list the datasets it can see; the Facebook Ads data flow should appear under the name you gave it. Then compare total spend for a closed date range with Ads Manager, using the same attribution window.
Connects any MCP-compatible client with a personal access token.
In Coupler.io
- In Coupler.io, create a data flow, add Facebook Ads as the source, and sign in with your Facebook account, granting every permission it requests.
- Select the ad accounts to pull from, then choose a report type; Reports and Insights is the one with performance metrics.
- Set the date range with yesterday as the end date, pick your metrics and breakdowns, and match the attribution window to the one you use in Ads Manager.
- Choose Custom MCP as the destination in the data flow's destination step.
- Give the data flow a clear name, because your MCP client refers to the dataset by that name.
- Run the data flow manually once and wait for it to finish successfully.
- Set a refresh schedule once that first run has succeeded.
In your MCP client
- In the Custom MCP destination step, click Generate token and copy it together with the MCP server URL.
- Add the token and URL to your MCP client's JSON config, following the example config shown there.
Check it worked
Ask your MCP client to list the datasets it can see; the Facebook Ads data flow should appear under the name you gave it. Then compare total spend for a closed date range with Ads Manager, using the same attribution window.
Good to know
- Treat the personal access token as a secret and do not share it.
- Behind a corporate firewall, allow outbound connections to the Coupler.io MCP endpoint.
What Coupler.io gives you from Facebook Ads
- Nine report types: Reports and Insights, List of Sponsored Leads, List of Campaigns, List of Ad Sets, List of Ads, List of Ad Creatives, List of Ads with Ad Creatives, List of Activities, and List of Business invoices
- Reports and Insights carries the performance data: account, campaign, ad set, and ad dimensions with performance, click, cost, engagement, video, and conversion metrics
- Conversion events come in Total, Unique, Cost, Unique Cost, and Value variants, with purchase revenue as the Value variant and Purchase ROAS as its own metric; custom conversions and custom events are included
- Breakdowns: age, gender, country, region, Comscore markets, publisher platform, impression device, device platform, product id, frequency value, and hourly stats
- Time splits: daily, weekly, monthly, or totals only for the whole date range
- Structural lists cover campaign, ad set, and ad statuses, budgets, objectives, and targeting; creatives carry image URLs, ad text, and UTM url_tags
- List of Activities is the account audit log, including billing and funding activity; List of Business invoices gives monthly invoices with billed amounts per campaign
An example question you can ask
Which ad sets increased spend last month without a matching rise in purchases, and which creatives were they running?
How the data reaches the AI tool
Coupler.io reads the Facebook Ads API, stores the result as a dataset, and serves it to Claude over its MCP server. Queries run on Coupler.io's side, so a large dataset does not have to fit into the model's context. Claude sees only datasets from data flows that have Claude as their destination.
- Historical data
- You set a start and end date; no hard limit on the range is stated, but very large ranges with many breakdowns can be slow or hit API limits
- For initial backfills the documentation recommends pulling data in monthly chunks
- Refresh
- A successful manual run is required before a schedule can be set
- Scheduled refresh is described as hourly, daily, or a custom interval
- The platform supports intervals from every 15 minutes to monthly, depending on plan
- Combining several sources
- One data flow can take several sources and combine them with Join or Append before the data reaches Claude
- Facebook Ads is documented as merging with Google Ads, Google Analytics, CRM, or e-commerce data for a full-funnel view of marketing
- Creative details and performance come from separate report types and are joined on Ad Id
- Prerequisites
- A Facebook account with access to at least one ad account in Meta Business Suite
- Admin or Advertiser permissions on the ad account you want to pull data from
- A Coupler.io account
Limits to expect
- The Facebook Ads API has a 1 to 2 day data latency, so today and sometimes yesterday are incomplete
- Attribution windows must match Ads Manager for the numbers to agree; if none is selected in Coupler.io, a 7-day click window is used
- The 1-day engaged-view attribution window is not available through the API, so conversion counts can be lower than in Ads Manager
- Reach and ratio metrics such as CTR, CPC, and CPM cannot be summed across rows
- Since 6 August 2026, Meta returns no data for the Impression device, Frequency value, and Hourly stats by audience time zone breakdowns until they are enabled per ad account in Ads Manager
- Demographic or geographic breakdowns cannot be combined with hourly breakdowns, and action breakdowns can make the parts add up to more than the total
- Any filter in Advanced settings makes the API return active objects only, unless an explicit status filter is added
- Several data flows pulling from one ad account at once can hit Facebook's per-account rate limits; large reports can fail with Async Job failed
- Currency follows the ad account and cannot be converted, and insights are returned in the ad account's timezone
Related skills
Section titled “Related skills”A skill gives the AI tool instructions for a task. It connects no data, so connect Facebook Ads first.
Audience analysis
- Which audiences are working on Meta
- Is my lookalike better than broad
View skillBudget pacing
- Am I on track with my Meta budget
- Will I overspend this month
View skillClient report
- What do I tell the client
View skillCreative analysis
- Which creative is working on Meta
- Which ads should I put money behind
View skill
Show 9 more skillsShow fewer skills
Creative fatigue
- Is my Meta creative burning out
- My CTR is dropping
View skillPerformance review
- How are my Meta ads doing
- Why did my cost per result go up
View skillPixel and attribution audit
- Can I trust my Meta conversion numbers
- Why does Facebook claim more purchases than Shopify
View skillPlacement geo and device
- Is Audience Network wasting my money
- Should I turn off automatic placements
View skillSettings audit
- Audit my Meta ads settings
- Is this account set up right
View skillStructure and learning review
- Is my Meta account built right
- Why are my ad sets stuck in learning
View skillWaste and scale
- Where am I wasting money on Meta
- Which ad sets should I pause
View skillMarketing analytics
- Why did conversions drop
- Which channel has best ROI
View skillPPC analytics
- How are my ads performing
- Weekly PPC report
View skill
Related connectors
Section titled “Related connectors”No related connectors listed yet. Browse all connectors.
Questions
Section titled “Questions”Can Claude pause an ad or change my budgets?
No. Coupler.io is read-only against Facebook Ads: Claude queries an imported dataset and cannot change campaigns, budgets, or bids.
How are ad accounts counted toward my Coupler.io plan?
Facebook Ads is a tenant-based source, so each ad account you select counts as one account toward your plan limit, however many report types or data flows use it.
Why don't my numbers match Ads Manager?
Usually the attribution window. Coupler.io uses a 7-day click window when none is selected, so set the same window you use in Ads Manager. Then check that the period split, the entity level, and the breakdowns match. Conversions attributed to the 1-day engaged-view window are not available through the API at all, so those counts can stay slightly lower.
Why is today's data missing or incomplete?
The Facebook Ads API has a 1 to 2 day data latency, so the current day and sometimes yesterday are not fully processed. Set the end date to yesterday for complete numbers.
Why is my Reach total higher than in Ads Manager?
Reach counts unique people, so adding up daily Reach rows counts anyone who saw an ad on several days more than once. Use the Totals only period split for a single deduplicated figure over a fixed date range, or keep Reach per row. Ratio metrics such as CTR, CPC, and CPM should likewise be recalculated from totals rather than summed.
Why did the Impression device, Frequency value, or Hourly stats breakdown stop returning data?
Since 6 August 2026, Meta requires these breakdowns to be enabled per ad account in Ads Manager, and until then its API returns no results for them, even if they worked before. Enable the breakdown for the ad account and re-run the data flow; full history, including data from before enablement, comes back.
Sources and corrections
Section titled “Sources and corrections”Researched on 2026-10-04. One route is covered, researched on 4 October 2026: the Coupler.io data platform. No dedicated Facebook Ads or Meta Ads entry was reachable in Claude’s connector directory at the obvious addresses; the directory cannot be searched exhaustively, so no claim is made that none exists.
Something here wrong or out of date? Open a correction issue and it will be re-checked against the source.