Back to blog
Article

Creative Performance Analysis: How to Find Your Winning Ads with AI

November 18, 2025
17 min read
By InsightfulPipe
On this page
Creative Performance Analysis: How to Find Your Winning Ads with AI

InsightfulPipe publishes this guide, and its steps use InsightfulPipe's hosted Meta Ads and TikTok Ads servers. Ads Manager's own reports and the creative analytics tools that rank for this topic come near the end.

Last updated: 2026-10-02

Short answer: Creative performance analysis ranks each ad creative on its own results: hook rate, hold rate, CTR, CPA and ROAS, with frequency to catch fatigue, and only once each metric has enough data. To run it in Claude, connect Meta Ads and TikTok Ads in InsightfulPipe, add the Meta Ads MCP server and the TikTok Ads MCP server as custom connectors, and ask for a leaderboard. Plans start from $29.99 a month.

Creative performance analysis with Claude: the quick version

Six steps take you from two connected ad accounts to a ranked list of your creatives, each with its own section and prompt below.

  1. In InsightfulPipe, open Connected accounts and connect Facebook Ads and TikTok Ads.
  2. Choose Read-only while Claude only reports.
  3. In Claude, open Customize > Connectors and add https://facebook-ads.insightfulmcp.com/ and https://tiktok-ads.insightfulmcp.com/ as custom connectors.
  4. Switch both connectors on in a new chat.
  5. Paste the leaderboard prompt from step 3.
  6. Rank only creatives past the minimums, then pause the losers once you approve.

Watch: Fix Facebook Ads with Claude, with spend, ROAS and optimization in one prompt, 2 minutes 39 seconds

Four ways to rank ad creatives, at a glance

Four routes cover most teams, and they differ on platforms per view, ready-made hook and hold rates, and acting on a loser.

Route

Platforms in one view

Hook and hold rate

Acts on a loser

Starting price

Claude with InsightfulPipe

Meta, TikTok and Google Ads, plus 47 more platforms

Built from raw 2-second, 3-second, 6-second and ThruPlay counts

Pauses or disables, each action a switch per account

From $29.99 a month

Ads Manager and TikTok Ads Manager

One platform each

Video columns you add yourself

By hand

Included with your ad account

Creative analytics platforms

One to five platforms, by vendor

Ready-made dashboards

Varies by vendor

$175 to $750 a month where published

Spreadsheet exports

Whatever you export

Your own formulas

No

Your time

What does creative performance analysis measure?

Creative performance analysis asks four questions of every ad, in order: did it stop the scroll, did it hold attention, did it earn the click, and did it make money. Frequency then tells you when those answers start to slip.

Example bar chart for one TikTok ad with 10,000 impressions: 8,900 video views or 89%, 2,600 two-second views or 26%, 1,100 six-second views or 11% and 450 complete views or 4.5%, so a hook rate on video views reads 89% and on two-second views 26%.

Read each count at its source, because the platforms count views differently. TikTok counts every start as a video view (TikTok), so video views sit close to impressions while far fewer plays reach two or six seconds. In the example above, a hook rate built on video views reads 89%. Built on two-second views, it reads 26%.

Metric

Formula

Meta field

TikTok field

What it tells you

Hook rate

3-second plays / impressions

actions, type video_view

video_watched_2s (no 3-second count)

The opening stops the scroll

Hold rate

ThruPlays / 3-second plays

video_thruplay_watched_actions

video_watched_6s / video_watched_2s

The body keeps attention

CTR

Link clicks / impressions

inline_link_click_ctr

ctr

The offer earns a click

CPA

Spend / conversions

cost_per_action_type

cost_per_conversion

Cost of each result

ROAS

Conversion value / spend

purchase_roas

complete_payment_roas

The creative pays back

Frequency

Impressions / reach

frequency

frequency

Repeat views per person

Meta counts a 3-second play at 3 seconds of video, and a ThruPlay at completion or 15 seconds (Meta). Motion's published benchmarks call a 30 to 40% hook rate strong and under 25% a sign the opening needs work, with average hold rates of 40 to 50% (Motion).

CPA and ROAS use each platform's own attribution, so each platform credits itself. Check totals against GA4 or your store in the same InsightfulPipe workspace.

