Before tuning a Google Ads account with low ROAS, work out your break-even ROAS, which is 1 divided by your gross margin: at a 40 percent margin you need a ROAS of 2.5 just to cover product cost and ad spend. The ranked causes are a margin too thin for the ROAS you get, competitor brand keywords, an order value below the cost of a conversion, Performance Max taking branded searches, and a bid strategy that counts conversions but ignores their value.
The four questions and five causes below are the same playbook the free campaign troubleshooter runs. Here each cause also names the PaidSync tool that checks it in your own account and the change you can preview before anything is applied. The break-even figures are arithmetic, not benchmarks, so they hold for any business once you put in your own margin.
Answer yes or no to each. Every cause below says which answer points to it.
Points here when you answer No to question 1.
Break-even ROAS is 1 divided by gross margin, so at a 40 percent margin a ROAS of 2.5 only covers product cost and ad spend. If your ROAS sits below your own line, lift order value with bundles and free-shipping thresholds, raise prices on your highest-margin products, or narrow spend to the products whose margin clears the line.
get_performance_summary, get_campaign_performance, get_product_performance
Ask your assistant: “What was ROAS for the account and for each campaign over the last 30 days? My gross margin is 40 percent, so flag everything below a ROAS of 2.5.”
Margin and pricing are set in your business, not in Google Ads, so there is no Google Ads change to preview. If you narrow spend to high-margin products instead, get_product_performance shows which products convert.
Points here when you answer Yes to question 2.
Ads on a competitor's brand name tend to score low on ad relevance, because the searcher asked for another company. Compare the cost per conversion of competitor brand keywords with your category keywords. Pause the ones that do not pay back and move that budget to terms that do.
get_keyword_performance, get_quality_score_report
Ask your assistant: “List keywords that contain competitor brand names, with their cost, conversions and ad relevance rating for the last 30 days.”
pause_keyword defaults to dry_run and names each keyword it would pause. The live pause also needs confirm_destructive.
Points here when you answer No to question 3.
If a sale earns less gross profit than it costs to win, every conversion loses money. Raise order value with checkout upsells, bundles and a free-shipping threshold set a little above your current average order, or keep bidding only on the terms whose cost per conversion fits the profit.
get_performance_summary, get_performance_by_conversion_actions
Ask your assistant: “What are my average conversion value and my cost per conversion for purchases over the last 30 days?”
Order value is raised on the website, with upsells, bundles and shipping thresholds, so there is no Google Ads change to preview. Run the same check after the site change to compare.
Points here when you answer Yes to question 4.
Performance Max can serve on searches for your own brand and count those conversions as its own, which flatters its ROAS while branded Search gets less. Add your brand to the Performance Max campaign's brand exclusions (Campaign settings, Brand exclusions) so branded searches go to your branded Search campaign, then compare the two again.
get_pmax_insights, get_campaign_performance, get_search_terms_report
Ask your assistant: “Show Performance Max search themes for the last 30 days. How much of it is my own brand name, and how did my branded Search campaign's impressions change?”
Brand exclusions are set in Google Ads, in the Performance Max campaign's settings. PaidSync reads the result; it has no tool that edits brand lists.
Points here when the causes above are ruled out, with answers Yes to question 1, No to question 2, Yes to question 3, No to question 4.
A campaign on Maximize conversions optimizes for conversion count and ignores value. If the goal is return on ad spend, move it to Maximize conversion value, adding a target ROAS once it has value history. If a large campaign still runs on Manual CPC, test Smart Bidding against it as an experiment.
get_campaign_details, list_bidding_strategies
Ask your assistant: “Which bid strategy does each campaign use, and which ones optimize for conversions rather than conversion value?”
update_campaign defaults to dry_run and returns the bid strategy change before it is applied. create_experiment can run the new strategy against the old one instead of switching outright.
In the PaidSync workspace, by default, every write is approval-gated: it is held as a card before it runs, and an applied card gets a one-tap undo. On every path, Google Ads creates and most other creates are previewed with dry_run, destructive operations need confirm_destructive, and applied changes are logged, on a best-effort basis, with a 7-day before-and-after outcome. When your own assistant calls PaidSync over MCP, no card is written, so whether a person confirms first is set in your assistant.
The full model, including what is not built yet, is on the security page.
Run this check in Claude, Claude Code, Cursor or ChatGPT. Connect Google Ads once, then paste any of the questions above to your assistant.
Not sure which symptom fits? The free Google Ads audit tool scores wasted spend, structure, Quality Score and Performance Max, and the campaign troubleshooter runs its playbooks without an account.
One above your break-even ROAS, which is 1 divided by your gross margin. At a 50 percent margin, break-even is a ROAS of 2. At a 25 percent margin, it is 4. A benchmark from another business says little about yours, because the line depends on your margin.
Test it and judge by cost per conversion. The searcher asked for another company, so these ads tend to score low on ad relevance. Keep the terms that pay back and pause the rest.
It can serve on searches for your brand and count those conversions as its own. Brand exclusions on the Performance Max campaign keep branded searches for your branded Search campaign, so each campaign's results reflect its own traffic.
If the goal is revenue or return on ad spend and your conversions carry values, Maximize conversion value, with a target ROAS once value history builds. Maximize conversions treats a small order and a large one as the same result.
In the PaidSync workspace, by default, every write is approval-gated: it is held as a card before it runs, and an applied card gets a one-tap undo. On every path, Google Ads creates and most other creates are previewed with dry_run, destructive operations need confirm_destructive, and applied changes are logged, on a best-effort basis, with a 7-day before-and-after outcome. When your own assistant calls PaidSync over MCP, no card is written, so whether a person confirms first is set in your assistant.