My short answer: I ask first whether it is genuinely bad, or whether the expectation was set wrong. Either is possible and the two have completely different fixes. Reacting before making that distinction produces either unnecessary panic or unfair defensiveness.
1. Put the number on one ruler
The first step is establishing what number we are actually discussing. In-platform conversions and GA4 almost never match, because attribution windows and models differ. A performance conversation cannot work while each side looks at a different figure. One definition, one window, one table.
2. Where did the expectation come from
How was the target set — from historical data, an industry average, or a figure someone said out loud in a meeting? The third is more common than you would think. If the expectation is not grounded in data, the problem may be the target rather than the campaign, and saying so is the consultant's job.
3. If it really is bad, find the cause
When it is bad I do not get defensive; I look for the cause, in this order: did measurement break (tags, feed, server side), did an external condition change (season, competition, pricing), what changed in the account (who did what and when — the change history), and at which funnel step are we losing. Those four explain most cases.
4. Turn the conversation into decisions
Leaving a complaint meeting with "we'll work harder" changes nothing. I prefer to leave with three columns: stop, scale, test. Each item carries a hypothesis, an owner and a date. The next conversation then runs on that list rather than on mood.
What I do not avoid saying
Sometimes the right answer is "this target will not be met on this budget." Saying it is uncomfortable in the short term, but the alternative is three months of everyone running at a target they already know is out of reach. Occasionally the most valuable thing I contribute is not a campaign but a sentence said early.