How much data do you need before you judge a creative?

Judge each metric only once its own base is big enough: impressions for hook rate, clicks for CTR and conversion rate, and purchases for CPA and ROAS. Below that, one lucky day can decide the ranking.

  • Hook rate: at least 2,000 impressions, which pins a 30% hook rate to about 2 points either way. At 200 impressions, the error is about 6.
  • Hold rate: about 500 three-second plays, the number 2,000 impressions give at a 25% hook rate.
  • CTR and conversion rate: 50 to 100 clicks before you compare them.
  • CPA and ROAS: at least 3 to 5 purchases, which means spending 3 to 5 times your target CPA.

Motion's guide sets a similar floor: at least 3 days and 2,000 impressions, 50 to 100 clicks or 3 to 5 purchases per creative (Motion).

The platforms add their own clocks. Meta says an ad set usually leaves its learning phase after about 50 results in the week after its last significant edit (Meta). TikTok says volatility starts to fall after about 25 campaign results or 7 days (TikTok). Read CPA from a newer ad set as provisional until then.

Bar chart of how far one more purchase moves CPA at the same spend: 25% at 3 purchases, 17% at 5, 9% at 10, 4% at 25 and 2% at 50.

Small counts swing hard. At 3 purchases, a fourth sale cuts CPA by 25%. At 50 purchases, one more moves it by 2%.

How do you compare creatives fairly across Meta, TikTok and Google Ads?

Rank creatives inside each platform first, then compare platforms only on metrics they define the same way. Spend, CTR, CPA and ROAS travel when the dates, currency, conversion event and attribution window match. Hook rate does not.

Meta Ads

TikTok Ads

Google Ads Performance Max

Unit you rank

The ad

The ad

Each asset in an asset group

Hook metric

3-second plays

2-second and 6-second views

None in Google's asset guide

Money metrics

CPA and ROAS per ad

CPA and ROAS per ad

Conversions, value and cost per asset

Watch for

Dynamic creative, reported by asset with fewer metrics

"Video views" counts every start

Asset rows overlap inside one ad

InsightfulPipe action

get_insights_adaccount at level: ad

integrated_report_basic at AUCTION_AD

gaql on asset_group_asset

  • Hook metrics differ. For a side-by-side hook rate, pair Meta's 2-second continuous plays, video_continuous_2_sec_watched_actions, with TikTok's 2-second views. Most of Meta's 2-second plays have at least half the video in view, so the match is close, not exact (Meta).
  • Attribution differs. Meta reports set their windows with action_attribution_windows, while TikTok keeps an attribution_window on each ad group, in adgroups_metadata. Match them before you compare CPA.
  • Dynamic creative hides the unit. Meta's creative-level reporting leaves out dynamic creative ads (Meta). The API splits them by image_asset or video_asset, but only for delivery, spend and actions, and not at account level (Meta).
  • Performance Max has no ad-level view. Google builds PMax ads from each asset group's assets, so individual ad results stay out of reach (Google). Asset rows now carry impressions, clicks, conversions, value and cost (Google). Compare images with images in one asset group, and never sum asset rows, since one ad shows several.

Step 1: Connect Meta Ads and TikTok Ads in InsightfulPipe

Step 1 links your ad accounts to InsightfulPipe. You pick the access level before you sign in to Meta or TikTok, so you decide up front what Claude can do.

  1. Open Connected accounts and click Connect account.
  2. On Add an integration, find Facebook Ads and click Connect.
  3. Choose Read-only for analysis, or Read & write if Claude should pause losers.
  4. Click Continue with Facebook Ads, sign in with Facebook and select your ad accounts.
  5. Repeat for TikTok Ads, signing in with TikTok for Business and picking your advertisers.
InsightfulPipe's access level step for Facebook Ads: Read-only for viewing and reporting, or Read & write for everything in read-only plus the write actions.

Each ad account and advertiser becomes its own connection, with its own actions, and one Facebook Ads connection covers Facebook and Instagram ads.

Step 2: Add the servers to Claude

