calendar Last updated: 8 September 2026
Meta Ads connected to ChatGPT for a campaign structure audit, on Windsor.ai
Data integration
Data Pipelines
Facebook Ads
How to's

The Meta Ads Structure Audit ChatGPT Users Keep Running

Try It Now

Connect your data in 1 minute. Free forever plan

Got insights from this post? Give it a boost by sharing with others!

Connect Meta Ads to ChatGPT through Windsor, and a pattern shows up fast: ChatGPT users pull setup and configuration fields, campaign objective, optimization goal, targeting, budget, creative, far more often than they pull spend and performance numbers. Claude and Copilot users lean toward reporting; ChatGPT users lean toward auditing whether the account is even built correctly.

This page is that audit, already assembled. Ten fields, pulled for every active ad set, checked against four things that quietly waste budget, plus the exact prompts to pull the data and fix what’s wrong.

The audit fields

Pull these ten fields for every active ad set in the account:

Field What it tells you
campaign_objective What the campaign is supposed to optimize toward
adsset_optimization_goal What the ad set is actually bidding to optimize
adset_bid_strategy How the ad set bids in the auction
adset_destination_type Where a click lands (website, app, Messenger, Instagram Direct)
adset_targeting The full audience spec: geo, age, interests, placements
adset_daily_budget How much each ad set is allowed to spend per day
campaign_effective_status Whether the campaign is actually active, not just not-paused
body The ad copy running
title The ad’s link title
call_to_action_type The button shown on the ad

If any of these come back “not valid for fields param,” you’ve likely mistyped a field id rather than hit a real restriction, see the Facebook Ads “Field Not Valid” error guide for the exact fix per field.

The four checks

1. Objective vs. optimization goal mismatch

A campaign’s campaign_objective sets what Meta validates ads against; the ad set’s adsset_optimization_goal is what it actually bids on. The two can drift, a sales-objective campaign running an ad set optimized for link clicks or reach instead of conversions, which quietly caps performance without ever throwing an error. Fix: update_adset to reset optimization_goal to match the objective.

2. Budget spread

Compare adset_daily_budget across active ad sets in the same campaign. Uneven splits, or too many active ad sets dividing a small total budget, mean each one exits the learning phase slower and none gets enough signal to optimize well. Fix: set_adset_budget to consolidate spend into fewer, better-funded ad sets.

3. Overlapping targeting

adset_targeting is a full JSON spec: geo, age, gender, interests, placements. When two active ad sets in the same campaign target substantially the same audience, they enter the same auction and bid against each other, raising your own costs. Fix: update_adset to narrow or differentiate targeting so ad sets stop competing with themselves.

4. Creative reuse across ad sets

Compare body, title, and call_to_action_type across ads in different active ad sets. The same creative running unchanged across several ad sets isn’t really being tested, and it fatigues faster since the combined audience sees it more often. Fix: update_ad_creative to rotate in a genuinely different variant for at least one ad set.

The prompt that runs the audit

One prompt covers the pull and the analysis:

Pull campaign_objective, adsset_optimization_goal, adset_bid_strategy,
adset_destination_type, adset_targeting, adset_daily_budget,
campaign_effective_status, body, title, and call_to_action_type for
every active ad set in this account. Then flag:
1. Any ad set whose optimization goal doesn't match its campaign's objective
2. Active ad sets in the same campaign with daily budgets that differ by more than 3x
3. Active ad sets in the same campaign whose targeting overlaps significantly
4. Ads in different ad sets reusing the same body, title, and CTA
List what you find before changing anything.

Once you’ve reviewed the findings, a second prompt applies the fixes:

For the mismatched ad set, update its optimization goal to match the
campaign objective. For the two ad sets splitting budget unevenly,
rebalance their daily budgets. For the overlapping ad sets, narrow one
of their targeting specs so they stop competing with each other. Show
me the exact changes before applying them.

Related reading

FAQs

Why does ChatGPT pull these structure fields instead of performance metrics?

Usage patterns through Windsor show ChatGPT connections requesting setup and configuration fields, objective, targeting, budget, creative, at a much higher rate than spend or performance fields, compared to Claude and Copilot on the same connector. It suggests ChatGPT is being used more for account audits than for reporting.

Tired of juggling fragmented data? Get started with Windsor.ai today to create a single source of truth

Let us help you automate data integration and AI-driven insights, so you can focus on what matters, growth strategy.
g logo
fb logo
big query data
youtube logo
power logo
looker logo