MCP for Facebook Ads: spend, creative, placement and demographics in one question
Ads Manager answers one question at a time well. “Which ads spent this week without generating a single contact, and which page do they send to?” crosses four reports. With the data synced and an MCP connector, it is one sentence.

Ads Manager is good at what it does: it shows campaign, ad set and ad, with the columns you choose, for the period you choose. What it does not do is answer questions that cross levels, or that cross Meta with what happened AFTER the click — on your site, in your CRM, on your payment platform.
This is the second article in the series on connecting AI to business data; the first was about Hotmart. Here the data is Meta Ads, and the promise is the same: the question becomes a sentence, and the answer comes with the query visible.
What needs to be synced
The Meta API delivers more than the dashboard shows, and the connector is only as good as what it pulls. From our experience, the minimum list is this:
| What | Cadence | To answer |
|---|---|---|
| Campaigns, ad sets and ads (entities) | Once a day | Name, status, objective, budget |
| Insights per ad and day | Hourly | Spend, impressions, clicks, conversions and conversion VALUE |
| Breakdowns: placement, device, demographics, country | Once a day, separate table | Where the money pays off and where it vanishes |
| Ad links (real destination) | With the entities | Which page each ad sends to |
Two details we learned by measuring: conversion value (action_values) does not come unless someone asks for it, and without it there is no ROAS — only a purchase count; and breakdowns multiply rows 7 to 16 times, so they need their own table, otherwise spend is summed several times.
Questions the dashboard does not answer
- 01Which ads spent more than R$ 500 in the last 7 days with no contact in the CRM?
- 02Which placement has the best return per real spent — Reels, Stories or Feed?
- 03Which age and gender bracket converts best by ticket, not by volume?
- 04Which creatives have been active for more than 30 days with cost per lead rising week over week?
- 05Which page does each campaign send to, and which of those pages converts worst in my pixel?
- 06Meta credits 9 sales to the campaign; my CDP sees 14 people who touched it and bought. Which are the 5?
The last three only exist because Meta data sits next to site data and sales data. It is the argument of questions that only become answerable with the data together applied to paid media.
Meta sees its attribution window. Your CDP sees the person. Both counts are true — and different.
A real example, with numbers
In a launch dashboard we built, the question “how much did paid media cost per contact” had two answers: R$ 181 by what Meta credited, and a much smaller number when we counted whoever touched an ad at any point before the contact. Two ad batches added up to R$ 38 thousand with no attributed sale, and pointed to a page that converted ten times worse than the main one. None of those sentences comes out of Ads Manager; all of them came out of a question to the connector. We tell the whole case in attribution window and your sales cycle.
What the AI does with the answer
Answering is the start. The same AI that found the ads with no return can publish a living report with that list, refreshed hourly, and — with explicit authorization — configure an audience of whoever clicked and did not convert. Reading and writing are different powers, and the connector has to keep them apart.
In CrazyLeads the Meta Ads source syncs entities, insights with conversion value, breakdowns and destination links; the MCP connector exposes it next to Hotmart, Google Ads and the pixel, in the same project, for Claude or ChatGPT to ask.