Step 2 adds each server to Claude as a custom connector. Custom connectors work on Claude's Free, Pro, Max, Team and Enterprise plans, and Free allows one (Anthropic).

  1. In Claude, open Customize > Connectors, click + Add, then Add custom connector.
  2. Name it Meta Ads, paste https://facebook-ads.insightfulmcp.com/, click Continue, then Add.
  3. Click Connect, and sign in to InsightfulPipe if asked.
  4. Repeat with https://tiktok-ads.insightfulmcp.com/ for TikTok Ads.
  5. In a new chat, click +, open Connectors and switch both on.
The InsightfulPipe Meta Ads MCP server page: a hosted server for Claude, ChatGPT, Cursor and CLI agents, with 53 read and write actions, each enabled or disabled per account.

The InsightfulPipe MCP server, https://main.insightfulmcp.com/, covers both platforms in one connector, Google Ads included, which suits Claude's Free plan.

Under Customize > Connectors, open the connector's Tool permissions. Set query_data to Always allow and execute_action to Needs approval (Anthropic). Reports then run on their own, and every change waits for your click.

A new Claude chat with the + menu open on Connectors and the Facebook Ads connector switched on.

Step 3: Build the creative leaderboard

Step 3 is one prompt. It pulls 30 days of ad-level data from both platforms, computes hook and hold rate from raw counts, and ranks only the creatives that cleared the minimums.

Build a creative leaderboard for the last 30 complete days.

Meta ad account [AD_ACCOUNT_ID]: run get_insights_adaccount at level
"ad" with fields ad_id, ad_name, spend, impressions, frequency,
inline_link_click_ctr, actions, cost_per_action_type, purchase_roas,
video_thruplay_watched_actions.
Hook rate = 3-second plays (video_view action) / impressions.
Hold rate = ThruPlays / 3-second plays.

TikTok advertiser [ADVERTISER_ID]: run integrated_report_basic at
data_level AUCTION_AD, dimensions ["ad_id"], page_size 1000, metrics
ad_name, spend, impressions, ctr, frequency, conversion,
cost_per_conversion, complete_payment_roas, video_watched_2s,
video_watched_6s.
Hook rate = video_watched_2s / impressions.
Hold rate = video_watched_6s / video_watched_2s.

Conversion event: [purchase]. Rank only ads with 2,000+ impressions
and spend above [3 x TARGET CPA]. One table per platform, sorted by
ROAS, then CTR: spend, CTR, CPA, ROAS, hook rate, hold rate, frequency.
List other ads under "Not enough data" with what each still needs.
Read only. Do not change anything.

Claude runs both reads through query_data, the read-only tool, so neither account changes. We ran every action and field in this prompt on our own Meta and TikTok accounts while writing this guide.

Rank static images, which have no plays, against other statics. The free Meta Ads Creative Ranker skill, Facebook Ads creative prompt and TikTok Ads creative prompt are shorter starting points.

Step 4: Find out why the winners win

Step 4 turns the ranking into a brief. Claude reads the copy, call to action and format of the top and bottom ads, then looks for what the winners share.

For the top 5 and bottom 5 ads in each leaderboard table:
Meta: run get_ad_creatives_by_ad with fields title, body,
call_to_action_type, object_type and video_id.
TikTok: run ads_metadata with fields ad_text, call_to_action, ad_format
and video_id, and match the rows to those ad IDs.
Tag each ad by format, opening line, offer and call to action.
Show which tags winners share and losers lack, and how many ads
back each pattern. Read only.

To bring the hook into the analysis, name ads with a fixed pattern, such as ugc_question-hook_30s, and Claude groups results by each part of the name. Motion recommends the same naming discipline (Motion).

Step 5: Catch creative fatigue early

Creative fatigue is a rising cost per result as the same people see the same ad too often. Meta flags it for some ad sets, and a daily trend catches the rest.

Meta shows Creative limited when an ad's cost per result sits above your past ads but below twice their level, and Creative fatigue at twice or more. It does this only for ad sets with one creative, outside dynamic creative and Advantage+ catalog and app campaigns (Meta).

For everything else, use a working rule: flag an ad when CTR falls 20% or more from its first week while frequency rises, and act when cost per result follows.

