10 Meta Ads Analyses ChatGPT (or Claude) Answers When You Connect Kondado's MCP
Meta Ads operators spend hours every week wrestling with fragmented data. They jump between the Meta Ads Manager, Google Sheets, and BI tools just to answer simple questions like "Which campaign actually delivered leads that became customers?" or "Why did my CPA spike last Tuesday?"
When you replicate your Meta Ads data through Kondado and connect it to an AI assistant via the Model Context Protocol (MCP), those hours collapse into minutes. The LLM queries your data warehouse directly and returns answers in natural language - no SQL required from you.
TL;DR: Connect your Meta Ads data to ChatGPT or Claude via Kondado's MCP endpoint at https://mcp.kondado.io/mcp and get instant answers to complex analytical questions about campaign performance, creative fatigue, and cross-channel attribution. The MCP exposes 26 tables from your Meta Ads pipeline including ad insights, lead data, campaign details, and post metrics - all cleaned and structured for LLM consumption. Kondado's technical preprocessing handles API quirks like pivoting action arrays into flat columns, converting centavos to currency, and flagging deprecated fields - so the LLM returns accurate answers, not hallucinated metrics.
What Does Kondado's MCP Do for Meta Ads Operators?
The Model Context Protocol (MCP) is an open standard that connects AI assistants to external data sources. Kondado's MCP implementation exposes the data you've replicated from Meta Ads (and 80+ other sources) to any MCP-compatible client like ChatGPT, Claude, or Cursor.
When you set up a pipeline from Meta Ads through Kondado, your data lands in a destination you control - BigQuery, PostgreSQL, Amazon S3, or any of the 26 visualization tools Kondado supports. The MCP creates a secure bridge between that destination and your AI assistant using OAuth 2.1 authentication. The endpoint is https://mcp.kondado.io/mcp. The MCP is read-only and limited to 1,000 records per execution in v1.
The LLM does not browse your Ads Manager interface. It queries the replicated tables using Kondado's simplified JSON query format (KSQL), and it can only read - never write back to your Meta account. This read-only, historical-data approach means you get analytical answers without any risk of accidental campaign changes.
What makes this powerful for Meta Ads operators is the data preparation Kondado performs before the MCP ever sees it. The Meta Marketing API returns nested JSON arrays, deprecated fields, and cryptic status codes. Kondado flattens action types into queryable columns, converts budget values from centavos to actual currency, and documents field deprecations like post_impressions (retired November 2025). The LLM works with clean, predictable schema rather than raw API complexity. See the MCP documentation for complete technical details.
Which 10 Analyses Can the MCP Answer?
1. What Is My Real CPL per Campaign by Objective Type?
The Business Pain
Meta Ads Manager shows "Results" for each campaign, but "Results" means different things depending on the campaign objective. For a LEAD_GENERATION campaign, results are leads. For an OUTCOME_TRAFFIC campaign, results are link clicks. For an OUTCOME_SALES campaign, results are purchases. Operators trying to calculate a unified Cost Per Lead (CPL) across campaigns hit a wall - they cannot compare apples to apples without manually mapping each objective to its result metric.
Tables and Fields Queried
The LLM joins three tables: facebook_campaign_details.objective identifies the campaign type, facebook_adset_details.optimization_goal confirms the bidding focus, and facebook_ad_insights_actions contains the flattened action columns (a_lead, a_link_click, a_offsite_conversion_fb_pixel_purchase). It divides facebook_ad_insights.spend by the appropriate action column for each objective.
Kondado's Technical Differentiator
The Meta Marketing API returns the actions field as a nested JSON array: [{"action_type": "lead", "value": 12}, {"action_type": "link_click", "value": 45}]. An LLM querying the raw API would need to parse this array for every row. Kondado pivots these action types into flat columns (a_lead, a_link_click, a_purchase) during replication. The LLM simply queries SELECT a_lead FROM facebook_ad_insights_actions WHERE campaign_id = 'xxx' without any JSON extraction syntax. This learning is documented in Kondado's internal schema mapping (Learning 87, facebookleadsv2_sourcer.py:974).
Example LLM Response
"Your Lead Generation campaigns averaged $18.40 CPL this week, while your Traffic campaigns delivered clicks at $2.15 CPC. Interestingly, your single OUTCOME_SALES campaign shows $89 per purchase - but when I cross-reference with Shopify orders (available via another pipeline), the actual customer acquisition cost is lower because some purchasers came through retargeting."
2. Where Did My Performance Degrade - Audience, Creative, Placement, or Hour?
The Business Pain
A rising CPA triggers panic. The operator opens Ads Manager and manually toggles breakdowns - age, gender, country, publisher platform, device. Each breakdown requires waiting for the interface to load, scanning numbers, and mentally comparing to previous periods. This detective work consumes 1-2 hours and often misses the root cause hidden in combinations (e.g., "Instagram Stories on mobile for ages 25-34").
Tables and Fields Queried
The LLM queries facebook_ad_insights with different dimension groupings using fields like age, gender, country, publisher_platform, impression_device, and hourly_stats_aggregated_by_advertiser_time_zone. It calculates cost per result for each segment, compares the last 7 days versus the previous 7 days, and identifies the dimension with the largest percentage delta.
Kondado's Technical Differentiator
Meta's API has a documented limitation called Type 1 breakdown restrictions. When you request certain breakdowns like region, dma, or hourly_stats_aggregated_by_* directly from the API, all conversion fields (a_offsite_conversion_*) return zero silently. The API does not error - it just returns zeros. An LLM querying raw Meta API would report "CPA = $0 in all regions" and conclude all campaigns failed. Kondado handles this by documenting the restriction and routing conversion data through the _actions sub-table with __kdd_include_action_details=on enabled. The LLM receives accurate conversion data without knowing this complexity existed. This behavior is documented in Learning 20.
Example LLM Response
"I found the degradation source. Your CPA for ages 45-54 on Instagram Stories jumped 340% in the last 7 days. All other segments remained stable. The creative you're running there ("Summer Sale - Limited Time") shows frequency above 4.0, indicating creative fatigue. I recommend refreshing that specific creative or excluding that age bracket from that placement temporarily."
3. Which Lead Ads Actually Became Customers in My CRM?
The Business Pain
Lead Ads generate form submissions at $10-30 each, but the pipeline stops there. The CRM (Pipedrive, HubSpot, RD Station) contains the actual conversion data - which leads became opportunities, which opportunities closed, and for how much. Without connecting these systems, operators optimize for CPL (cost per lead) rather than true ROAS. They might be acquiring cheap leads that never convert while expensive leads from another campaign have 5x higher lifetime value.
Tables and Fields Queried
The LLM joins facebook_leads with facebook_leads__field_data to extract the lead's email (filtering where name='email'), then matches that email against pipedrive_deals.person_email or hubspot_contacts.email. It groups by facebook_leads.ad_id and facebook_leads.campaign_id to attribute closed deals back to specific ads.
Kondado's Technical Differentiator
Kondado replicates both Meta Ads and CRM data into the same destination. Without this, an operator would need manual CSV exports, VLOOKUPs, or a separate ETL tool just to connect lead sources to CRM outcomes. The LLM performs this join via a single query across tables that already sit together in the data warehouse. The facebook_leads__field_data table arrives in long format - one row per form field - which the LLM filters with simple WHERE name='email' syntax rather than parsing JSON field arrays.
Example LLM Response
"I analyzed 127 leads from your 'Ebook Download' campaign in April. Of those, 23 entered your Pipedrive pipeline and 8 closed with an average deal value of $4,200. That campaign's true ROAS is 4.7x based on ad spend, not the 12x you would calculate from lead volume alone. Conversely, your 'Webinar Signup' campaign generated 203 leads but only 3 deals closed - a true ROAS of 0.8x. I recommend shifting 40% of the webinar budget to the ebook format."
4. Which Ads Show Active Status but Are Not Actually Delivering?
The Business Pain
The Ads Manager interface shows a green dot and "Active" status, but spend has been zero for days. Meta may have paused delivery due to budget exhaustion, learning phase issues, policy violations, or auction dynamics - but the interface still displays "Active". Operators discover this only when they notice missing data in weekly reports, often days later.
Tables and Fields Queried
The LLM queries facebook_ad_details selecting ad_id, name, status, effective_status, and campaign_name. It filters for rows where status='ACTIVE' but effective_status != 'ACTIVE'.
Kondado's Technical Differentiator
The field effective_status was added to Kondado's schema starting with map_version >= 20240322 (facebookleadsv2_sourcer.py:5335). This field captures the actual delivery state as distinct from the configured state. Raw API queries without this field would miss paused delivery entirely. Kondado's schema includes both, enabling the audit query that finds hidden delivery problems.
Example LLM Response
"I found 7 ads with this discrepancy. All show 'Active' in your interface but effective_status indicates 'CAMPAIGN_PAUSED' for 3 ads (their parent campaigns hit budget limits), 'ADSET_PAUSED' for 2 ads (ad set schedule ended), and 'WITH_ISSUES' for 2 ads (one policy violation, one learning phase stuck). The 'Summer Promo - Carousel 2' ad has been in this state for 11 days with zero delivery despite showing green in Ads Manager."
5. How Much Shopify Revenue Actually Came from Meta Ads versus Google versus Organic?
The Business Pain
Attribution is the number one pain point for e-commerce operators running Meta Ads. Meta claims credit for conversions based on its 7-day click window. Google Analytics 4 reports different numbers based on its attribution model. Shopify shows yet another view based on last non-direct click. The sum of attributed revenue across platforms exceeds actual store revenue. Operators cannot answer the fundamental question: "Did my Meta Ads spend actually drive incremental sales?"
Tables and Fields Queried
The LLM joins facebook_ad_insights_actions.a_offsite_conversion_fb_pixel_purchase with ga4_sessions (via UTM parameters and client_id) and shopify_orders (via UTM source and timestamp matching). It compares the purchase counts and revenue across all three sources, normalizing by date and campaign identifier.
Kondado's Technical Differentiator
Meta's official MCP only sees Meta data. Google's tools only see Google data. Kondado replicates Meta Ads, Google Ads, GA4, and Shopify into the same destination. The LLM can query across all four sources in a single session, reconciling attribution differences using SQL rather than requiring operators to mentally compare separate reports. This closed-funnel view is only possible because Kondado normalizes data from 80+ sources into a unified warehouse structure.
Example LLM Response
"I reconciled your April data. Meta Ads reported $127,000 in attributed revenue. Shopify shows $94,000 in orders with utm_source=meta. GA4 reports $108,000 with medium=paid_social. The $33,000 gap between Meta and Shopify represents view-through conversions and multi-touch attribution. Your true incremental lift appears to be the Shopify-reported number - $94,000 against $18,400 in spend for a 5.1x ROAS. Google Ads contributed $41,000 and organic/direct drove $312,000. I recommend increasing Meta budget by 20% based on this verified performance."
6. Which Creatives Are Fatigued and Which Still Have Traction?
The Business Pain
Creative fatigue silently destroys campaign performance. As frequency rises, CTR falls, CPM rises, and CPA explodes - but operators detect this too late. They manually review creative performance in Ads Manager, comparing thumbnails and body text across dozens of ads. By the time fatigue is visible in weekly reports, 30% of the budget has already burned on exhausted creative.
Tables and Fields Queried
The LLM joins facebook_ad_details (containing creative_body, creative_image_url, thumbnail_url) with facebook_ad_insights (containing ctr, impressions, frequency) aggregated by 7-day windows. It calculates the CTR trend for each creative by comparing recent versus earlier periods.
Kondado's Technical Differentiator
The creative metadata fields (creative_body, creative_image_url, thumbnail_url) are stored in the data warehouse alongside performance metrics. An LLM querying raw API would need separate calls to fetch creative content and performance data. With Kondado, the LLM queries once and can even describe the creative visually in its response: "The creative with body 'Flash Sale - 50% Off' and thumbnail showing the blue product image has declining CTR since May 15th."
Example LLM Response
"I analyzed your 12 active creatives. Three show clear fatigue: 'Testimonial - Maria' (CTR dropped from 2.1% to 0.7% over 14 days, frequency at 5.4), 'Product Demo - Video 3' (CTR 1.8% to 0.9%, frequency 4.1), and 'UGC - Unboxing' (CTR 2.3% to 1.1%, frequency 6.2). Five creatives maintain stable performance including 'Limited Stock Alert - Carousel' which actually improved from 1.4% to 1.9% CTR. I recommend pausing the three fatigued creatives and allocating their $2,400 weekly budget to the top performers."
7. Why Is My Instagram Follower Count Zero in Reports?
The Business Pain
Reports tracking Instagram follower growth suddenly show zero values starting on a specific date. Operators assume their data pipeline broke or the report configuration is wrong. They open support tickets asking why "the data source stopped working" when the actual cause is a platform change by Meta.
Tables and Fields Queried
The LLM queries instagram_account_insights.follower_count and instagram_user.followers_count, detecting when the first field cuts to zero while the second maintains normal values.
Kondado's Technical Differentiator
This is a documented Meta API bug affecting multiple reporting periods in July 2025 and March 2026. The field follower_count in the insights edge returns zero while the same metric in the user edge (followers_count) remains accurate. Kondado has documented this behavior (Learning 96) and maintains both fields in the schema. An LLM connected via Kondado's MCP can diagnose the root cause and provide the workaround: use followers_count instead of follower_count. An LLM querying the Meta API directly would simply report "0 followers" without context, potentially triggering unnecessary campaign panic.
Example LLM Response
"Your follower_count field shows zeros starting March 18, 2026. This is a known Meta API bug, not a Kondado pipeline issue. The instagram_user.followers_count field (from the user profile endpoint) shows your actual follower count: 24,847 on March 18, growing to 25,103 by March 25. The insights-edge follower_count field has been returning nulls for multiple accounts since Meta's v24.0 Graph API update. I recommend updating your report to pull from followers_count instead."
8. What Happened to post_impressions and How Do I Fix My Page Report?
The Business Pain
Starting November 6, 2025, post_impressions (total impressions per post) began returning NULL in facebook_posts_metrics. Reports tracking page content performance broke silently. Operators noticed missing data but could not determine if their pipeline failed, if Meta deprecated the field, or if they needed to migrate to a different metric.
Tables and Fields Queried
The LLM detects the cutoff in facebook_posts_metrics.post_impressions and suggests the replacement calculation using post_impressions_organic, post_impressions_paid, and post_impressions_viral.
Kondado's Technical Differentiator
Kondado documented this deprecation in changelog #658 (November 18, 2025) and Learning 162. The post_impressions field was retired as part of Meta's New Pages Experience (NPE) migration. Kondado's schema maintained the granular impression fields that remained available. The LLM can identify when the cutoff occurred, explain the platform change, and provide the exact SQL formula to reconstruct total impressions from available components.
Example LLM Response
"Your post_impressions field stopped returning data on November 6, 2025. Meta deprecated this field as part of the New Pages Experience migration (changelog #658). To restore your report, replace post_impressions with this calculation: post_impressions_organic + post_impressions_paid + post_impressions_viral. Your top post from last week actually had 12,847 total impressions - 9,200 organic, 2,400 viral, and 1,247 paid - but your current report shows NULL. Here's the corrected query for your report configuration."
9. Which Channel Delivers Customers with Higher Lifetime Value?
The Business Pain
Operators optimize for first-purchase ROAS, but the real value lies in 90-day or 12-month customer lifetime value. A channel bringing $50 customers who repurchase 3 times is superior to a channel bringing $80 one-time buyers. Without connecting acquisition source to long-term purchase behavior, budget allocation favors short-term conversion over long-term profitability.
Tables and Fields Queried
The LLM segments customers by first-touch source (from ga4_sessions or shopify_orders.utm_source), then joins with subsequent orders from shopify_orders or omie_pedidos over the following 90 days. It calculates average LTV per source and compares against acquisition cost from facebook_adaccount_insights.spend or google_ads_campaign_insights.cost.
Kondado's Technical Differentiator
This analysis requires ERP data (Omie, Conta Azul) or e-commerce platform data (Shopify) joined with advertising data. Kondado's ICP 1 (SMBs with ERP + e-commerce) has exactly this use case. The MCP exposes all these sources simultaneously - Meta Ads, Shopify, Omie, GA4 - enabling cross-source LTV analysis that no single-platform MCP could perform.
Example LLM Response
"I analyzed your Q1 customer cohorts by acquisition source. Meta Ads customers had a 90-day LTV of $187 versus a first-order average of $65 - a 2.9x multiplier. Google Ads customers had 90-day LTV of $134 from a $72 first order - 1.9x multiplier. Organic customers showed $298 LTV from $89 first orders - 3.3x multiplier. When factoring acquisition costs, Meta delivers $4.20 LTV/CAC, Google delivers $2.80, and organic delivers $9.90. I recommend shifting 15% of Google budget to Meta while maintaining organic investment through content and SEO."
10. Which Hours of the Day Deliver Lower CPA?
The Business Pain
Intraday optimization is nearly impossible in standard Meta tools. Ads Manager shows day-level aggregates. To find that CPA spikes 40% between 2-6 AM when conversion rates drop but auctions remain competitive, an operator would need to manually export hourly breakdowns across weeks of data. Most operators run ads 24/7 because they lack the data infrastructure to optimize by hour.
Tables and Fields Queried
The LLM aggregates facebook_ad_insights by hourly_stats_aggregated_by_advertiser_time_zone, calculating CPA per hour using spend divided by the relevant action metric from the _actions sub-table.
Kondado's Technical Differentiator
Hourly breakdowns trigger the Type 1 restriction documented in Learning 20 - conversion data would zero out if queried with hourly dimensions from the raw API. Kondado handles this by routing conversion queries through the facebook_ad_insights_actions sub-table with __kdd_include_action_details=on configured in the pipeline. The LLM receives accurate conversion counts by hour without knowing this workaround was necessary.
Example LLM Response
"I analyzed your hourly CPA over the last 30 days. Hours 9-11 AM and 7-9 PM deliver your lowest CPA at $24 and $26 respectively. Hours 2-6 AM show CPA of $89 - 270% higher. Early morning impressions convert at 0.3% versus 1.8% during peak hours, likely because your audience is not in purchase mindset overnight. I recommend a dayparting schedule: 120% budget allocation 9-11 AM and 7-9 PM, 50% allocation 2-6 AM, standard elsewhere. This would reduce average CPA by approximately 18% while maintaining total daily spend."
How Do I Set Up the MCP in 3 Steps?
Step 1: Replicate Meta Ads via Kondado
Create a pipeline from Meta Ads to your preferred destination. Kondado supports BigQuery, PostgreSQL, MySQL, Amazon S3, Amazon Redshift, Microsoft SQL Server, and more. Enable the tables you need for analysis - at minimum facebook_ad_insights, facebook_ad_insights_actions, and facebook_ad_details. For lead attribution, include facebook_leads and facebook_leads__field_data.
Step 2: Connect Your Destination to an MCP Client
In your AI assistant's MCP settings, add a new server connection. Use OAuth 2.1 authentication through app.kondado.com.br/oauth/authorize or a legacy Bearer token if your client does not support OAuth. Configure the destination credentials (BigQuery project, PostgreSQL host, etc.) in your Kondado account so the MCP can route queries to your specific data warehouse.
Step 3: Query via the MCP Endpoint
Point your MCP client to https://mcp.kondado.io/mcp. The LLM can now send KSQL JSON queries to your replicated Meta Ads data. Query responses return up to 1,000 records per execution. The MCP is read-only - it cannot modify your campaigns, audiences, or ads. Each session connects to one Kondado account.
Why Should I Choose Kondado Over the Official Meta MCP?
Meta launched its own MCP in early 2026 at mcp.facebook.com/ads. Both solutions connect AI assistants to Meta Ads data, but they serve fundamentally different use cases.
The Official Meta MCP connects directly to live Meta Ads accounts via immediate API calls. It supports read and write operations - the LLM can pause campaigns, adjust budgets, or create new ads. It only sees Meta data. If you ask about cross-channel attribution or lead-to-customer conversion, it cannot answer because it has no visibility into Shopify, Google Analytics, or your CRM.
Kondado's MCP connects to your replicated historical data in a destination you control. It is read-only - the LLM analyzes but never modifies. It sees Meta Ads alongside 80+ other sources including Google Ads, Shopify, GA4, Pipedrive, HubSpot, and ERPs like Omie and Tiny ERP. When you ask "Which Meta leads became customers?" the LLM can actually answer because it queries your CRM data in the same warehouse.
The choice depends on your workflow. Use the official Meta MCP for immediate campaign management - pausing underperformers, duplicating winners, adjusting budgets on the fly. Use Kondado's MCP for analytical questions requiring historical data, cross-source joins, and attribution analysis - the work that actually explains why campaigns perform the way they do.
Frequently Asked Questions
How is Kondado's MCP different from just asking ChatGPT about Meta Ads?
Without the MCP, ChatGPT answers based on general knowledge - it cannot see your specific campaign data, spend history, or lead quality. With the MCP connected via Kondado, ChatGPT queries your actual replicated data and returns answers based on your real metrics, creatives, and customer conversions.
What data sources can I join with Meta Ads through the MCP?
Kondado supports joining Meta Ads with any of the 80+ sources in the catalog including Google Ads, Google Analytics 4, Shopify, Pipedrive, HubSpot, RD Station, Salesforce, Omie ERP, Tiny ERP, VTEX, Bling, and major advertising platforms like TikTok Ads and LinkedIn Ads. All sources replicate to the same destination for unified querying.
Is my data secure when using the MCP?
Yes. The MCP connection uses OAuth 2.1 authentication and is read-only - it cannot modify your Meta Ads account, campaigns, or settings. Your data replicates to a destination you control (your BigQuery project, your PostgreSQL database, your S3 bucket). Kondado facilitates the replication pipeline you own without retaining your data permanently.
Do I need to know SQL to use the MCP?
No. You ask questions in natural language like "What was my CPA last week by campaign?" The LLM translates your question into KSQL JSON queries automatically. You receive answers in plain English (or your preferred language) with the underlying data tables referenced for verification.
What is the difference between a pipeline and the MCP connection?
A pipeline is the automated data replication from Meta Ads to your destination - this runs continuously on Kondado's infrastructure. The MCP is the connection layer that lets AI assistants query that replicated data. You need both: the pipeline to move data, and the MCP to expose it to LLMs. The pipeline operates regardless of whether the MCP is connected.
Which AI assistants work with Kondado's MCP?
Any MCP-compatible client works including ChatGPT (OpenAI), Claude (Anthropic), Cursor (for developers), and generic MCP clients. The endpoint https://mcp.kondado.io/mcp follows the Model Context Protocol standard, making it compatible with any tool implementing that specification.
How much historical data is available through the MCP?
The MCP queries whatever historical data your pipeline has replicated. When you first create a Meta Ads pipeline, Kondado backfills 90 days by default. From there, the pipeline replicates new data daily or on your configured schedule. The MCP has access to all data in your destination - potentially years of history if you have been running Kondado pipelines that long.
Test Kondado with MCP access for 14 days free. Start your trial at Kondado's signup page and connect your Meta Ads data to ChatGPT or Claude within minutes.
