Skip to content

How to spot Google Ads stealing organic sales in GA4

Check which attribution model GA4 uses, put every Google channel in one monthly table and mark the dates your Google Ads changed. Then read brand clicks and position in Search Console. A flat total with growing Paid Search points to ads taking sales organic would have brought.

By , Founder & CEOUpdated 8 min read

Run the numbers for your store: the free break-even ROAS calculator.

Put every Google channel in one GA4 table and watch the total, not the split. Check which attribution model your reports use, then mark the dates your Google Ads changed. If Paid Search grows while the total stays flat, the ads are usually taking sales organic would have brought.

You need GA4, Google Ads and Search Console, and about an hour. Nothing gets paused in this walkthrough. It tells you whether a pause test is worth running at all, and on which campaign.

Step by step

  1. Read the reporting attribution model. In GA4, go to Admin, click Events under Data display, then Attribution settings. If it says Google paid channels last click, the last Google Ads click on a path takes the whole sale. A change applies to historical and future data, so note the date of any switch. Menu path: Admin > Data display > Events > Attribution settings.
  2. Build the Google family table. Select Reports, then Acquisition > Traffic acquisition, which groups visits by Session default channel group. Note Total revenue for Organic Search, Paid Search, Organic Shopping, Paid Shopping and Cross-network, month by month, for the past year. Session-scoped dimensions ignore the reporting model, so this table stays put when someone changes it. Menu path: Reports > Acquisition > Traffic acquisition.
  3. Add the total and the split. Add the five rows into one family total per month. Next to it, write Paid Search's share of that total. Stealing shows up as a rising share with a flat total. Free listings can land in Organic Shopping and Performance Max lands in Cross-network, which is why both rows belong in the family.
  4. Date every Google Ads change. Change history lists changes to your account, campaigns and ad groups for the past 2 years. Mark budget changes, new brand campaigns and new Performance Max campaigns on your table. Menu path: Google Ads > Campaigns menu > Change history.
  5. Open your brand queries in Search Console. In the Performance report, click + Add filter, choose Queries, then Queries containing, and enter your brand name. Switch on Clicks and Average position, and set the chart to Monthly. To set one month against another, open the date filter and choose Compare. Menu path: Search Console > Performance > + Add filter > Queries containing.
  6. Compare position with clicks around each change. Paid search has no impact on your organic ranking, so position should hold when ads start. If position and impressions hold while organic clicks fall, the ad most likely took those clicks. If position falls too, look at your site and rival pages, not at Google Ads. With Search Console linked to Google Ads, the paid and organic report tells the same story per search. Its Ads and organic clicks column is the click version of your family total.
  7. Link Search Console to GA4 for the landing pages. In Admin, under Product links, click Search Console links, then Link. The collection of reports is unpublished by default, so publish it from Library. Its Google Organic Search Traffic report ties landing pages to engagement and key events. Menu path: Admin > Product links > Search Console links.
  8. Decide whether to test. Three signs point the same way: a flat family total, a rising Paid Search share, and steady position with falling clicks. If you see all three, run a pause test on that campaign. A growing total means the ads are adding, and a test would only size it. The pause itself is its own walkthrough: how to test if branded search pays off.

A worked example

For illustration, here is a store's Google family over two months, with round, made-up numbers. A brand campaign started on the first day of April.

For illustration, revenue in Traffic acquisitionMarchApril
Organic Search€40,000€31,000
Paid Search€10,000€19,500
Organic Shopping€6,000€6,000
Paid Shopping and Cross-network€4,000€4,000
Google family total€60,000€60,500

For illustration, Paid Search gained €9,500 while Organic Search lost €9,000. For illustration, the family total moved by €500, less than 1%. For illustration, Paid Search's share of the family rose from 17% to 32%.

Look at what the rows alone would have said: Organic Search down by almost a quarter, a crisis in any meeting. The family total says demand barely moved.

