Skip to main content

HomeBlog › The brand-search audit

Stan Consulting · Marketing Audits

The brand-search audit: phantom ROAS or real revenue.

Most claimed Google Ads ROAS includes brand-search clicks that would have converted anyway. The claimed number looks healthy. The incremental revenue per dollar of spend is materially lower. This is how to separate the two in an afternoon.

Quick answer

Pull a 30-day comparison: total Google Ads spend, total Google Ads-attributed revenue, and total revenue from your ground-truth source (Shopify, Stripe, billing system). Calculate the percentage of attributed revenue that comes from brand-keyword campaigns and from Performance Max bidding on brand terms. Run a two-week brand-pause incrementality test. The gap between claimed ROAS and incremental ROAS is your phantom number. For most accounts it is 25 to 60 percent of claimed ROAS. The fix is structural: separate brand campaign with disciplined ceiling, brand exclusions on Performance Max, and a tracking view that distinguishes incremental from cannibalized credit.

Check next

Check the spend leak before changing bids or budget.

Why this article matters: Ad spend, clicks, CPA, or ROAS are not turning into qualified revenue. Budget keeps moving while the account, page, offer, or tracking leak stays hidden. Use the article to check the pattern before raising budget or rebuilding campaigns.

Problem route Google Ads wasted spend Use this when the symptom matches the business problem. Proof route Ecommerce ad waste proof Use this to compare the marketing audit pattern against documented proof. Service route Google Ads PPC management Use this only when this layer is likely the real constraint. Marketing Audit route Conversion Audit Use this when the failure may cross account, site, numbers, offer, or follow-up.

What phantom ROAS is, and why almost every account has some

When a buyer who already knows your brand searches for your company name, they intend to find you. Google shows your ad above your organic listing. The buyer clicks the ad, converts, and Google credits the conversion to the ad. The claimed ROAS for that brand-search click is enormous because the conversion rate on intent-loaded brand traffic is high. The incremental revenue, the revenue you would not have gotten without the ad, is much smaller. The same buyer would have clicked the organic listing two pixels below if the ad were not there.

This is not Google's fault. The attribution is correct: the buyer clicked the ad, the ad got the credit. The mistake is scanning claimed ROAS as if it equals incremental ROAS. They are different numbers. Most accounts treat them as the same number, optimize against the larger one, and budget against revenue that was already coming in.

The audit below tells you how much of your claimed ROAS is phantom and what to do about it. It takes about an afternoon. The structural fix takes longer.

Step 1. Identify every campaign and channel where brand keywords are bid on

Open Google Ads. List every active campaign. For each one, ask: are brand keywords (your company name and trademarked product names) being bid on, either explicitly through keywords, or implicitly through Performance Max signals?

Common places brand traffic gets bid:

Mark every campaign that bids on brand. Those are your phantom-candidate campaigns.

Step 2. Quantify the brand-attributed revenue share

Set the date range to last 30 days. For each brand-bidding campaign, pull spend and conversion value. Add the total. Divide by total Google Ads conversion value across the account.

The result is the percentage of your claimed Google Ads revenue that is sourced from brand bidding.

Common findings on accounts that have not been audited recently:

Write down the percentage. It will not be the incrementality number, but it tells you the upper bound on phantom credit. If brand-bidding campaigns produce 40 percent of claimed revenue, the phantom share is somewhere between zero (every conversion was incremental, which is rare) and 40 percent (every conversion was already organic-bound, which is also rare). The truth is usually in the middle.

Step 3. Run the two-week incrementality test

Pick the campaign that bids most heavily on brand. Pause it for two weeks. Compare ground-truth revenue (from Shopify, Stripe, or whichever billing system holds the actual money) for the two weeks before the pause against the two weeks during the pause.

Three patterns show up:

The two-week test is imperfect. Seasonality, paused remarketing audiences, and other variables introduce noise. But the test is directional and an order of magnitude better than scanning claimed ROAS as if it equals incremental ROAS.

Step 4. Add brand exclusions to Performance Max

Performance Max needs explicit brand exclusion lists at the campaign level. Otherwise it bids on brand searches because brand searches convert. Open the PMax campaign, go to Settings → Brand Exclusions, and exclude all variations of your company name, product line names, and any partner brands you do not want PMax pursuing.

