How ChatGPT Detects Creative Fatigue in Your Meta Ads — and What SQL It Runs Under the Hood

How ChatGPT Detects Creative Fatigue in Your Meta Ads — and What SQL It Runs Under the Hood

How ChatGPT Detects Creative Fatigue in Your Meta Ads — and What SQL It Runs Under the Hood

Creative fatigue is one of the biggest enemies of Meta Ads performance. When an ad creative "gets tired," CTR drops, frequency rises, and CPM explodes — but many media operators only notice after days of wasted budget. Asking ChatGPT "which creatives are fatigued in my Meta Ads account" works when the LLM is connected, via Kondado's MCP, to the data warehouse where your Meta data has been replicated. Under the hood, ChatGPT joins facebook_ad_details (creative, thumbnail, text) with facebook_ad_insights (CTR, frequency, impressions) and returns the list sorted by CTR decline. With Kondado's MCP, ChatGPT and Claude directly query your replicated data to detect declining creatives, identifying CTR drop patterns by crossing visual metadata with performance metrics.

What Is Creative Fatigue (and Why It's Expensive)

Creative fatigue happens when the same ad piece is shown repeatedly to the same audience. The result is predictable: CTR (click-through rate) drops, frequency rises, and CPM increases — often silently, without alerts in Ads Manager.

Media operators test creatives manually, comparing thumbnails and text in spreadsheets. But detecting when a specific piece no longer performs requires cross-referencing performance metrics with creative metadata — something that consumes 1-2 hours of analysis per campaign. When fatigue is finally identified, 30% of the budget has already been spent on ads that don't convert.

How ChatGPT Detects It via Kondado's MCP

When you replicate your Meta Ads data through Kondado and connect ChatGPT or Claude via MCP (Model Context Protocol), the LLM directly queries the tables in your data warehouse. To detect creative fatigue, it executes a join between:

  • `facebook_ad_details` — creative metadata: `creative_body` (text), `creative_image_url`, `thumbnail_url`
  • `facebook_ad_insights` — performance metrics: `ctr`, `impressions`, `frequency`, `metric_date`

The LLM groups data by 7 or 14-day windows, calculates the CTR trend for each creative, and identifies those with significant decline accompanied by high frequency. The result is a prioritized list of creatives that need to be paused or refreshed.

Example Natural Response from ChatGPT

"Creative fatigue analysis for the last 14 days: - Creative 'Summer Promo' (thumbnail: beach.png): CTR dropped 45% (2.8% → 1.5%), frequency 4.2x — fatigued, recommend pausing - Creative 'Testimonial Ana' (thumbnail: video_thumb.jpg): CTR stable at 3.1%, frequency 2.1x — still performing - Creative 'Economy Kit' (thumbnail: products.png): CTR up 12% — scale budget I recommend pausing 'Summer Promo' and testing a new headline variation."

KSQL Query the LLM Runs Under the Hood

{
  "table_name": "facebook_ad_insights",
  "columns": ["ad_id", "ctr", "impressions", "frequency", "metric_date"],
  "where_conditions": [
    {"column": "metric_date", "operator": "LAST_N_DAYS", "value": 14}
  ],
  "joins": [
    {
      "table": "facebook_ad_details",
      "columns": ["ad_id", "creative_body", "creative_image_url", "thumbnail_url"],
      "on": "facebook_ad_insights.ad_id = facebook_ad_details.ad_id"
    }
  ],
  "order_by": [{"column": "metric_date", "direction": "desc"}]
}

The LLM translates your natural language question into this KSQL JSON structure automatically — you don't need to write SQL.

Bonus: Cross-Reference with Organic Posts

If you boost organic posts as ads, the LLM can join facebook_page_posts.message with facebook_ad_details.creative_body to detect which organic pieces became successful ads. This helps identify high-engagement organic content that deserves paid promotion budget.

Technical Alert: Conversion Metrics and Breakdowns

To detect creative fatigue in conversions (not just clicks), you need to query the sub-table facebook_ad_insights_actions. The field a_offsite_conversion_fb_pixel_purchase (and other action_types) is pivoted into separate columns thanks to Kondado's canonical processing — Learning 87 documents the mapping of 163 action_types.

Important Caveat — Learning 20: If you enabled Type 1 breakdowns like region,dma, or hourly_stats_aggregated_by_*, off-Meta conversions (pixel) silently return zero in the Meta API. Kondado documents this behavior and instructs using country instead of region, or querying the _actions sub-table with __kdd_include_action_details=on enabled.

Quick Setup in 3 Steps

Step 1 — Replicate Meta Ads via Kondado

Create a pipeline from Meta Ads in Kondado. Select the essential tables: facebook_ad_insights,facebook_ad_insights_actions (for conversions), facebook_ad_details (creative metadata). Configure the destination (BigQuery, PostgreSQL, Redshift, etc.). Visit Kondado's sources page to see all available data sources for LLM analysis. Results can be visualized in any report tool connected to your data warehouse.

Step 2 — Connect Kondado's MCP to ChatGPT or Claude

In ChatGPT, Claude Desktop, or Cursor: add an MCP connection with URL https://mcp.kondado.io/mcp. Authentication uses OAuth 2.1 — you'll be redirected to app.kondado.com.br/oauth/authorize to authorize.

Step 3 — Ask in Natural Language

With MCP connected, ask: "Which creatives are fatigued in my account?" or "List the 10 creatives with worst CTR trend in the last 14 days." The LLM translates to KSQL, executes via MCP, and returns the answer in English.

See More Possible Analyses

This article focused on creative fatigue detection — Pain Point #6 among the top Meta Ads analysis pain points. See the complete guide with 10 Meta Ads analyses ChatGPT answers via Kondado's MCP — including real CPL per campaign, cross-channel attribution with Shopify, leads that became CRM customers, hourly performance analysis, and more.

Why Via Kondado and Not the Official Meta MCP

Meta launched its own MCP in 2026, but there are crucial differences:

  • **Official Meta MCP:** only sees Meta Ads data, only access to recent data (no history), allows read + write (can modify campaigns)
  • **Kondado's MCP:** sees Meta Ads + Google Ads + GA4 + Shopify + Pipedrive plus 70-plus other sources in the same data warehouse, access to complete history, read-only (safer for analysis), data already normalized with pivoted action_types and handled breakdowns

Kondado's MCP delivers closed-funnel analysis — not just Meta data. With 80-plus sources in the same destination, you ask "how much of my Shopify revenue came from Meta" and the LLM answers in a single session.

Frequently Asked Questions

What is creative fatigue in Meta Ads?

Creative fatigue occurs when the same ad creative is shown repeatedly to the same audience, causing CTR to drop, frequency to rise, and CPM to increase — often without visible alerts in Ads Manager.

How does ChatGPT detect tired creatives?

With Kondado's MCP connected to your data warehouse, ChatGPT queries the facebook_ad_details and facebook_ad_insights tables via KSQL, identifying CTR decline patterns per creative over 7-14 day windows.

Do I need to know SQL to use Kondado's MCP?

No. The LLM (ChatGPT, Claude, or Cursor) translates your natural language questions into KSQL queries automatically. You ask "which creatives are fatigued" and receive an analytical answer.

Which Meta Ads tables are needed to detect creative fatigue?

The essential tables are: facebook_ad_insights (performance metrics), facebook_ad_details (creative metadata), and optionally facebook_ad_insights_actions for conversion analysis.

How many sources besides Meta Ads work with Kondado's MCP?

Kondado offers 80+ connectors. All sources replicated to the same data warehouse become available via MCP, enabling cross-channel analysis like Meta + Shopify + GA4.

What's the difference between Kondado's MCP and the official Meta MCP?

The official Meta MCP only sees Meta Ads data and allows campaign modifications. Kondado's MCP sees Meta Ads + 70+ sources in the same destination, is read-only (safer), and delivers normalized historical data.

How do I start using Kondado's MCP?

Create a Kondado account, set up a Meta Ads integration selecting the required tables, connect your destination (BigQuery, PostgreSQL, etc.), and add the endpoint https://mcp.kondado.io/mcp in ChatGPT or Claude via OAuth 2.1.

Test Via Kondado with MCP for 14 days free and discover what ChatGPT and Claude can analyze about your Meta Ads data today.

Frequently asked questions

What is creative fatigue in Meta Ads?
Creative fatigue occurs when the same ad creative is shown repeatedly to the same audience, causing CTR to drop, frequency to rise, and CPM to increase.
How does ChatGPT detect tired creatives?
With Kondado's MCP connected to your data warehouse, ChatGPT queries the facebook_ad_details and facebook_ad_insights tables via KSQL.
Do I need to know SQL to use Kondado's MCP?
No. The LLM translates your natural language questions into KSQL queries automatically.
Which Meta Ads tables are needed?
The essential tables are: facebook_ad_insights, facebook_ad_details, and facebook_ad_insights_actions.
How do I start using Kondado's MCP?
Create a Kondado account, set up a Meta Ads integration, connect your destination, and add the endpoint https://mcp.kondado.io/mcp in ChatGPT.

Written by·Published 2026-05-14