For each leaderboard ad with 2,000+ impressions, over the last 30 days:
Meta: run get_insights_ad with time_increment 1 and fields date_start,
impressions, frequency, inline_link_click_ctr, cpm, cost_per_action_type.
TikTok: run integrated_report_basic at AUCTION_AD with dimensions
["ad_id", "stat_time_day"] and metrics impressions, frequency, ctr, cpm,
cost_per_conversion.
Compare each ad's last 7 days with its first 7 days, and flag ads where
CTR fell 20% or more while frequency rose. Read only.

The free Ad Creative Fatigue Detector skill packages the same check for repeat use.

Step 6: Pause the losers, with your approval

Step 6 acts on the list only after you say yes. On a Read & write connection, Claude pauses Meta ads or disables TikTok ads, and Needs approval puts your click before each change.

From the leaderboard, list the ads to pause: the bottom quarter on ROAS
with spend above [3 x TARGET CPA], plus any flagged for fatigue.
Show the evidence for each, then wait for my yes.
Pause Meta ads with update_ad and status PAUSED.
Disable TikTok ads with ad_status_update and operation_status DISABLE.
Claude reading the InsightfulPipe Facebook Ads connector's rules: PAUSED is the only status update_campaign accepts, so a paused campaign goes live only in Facebook Ads Manager.

PAUSED is the only status the Meta server accepts, so you set ads live again yourself, in Ads Manager. For a Monday review, save the step 3 prompt as a weekly scheduled task in Claude Cowork (Anthropic), and keep it read-only.

What Claude may change, and who decides

Claude can only run the actions an admin leaves switched on for each account, and every limit below is a switch. Those switches make InsightfulPipe the safest way to let an AI agent change Meta Ads and TikTok Ads.

  • Meta Ads: 53 actions, 38 read, 12 write and 3 deletes. TikTok Ads: 124 actions, 15 read, 89 write and 20 destructive.
  • Every action is a switch. An owner, admin or operator turns each one on or off per account, and the server refuses anything switched off, in every AI client.
  • Read-only locks every write until an admin reconnects the account with Read & write.
  • Meta stays paused. Claude creates campaigns, ad sets and ads paused and can only set PAUSED, so going live stays with you, in Ads Manager.
  • TikTok status updates are switches. ad_status_update and the other status actions can enable, disable or delete, and start on for Read & write. An admin switches them off wherever Claude should only report. New TikTok campaigns and ad groups start disabled.
  • Destructive actions start off. Deleting a Meta campaign, ad set or ad, and TikTok's 20 destructive actions, stay off until an admin switches them on.
  • Budgets pass through as written. The server applies the amount you state, so name it with the currency and keep execute_action on Needs approval.
  • Roles hold. Members with the User role run only switched-on reads, on accounts an owner or admin grants them.
Every Meta Ads action in InsightfulPipe is a switch: 38 read and 12 write actions on, and 3 deletes off until an owner, admin or operator switches them on.The actions for a TikTok advertiser in InsightfulPipe, filtered to status: 104 of 124 on, every status update a switch, and 0 of 20 destructive actions on.

Start a trial to set these switches on your own ad accounts.

Troubleshooting

Most leaderboard problems come from how a metric was counted, not from the connection.

  • A TikTok hook rate near 90%. The formula used video_play_actions, which counts every start. Rebuild it on video_watched_2s or video_watched_6s.
  • Only 10 TikTok ads came back. TikTok returns 10 rows per page by default, so keep page_size 1000 in the prompt.
  • "This action is disabled for this connected account. An owner or admin must enable it for the account." An owner, admin or operator can switch it on under Configure actions for this account.
  • "This account is connected read-only, so this action cannot be enabled for it. An owner or admin must reconnect it with Read & Write permissions." Reconnect with Read & write if Claude should pause ads.
  • CPA differs from Ads Manager. Check the date range, time zone and attribution window before you suspect the connection.

Other ways to run creative performance analysis

Ads Manager and TikTok Ads Manager show creative-level columns at no extra cost, and several creative analytics platforms rank for this topic.

We read every capability, default and price from each vendor's own documentation, pricing page or public repository, and ran InsightfulPipe on live accounts.

Tool

Your ads it covers

AI and MCP

Acts on ads

Starting price

InsightfulPipe

Meta, TikTok and Google Ads, plus 47 more platforms

