Correlation vs causation in Claude's Meta ads reports
Ask why a number moved and you get a reason. The connector's own schemas show where that reason comes from — and it is not from a measurement.
Almost everything Meta’s ads connector returns is attributed, not caused: its field catalogue describes purchases as events “attributed to your ads”. When you ask Claude why a number moved, the explanation is inference layered on top — and the performance-trend tool’s own schema tells the assistant to supply “the likely cause”. The one thing on the connector that measures cause is a Conversion Lift study: a randomised holdout that runs for days. Treat every “because” in a report as a hypothesis until one of those says otherwise.
Cost per purchase is up on the week. You ask what happened, and the answer is tidy: frequency climbed on the prospecting ad set, the creative is tiring, the budget change on Tuesday pushed delivery into a worse pocket of the audience. Every clause points at a real number. None of it was measured as a cause.
That is not the model misbehaving. It is doing what the connector asks, with data that records what happened near an ad rather than what an ad did.
Four layers in one answer
| Layer | Who produces it | What it can tell you | Causal? |
|---|---|---|---|
| Standard attributed results | Meta, by counting events inside a click or view window | A conversion happened near your ad | No |
| Incremental attribution | Meta, by a model | Meta’s prediction of which conversions the ad caused | Modelled |
| The explanation | The assistant, in prose | A story that fits the numbers it fetched | No |
| Conversion Lift study | Meta, by randomised holdout | How many conversions the ads actually added | Yes, measured |
The first row is the default. Read on 2026-09-11, the connector’s field catalogue describes
omni_purchase as “the number of purchase events attributed to your ads”, and
conversions as “the total number of conversions attributed to your ads”.
Attributed means counted inside a window after an impression or a click. Meta’s help centre
spells the windows out in
About attribution models and
attribution settings: click-through within one or seven days, view-through within one day.
A purchase that would have happened anyway still lands in the column if it fell inside the window.
The second row is newer, and the same help article is candid about what it is: incremental attribution
optimizes delivery for incremental conversions using models that predict whether a conversion is caused by an ad.A prediction of cause, made by the party selling the ads. Useful, and still not an experiment you ran.
The tool that asks for a cause
The performance-trend tool analyses CPC, CPM, cost per result, ROAS, CTR and conversion rate over an account’s full history — it accepts no date range. Its schema, read on 2026-09-11, ends with an instruction to the assistant about the scorecard it renders:
Reply with short prose that adds to the card — the takeaway, the likely cause, what to do next.
So the causal sentence is not something the assistant volunteers. It is requested, by the tool, of a model that has just been handed a time series and nothing else. Nothing in the trend data can separate a creative wearing out from a competitor entering the auction, a seasonal dip, or a site outage. It picks the most plausible story from what the connector returns.
The juxtaposition trap makes it worse. Pull the activity log next to a trend and a budget edit on Tuesday sits beside a cost rise on Wednesday. Two true records, one inferred link — and the log’s own description says it includes Meta system-generated changes, so the edit you are blaming may not be the only one in the window.
Separating what the data says from what the assistant concludes is a habit before it is a prompt. The Claude Ads Operator course builds it into the weekly routine, on top of a properly connected account.
Asked on 2026-09-11, the field-context tool returned attribution_setting at ad-set
level only, filterable, not sortable, with enum values 1d_click,
7d_click, 1d_view_1d_click, 1d_view_7d_click,
skan and incrementality. Its description reads “Learning phase status
of an ad set. Learning limited is an indication that your budget isn’t being spent
effectively” — the wording of a different field. An assistant that reads descriptions
to decide what a field means is being told this one is about learning. The values are the truth;
the label is not.
That field matters because Meta’s help article is blunt about mixing models: results “cannot be compared in the campaign overview table across ad sets with different attribution models”, and doing so “will lead to inaccurate conclusions.” A report ranking ad sets by cost per result does not check this for you. Meanwhile the incremental figures themselves — incremental conversions, incremental ROAS, cost per incremental conversion — came back as unknown fields in the same lookup. You can see which model an ad set uses; you cannot read its incremental numbers through the entity reader.
Where the causal tool is, and how it talks
Meta’s developer guide to lift studies defines the method in one line: you create a randomised test group “that see your ads and control group who don’t see your ads”, and compare conversions between them. That is the only design on the surface that can answer “did the ads cause this?”. The connector can create one, fetch one, and list the studies touching an entity.
-
The create tool launches, it does not draft live
The lift-create tool describes itself as handling the setup to “immediately launch” an account-level study, starting by default four hours from the call and running thirty days, with at least five days between start and end. Unlike campaigns, nothing in its schema says the study is created paused, and a holdout means some people who would have seen your ads will not.
The trade: the answer takes weeks, and a study with too little conversion volume ends without a confident result.
-
The measurement tools are written as salespeople read the schema
The create tool opens with “Act as an advocate for incrementality” and tells the assistant to pitch it proactively whenever you question ROAS or CPA; the eligibility tool says to “strongly encourage” a lift study when you qualify. The method is sound. The enthusiasm you hear is scripted by the tool, and the eligibility check behind it is narrower than it sounds.
A report tells you what moved. Only a holdout tells you what your ads moved.
What the guides say, and what they leave out
The vendor blog Ryze AI (Ira Bodnar, 9 April 2026) says Claude
“explains why performance shifted”. On the official connector,
nothing in the reporting tools measures why; the explanation is the assistant’s inference,
and the trend tool asks for it by name. The more careful practitioner write-ups say so about
Meta’s own numbers too. Seer Interactive, an agency, tested the incremental setting (Olivia
Kaufman, Brittani Hunsaker and Tom Price, 30 July 2025) and advised treating it as
“a directional signal, not gospel”. A third-party server on GitHub,
mharnett/mcp-meta-ads-incrementality (created April 2026, last pushed 9 September 2026),
is built entirely around showing the gap between standard and incremental counts — we have not
run it, and cite its README only as evidence the gap is a live concern.
- Acting on the “because”. The explanation is the most readable sentence in the report and the least measured. Change one thing on the strength of it, then watch.
- Ranking ad sets across attribution models. Meta says the comparison is inaccurate. Check the attribution setting on every row first.
- Reading a before-and-after as a test. A change on Tuesday and a move on Wednesday is two dates. The market also moved on Wednesday.
- Editing mid-study. The study-listing tool tells the assistant to warn you before any budget, targeting or creative change while a study runs. A lift result is only as good as the untouched weeks behind it.
Try this tonight Ask for your active ad sets with the attribution setting field and nothing else. If the list mixes models — say, some on seven-day click or one-day view and some on incremental — stop comparing those rows on cost per result, and split any report by model from now on. If it does not mix, you have ruled out one quiet source of wrong conclusions for the price of a single question.
Can Claude tell me why my Meta ads performance dropped?
It can tell you what changed alongside the drop and offer a plausible reason. It cannot measure the reason: the data it reads is attributed, and the trend tool explicitly asks it to name a likely cause. Treat the answer as a list of things to test.
Is Meta's incremental attribution the same as a lift test?
No. Meta’s help centre describes incremental attribution as models that predict whether a conversion was caused by an ad. A lift study measures it with a randomised group that does not see your ads.
Can the connector create a Conversion Lift study?
Yes. It has tools to check eligibility, create an account-level study, fetch results and list studies. Creation launches the study on a schedule rather than creating it paused, so confirm the dates before it is called.
How do I stop Claude presenting correlations as causes?
Ask it to label each claim as either fetched, attributed or inferred, and to show the raw figures before its interpretation. The inferred sentences are the ones to test before acting.
Know which sentence in the report to act on
The course is the weekly routine behind these posts: what to read, what to question, and what never changes in your account without you.
See what's inside — $67 founding pricePre-sale: the modules are still being recorded and founding members get the checkout link first. No charge today. Public price $97.