After the brand exclusions take effect, PMax-claimed ROAS will drop. That drop is the phantom share that PMax was harvesting from your organic brand traffic. The incremental ROAS, the part that actually depends on PMax existing, is what stays after the drop.

Most operators see this drop, panic, and remove the brand exclusions. Resist. The lower number is the truer number. The decision now is whether the truer number justifies the spend or whether the budget reallocates to a campaign producing real incremental revenue.

Step 5. Restructure brand bidding into a disciplined campaign

Brand bidding is not always wrong. The discipline is structural:

The claimed account-level ROAS will be lower after the restructure. The incremental ROAS, the number that actually drives commercial decisions, will be more honest.

What this audit will not tell you

The brand-search audit does not tell you whether your non-brand campaigns are structured correctly, whether your conversion tracking is accurate at the event level, whether your landing pages are converting cold traffic, or whether your bid strategies are right for each campaign's stage. Those are separate marketing audits. The bid-strategy audit covers one of them; the 20-minute version is the entry point.

The full account marketing audit, the one that produces a prioritized fix list ranked by revenue impact, is the Conversion Audit. Brand-search auditing is one chapter inside it. The CSO covers the rest.

Common questions

Operators ask

What is phantom ROAS in Google Ads?

Phantom ROAS is claimed return on ad spend that includes conversions which would have happened without the ad. The most common source is brand-search bidding: when a buyer searches for your company name and clicks the ad above the organic listing, Google credits the conversion to the ad even though the same buyer would have clicked the organic listing one inch below. The claimed ROAS looks healthy. The incremental revenue is much lower.

Should I bid on my own brand keywords?

Sometimes. Bid on brand when a competitor is bidding against your brand and stealing top-of-page real estate, when your organic listing is unstable or below the fold on mobile, or when you want to control the ad copy a brand searcher sees. Do not bid on brand simply because the campaign numbers a high ROAS. The high ROAS is mostly cannibalized organic credit.

How do I run an incrementality test for brand search?

Pause brand-search bidding for two weeks. Compare actual revenue (from Shopify, Stripe, or whichever the ground truth is) before and after, against the brand-search campaign's claimed revenue during the previous period. If revenue is flat but Google Ads numbers the brand campaign was producing 4x ROAS, that ROAS was phantom. If revenue drops materially, brand-search bidding was incremental.

Why does Performance Max make brand cannibalization worse?

Performance Max bids on broad signals across Search, Shopping, Display, YouTube, and Gmail. Without explicit brand exclusions, PMax frequently bids on brand-search auctions because they convert reliably. Those conversions look like PMax wins in the summary. Many of them are buyers who would have arrived through organic search anyway. Brand exclusion lists fix this. Most accounts run Performance Max without them.

What does a healthy brand-search bid strategy look like?

A separate brand campaign on Manual CPC or Target Impression Share, scoped narrowly to actual brand terms (not brand-plus-product variants). A bid ceiling that protects the position when a competitor encroaches, but does not pay top-of-page premium when no competitor is bidding. Performance Max with brand keywords excluded. The claimed account ROAS will look lower after this is corrected. The incremental revenue per dollar will look higher.

When the brand-search audit surfaces phantom revenue worth millions

A written marketing audit of the full account.

If the brand-search audit surfaced one campaign with phantom credit, fix it with the steps above. If the phantom share is over a third of claimed ROAS, or if Performance Max is the largest contributor and the structural fix needs sequencing across campaign types, the audit needs the full marketing audit. scoped after intake, 72 hours, written.

Get a Quote

Marketing path

Turn the idea into a service path.

Marketing issue Buyer friction Next move

Marketing issue. The useful question is where this topic touches spend, visibility, conversion, trust, or buyer action.

Buyer friction. Most weak marketing paths fail because the buyer lacks proof, context, urgency, or a clear next step.

Next move. Match the issue to the service lane before adding traffic, tools, or another campaign.

When to use SC. Use SC when the marketing system has traffic, calls, carts, or leads, but the buyer path still leaks.

Signal What it usually means Next path
Channel issue Ads, SEO, AI visibility, email, or local search may need a tighter service path. Match service
Page issue The page may need clearer proof, offer context, and a stronger action path. Fix pages
Budget issue The next step should be context before more spend. Send context