For illustration, Search Console shows the brand query at the same average position in both months, while its organic clicks fell. That matches step 6: the ranking held, so the ad took the clicks.

For illustration, say the brand campaign cost €3,000 in April. For illustration, on this rough before-and-after view it bought about €500 of revenue the store would not otherwise have had, before margin. That gap between cost and added revenue is what a pause test would pin down.

Now one store's real export, which holds shares of revenue, not monthly sums. On its Journeys sheet, journeys of 2 to 3 touches take 12.5 days to buy, and journeys of 4 to 9 touches take 16.9 days. A campaign switched on late in a month can push part of its effect into the next month. Compare whole months, and skip the month a change landed in if it came late.

What to check when the report looks wrong

  • Organic Search fell the month someone changed GA4's model. A model change rewrites history in key event reports. Traffic acquisition groups by session and ignores the model, so trust that table for the trend.
  • Position fell as well as clicks. Ads do not move rankings, so this is an organic problem. Look at the site, the content and rival pages instead.
  • Brand queries look smaller once you filter them. Search Console notes that filtering by query can change totals through truncation and anonymized queries. Compare filtered numbers with filtered numbers.
  • The last two days dip in GA4's Search Console reports. Data reaches GA4 48 hours after Search Console collects it. Read those days again later.
  • Search Console data stops after 16 months. Search Console keeps no more than that, so GA4's Search Console reports stop there too.
  • Cross-network grew while Paid Search shrank. Performance Max may have picked up searches your Search campaigns used to win, your brand included. Its searches show in the search terms report: Campaigns > Insights and reports > Search terms.
  • The family total fell. That is not cannibalisation. Demand, prices, stock or tracking changed, so check those before you blame any channel.

What to do this week

  1. Link Search Console to GA4 and publish the collection. Pass: the Google Organic Search Queries report lists your brand queries. Fail: the reports stay empty, so check the link and that both tools cover the same site.
  2. Read your brand query around your last big Google Ads change. Pass: clicks held while position held, so the change took nothing from organic. Fail: clicks fell while position held, so the ads took clicks you were getting free.
  3. Turn the table into a decision. Write one line per Google Ads change: family total up, flat or down. Pass: every change shows a growing total. Fail: a change shows a flat total with a rising Paid Search share, so that campaign goes first in your pause test.

Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework

Sources, 1 October 2026: Select attribution settings (Google Analytics Help); Change the reporting attribution model for key events (Google Analytics Help); Traffic acquisition report (Google Analytics Help); Default channel group (Google Analytics Help); About change history (Google Ads Help); Performance report (Search results): Advanced filtering and comparison (Search Console Help); Performance report (Search results): Overview and basic setup (Search Console Help); About measuring paid and organic search results (Google Ads Help); Connect Search Console to Google Analytics (Google Analytics Help); About the search terms report (Google Ads Help).

Frequently asked questions

  • Can I spot cannibalisation without pausing ads?
    Partly. A flat total across your Google channels while Paid Search grows is a strong hint that ads moved credit rather than added sales. Steady position with falling organic clicks points the same way. Only a pause or holdout tells you how big the effect is.
  • Why did my organic revenue drop after I switched GA4's attribution model?
    Because GA4 applies a new reporting model to past data as well as new, in reports built on event-scoped dimensions. Under Google paid channels last click, the last Google Ads click on a path takes the whole sale. Session-scoped reports such as Traffic acquisition do not move.
  • Where do free product listings show up in GA4?
    Under Organic Shopping. GA4's default channel group files traffic from Shopping free listings there, not under Organic Search. Shopping ads land in Paid Shopping and Performance Max in Cross-network, so compare those rows together whenever your Shopping spend changes.

Go deeper: Incrementality testing, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

Free, in your browser: your file is not uploaded. The full read is €99, refundable within 30 days. Prices exclude VAT.
Or book a 30-min call.