Claude, ChatGPT, Cursor and Claude Code; 53 Meta and 124 TikTok actions

Pauses or disables, each action a switch per account

From $29.99 a month

Motion

Meta, TikTok, YouTube and LinkedIn

AI tags and agents; "full data & MCP access"

Not stated

$750 a month, up to $50k monthly ad spend

Triple Whale

Facebook, Google Ads, TikTok and Twitter

Moby AI; MCP on paid plans

Moby Actions, on Automate and Enterprise

Free plan; paid plans by annual GMV

Foreplay

Meta and TikTok, through Lens

MCP and API from Workflow

Not stated

$175 a month, $149 billed yearly

Madgicx

Meta, for Creative Insights

Madgicx MCP

Pauses or scales ads from chat

Shown in the app

Hawky

Meta, Google, YouTube, TikTok and LinkedIn

Performance Agent

Pauses past a frequency threshold you set

Per brand, through sales

Meta and TikTok also host their own MCP servers: Meta's at https://mcp.facebook.com/ads (Meta), and TikTok's with no developer credential or code (TikTok). Each covers its own platform, so a two-platform leaderboard needs two connectors with two sets of rules.

Meerkads, Blend, Crux and Superads also rank here, and Meta Ads MCP servers such as Pipeboard and Markifact appear in AI answers; the table keeps the creative tools named most.

InsightfulPipe puts the leaderboard inside the AI client your team already uses, across Meta, TikTok and Google Ads, from $29.99 a month.

HAVE QUESTIONS?

Frequently asked questions

Creative performance analysis, as InsightfulPipe runs it in Claude, ranks each ad creative on hook rate, hold rate, CTR, CPA and ROAS, judging each metric only once it has enough data.

Sources (checked 2026-10-02)

Every claim about another company comes from its own page, opened on 2026-10-02. Our action counts come from our Meta Ads and TikTok Ads MCP pages.

Related articles

Best SEO MCP Servers in 2026 (14 Compared)
Blog

Best SEO MCP Servers in 2026 (14 Compared)

The best SEO MCP server in 2026 is InsightfulPipe. It puts Search Console, Bing Webmaster Tools, DataForSEO, a web crawler and PageSpeed Insights on one hosted connection, with every action switched per account.

Read article
Best LinkedIn MCP Servers in 2026 (13 Compared)
Blog

Best LinkedIn MCP Servers in 2026 (13 Compared)

The best LinkedIn MCP server in 2026 is InsightfulPipe. It is the only server compared here that runs your Company Page, your profile and your LinkedIn Ads on LinkedIn's official API, with every action switched on or off per account, from $29.99 a month.

Read article
How to Connect LinkedIn Ads to Claude
Blog

How to Connect LinkedIn Ads to Claude

InsightfulPipe connects LinkedIn Ads to Claude with one LinkedIn sign-in and one URL: add https://linkedin-ads.insightfulmcp.com/ as a custom connector in Claude and click Authorize access. From $29.99 a month.

Read article
Best LinkedIn Ads MCP Servers in 2026 (14 Compared)
Blog

Best LinkedIn Ads MCP Servers in 2026 (14 Compared)

The best LinkedIn Ads MCP server in 2026 is InsightfulPipe. It builds LinkedIn campaigns, lets your admin switch each of its 28 actions on or off for every ad account, and covers 49 more platforms on the same plan, from $29.99 a month.

Read article
How to Connect Meta Ads to Claude
Blog

How to Connect Meta Ads to Claude

To connect Meta Ads to Claude, connect Facebook Ads in InsightfulPipe, add https://facebook-ads.insightfulmcp.com/ as a custom connector in Claude, and click Authorize access.

Read article
Best GA4 MCP Servers in 2026 (13 Compared)
Blog

Best GA4 MCP Servers in 2026 (13 Compared)

The best GA4 MCP server in 2026 is InsightfulPipe. It is the only hosted server with dedicated write actions in all nine areas of the GA4 Admin API, lets you switch each of its 62 actions on or off per property, and keeps its 12 destructive actions off until an admin switches them on.

Read article

Ready to connect your data?

Join hundreds of agencies and brands using InsightfulPipe to connect marketing data to AI.

Start a trial today.