A shop’s dependency on Google Ads usually comes to light at the worst moment: after an algorithm update, a change in a Performance Max campaign or the appearance of AI answers above the search results, when sales drop from one day to the next. Single-channel risk can be calculated earlier, though, using data the shop already has: shop orders, the GA4 channel split, channel costs and Search Console queries. This guide shows how to measure the share of one source (channel, campaign, brand query) in revenue and margin, run a stress test of “what if this channel drops by 30%” and set your own concentration threshold, above which diversification is worth it.
One example runs through the whole post: a musical instrument shop, September, €150,000 of revenue from shop orders, of which, according to the GA4 channel split, 48% comes from Google Ads and, together with organic Google, as much as 68%. With operating profit of €6,850, this distribution means a single platform decision could take away most of the month’s result.
The angle of this post is narrow and numerical: the structure of the channel portfolio as a risk to shop profit. Discrepancies in conversion attribution between ad dashboards and the till are covered in a separate guide; here, shop revenue is the basis, GA4 provides the channel split as an estimate and the Google Ads dashboard serves as a control view.
Scene
Google Ads dependency only shows after a drop
September at the musical instrument shop looks good. Shop orders bring €150,000 of revenue from 800 orders with an average basket of €187.50, and guitars, keyboards and drums sell evenly. The revenue chart is rising; it just does not say what that revenue rests on.
Once shop revenue is split by source according to GA4, the picture changes. Google Ads brings in €72,000, or 48% of sales; adding organic traffic from Google (€30,000), €102,000, or 68% of revenue, depends on the decisions of one company. Owners usually discover this proportion on the day sales from Google suddenly weaken.
The widest pillar carries almost half the ceiling, and together with its neighbour, also owned by Google, as much as 68% of the load. The remaining four sources (Meta, direct visits, marketplaces and the rest) hold 32% between them. The crack in the Google Ads column marks a risk the shop already carries, even though it has not felt it yet.
The issue has become urgent for three reasons the shop cannot control:
- Changes to algorithms and auction rules. A search update or a new auction rule can shift rankings and click prices overnight for an entire category, e.g. electric guitars.
- AI answers above the search results. For advice-style queries such as “which guitar for a beginner”, some people get an answer without clicking a result, so organic traffic falls even at the same ranking.
- Increasingly automated campaigns. Performance Max (PMax, a Google campaign that splits budget between products and placements on its own) shifts spend based on its own signals; the shop sees the result, but no longer the reason for the change.
Concentration in itself is not a mistake. In this shop Google Ads has a ROAS of 5.0 (the channel’s estimated share of shop revenue divided by campaign spend) and is often the best channel in the whole mix, so a large share frequently reflects good work. The mistake is not knowing the scale of that concentration in euros of profit, because with an operating profit of €6,850 a month, even a moderate drop in one channel changes the result of the entire shop.
The question “am I dependent on Google Ads” therefore turns into three numbers, which the following sections calculate one by one using this shop’s data:
- Share of revenue: how much of the shop’s revenue falls to a source in the GA4 channel split (Google Ads: 48%).
- Share of margin after channel costs: how much earnings remain after deducting spend on the channel (Google Ads: 27%, because the campaigns cost €14,400).
- Profit loss with a 30% drop: how much of the €6,850 operating profit disappears when a channel loses 30% of its sales (Google Ads: from €2,160 to €6,480, depending on whether scale or efficiency is lost).
Two measures
Share of revenue and margin: two measures of risk
The first measure of dependence is simple: what percentage of the shop’s revenue falls to a single source in the GA4 channel split. The second says more about money, because it shows how much margin remains after paying for the channel. Only both together answer the question of how much profit hangs on a single platform.
Working definition
Source share is the part of shop revenue assigned to a given source (channel, campaign, query type) by the GA4 split, an estimate, divided by the revenue of the whole shop. In the second version the numerator is margin after channel costs: the source’s estimated revenue multiplied by an assumed gross margin rate, minus what the channel costs (ad spend from the cost_* tables, marketplace fees).
The jump in HHI from 3000 to 4920 after combining both Google legs is justified. Google Ads and organic Google depend on the same company: a change to the algorithm, auction rules or the layout of the results page hits both at once. HHI itself remains a heuristic, useful for tracking direction; decisions are made only on figures in euros.
Share of revenue is half the picture. A paid channel hands part of the margin to the platform, while organic and direct traffic have no cost per order, so they weigh differently in profit than in turnover. Calculation per source (musical instruments shop, September, GA4 revenue split with an assumed gross margin rate per source, illustrative data):
| Source | Revenue | Share of revenue | Assumed gross margin % | Estimated gross margin | Channel cost | Margin after channel costs | Share of margin |
|---|---|---|---|---|---|---|---|
| Google Ads | €72,000 | 48% | 30% | €21,600 | €14,400 | €7,200 | 27% |
| Google organic | €30,000 | 20% | 34% | €10,200 | – | €10,200 | 38% |
| Meta Ads | €18,000 | 12% | 33% | €5,940 | €4,500 | €1,440 | 5% |
| Direct | €15,000 | 10% | 35% | €5,250 | – | €5,250 | 20% |
| Marketplace | €9,000 | 6% | 28% | €2,520 | €1,080 | €1,440 | 5% |
| Other (Microsoft Ads, Pinterest, referrals) | €6,000 | 4% | 32% | €1,920 | €600 | €1,320 | 5% |
| Total | €150,000 | 100% | 31.6% | €47,430 | €20,580 | €26,850 | 100% |
Google Ads charges €14,400 a month for its share. At a ROAS of 5.0 calculated on the channel’s estimated share of shop revenue (€72,000 of revenue on €14,400 of spend), €7,200 remains from €21,600 of gross margin. Meta, at a ROAS of 4.0, leaves only €1,440 from €18,000 of revenue, while organic Google and direct visits contribute their full gross margin, because they carry no per-order channel cost.
The same portfolio drawn twice shows how the centre of gravity shifts once channel costs are subtracted from revenue:
Revenue risk and profit risk sit in different places. Google Ads dominates revenue (48%), organic Google dominates margin after channel costs (38%), and the Google family as a whole holds 65% of the margin: €17,400 out of €26,850. A drop in organic traffic would therefore hurt the shop more than its 20% share of turnover suggests.
The shares come from the GA4 channel split applied to shop revenue. Summing revenue from ad platform dashboards inflates the picture, because Google Ads, Meta and other platforms can each claim the same purchase. GA4 credits each transaction once in total, so the shares add up to 100%, although a last-click model understates assisting channels.
The Google Ads dashboard provides the second view. Its conversion value for September equals 52% of shop revenue, while GA4 coverage is 91% (purchase transactions in GA4 divided by shop orders for the same period), so the GA4 split is applied to the whole shop revenue on the assumption that the missing 9% is distributed like the rest. The guide to attribution and conversions in e-commerce explains where the differences between attribution models come from.
When both views exceed the threshold, the conclusion holds regardless of the attribution model. Whether Google Ads carries 48% or 52% of revenue does not change the decision if the shop’s own limit lies around 25%. It is worth keeping the figures from both views side by side and returning to a measurement diagnosis only when they fall on opposite sides of the threshold.
Campaign and query
Branded and non-branded traffic carry different risks
Channel share shows how much revenue passes through Google Ads, but says nothing about how easily that revenue could be lost. Two euros from the same channel can carry entirely different risks: one comes from a customer who typed in the shop’s name, the other from a customer the platform brought in from an auction for “electric guitar for beginners”. That is why concentration is measured two levels further down: by campaign and by query type.
Campaigns first. Of the €72,000 of Google Ads revenue (GA4 split by campaign), as much as €40,500 comes from Performance Max, which is 27% of the whole shop’s revenue: the largest single campaign in the portfolio. Non-branded Search contributes €13,500 (9%) and branded Search €18,000 (12%); together 48%, the same as the whole channel.
Then organic queries. Search Console queries (the gsc_queries table) make it possible to separate those containing the shop’s name: in the example, they account for 55% of organic clicks. Search Console does not know revenue, so the €30,000 from Google organic is split on the assumption that revenue is distributed in the same way as clicks.
Working definition
Branded demand is revenue from visits in which the customer searches for the shop by name: a Search campaign on the brand term and organic clicks from queries containing the shop’s name.
Rented non-branded demand is revenue from customers looking for a product who are directed to the shop by a platform’s auction or ranking; its size depends more on the platform’s decisions than on the shop’s recognition.
Splitting Google revenue into two types of demand (musical instruments shop, September, illustrative data):
Owned demand · branded
The customer knows the shop’s name and address; if one platform runs into trouble, some return via direct visits, bookmarks or another search engine.
Rented demand · Google non-branded
A change in auction rules, rankings or campaign automation shifts this revenue without the shop doing anything.
Of the 68% of revenue dependent on Google, the real exposure to platform decisions is 45%. Brand demand (23%) also passes through Google results, but a customer searching for the shop by name has alternative routes in: typing the address, using another search engine, returning via a saved bookmark. A non-brand customer has no such route; when the platform stops showing the shop for “digital piano”, they will buy from whoever they see.
Three caveats to the demand split:
- Performance Max does not separate brand queries in the campaign report. The campaign can capture queries containing the shop name, so part of the €40,500 is in practice brand demand; 45% is therefore an upper estimate of the rented share.
- A brand campaign may be paying for traffic that would have arrived for free. When the shop holds the top organic position for its own name, part of the €18,000 would have reached it anyway; the guide to cannibalisation between SEO and paid campaigns sets out how to calculate this overlap.
- Non-brand organic traffic is the most exposed to AI answers in search. Questions such as “which guitar for a beginner” increasingly get a ready-made answer above the results, so the €13,500 from non-brand organic needs constant monitoring; the post on AI in search and shop traffic shows how to measure it on orders.
Concentration is measured across three views at once: channel (Google Ads 48% of revenue), campaign (Performance Max 27%) and non-brand demand from a single platform (45%). Each view answers a different question: how much revenue passes through one ad account, how much depends on one piece of automation, and how much will disappear when the platform stops showing the shop to people searching for the product. These three figures also indicate which source to stress test first.
Stress test
Stress test: what happens when a channel loses 30%
Revenue share shows how much hangs on a channel; a stress test shows how much of it falls on profit. The same 30% drop in sales from one source can take a few per cent of profit or almost all of it. The result depends on the source’s margin and on what happens to its cost.
Working definition
A stress test simulates a drop in revenue from one source by a set amount (here 30%) and translates the effect into the shop’s margin and operating profit. Starting point from the example: margin after channel costs of €26,850 minus fixed costs of €20,000 gives a baseline profit of €6,850 per month.
Scenario A is the situation where Google Ads spends the same but sells less. This is what a slump looks like after a change in auction rules, a sudden rise in bids or Performance Max shifting budget to weaker-selling queries. Of €6,850 in profit, €370 remains, even though revenue for the whole shop fell by only 14.4% (€21,600 of €150,000).
Scenario B describes a loss of scale: the channel gets fewer impressions, so it also spends less. Along with the sales, €4,320 of cost disappears, the loss shrinks to €2,160 and profit stays at €4,690 (−31.5%).
Six scenarios using the music shop’s figures (September, illustrative data; a 30% drop always in one source, the rest unchanged):
| Scenario | Lost revenue | Change in channel cost | Profit loss | Profit after test | Change in profit |
|---|---|---|---|---|---|
| Baseline (no drop) | – | – | – | €6,850 | – |
| A · Google Ads, cost unchanged | €21,600 | €0 | €6,480 | €370 | −94.6% |
| B · Google Ads, cost −30% | €21,600 | −€4,320 | €2,160 | €4,690 | −31.5% |
| C · Google organic | €9,000 | – | €3,060 | €3,790 | −44.7% |
| D · Meta Ads, cost unchanged | €5,400 | €0 | €1,782 | €5,068 | −26.0% |
| E · Marketplaces, proportional fees | €2,700 | −€324 | €432 | €6,418 | −6.3% |
| F · Google family (B + C) | €30,600 | −€4,320 | €5,220 | €1,630 | −76.2% |
On the test rig, the same results form a picture of risk: the dashed line is the €3,425 tolerance, and bars below it mark scenarios after which the month requires cuts.
Organic hurts more than its 20% share suggests. Organic traffic has no channel cost that could disappear along with the sales, so the entire lost margin (€9,000 × 34% = €3,060) falls straight onto profit. That leaves €3,790, and the loss consumes 89% of the tolerance from a source usually considered safe because it is “free”.
The Google family in scenario F combines variants B and C: a drop in Google Ads scale and a simultaneous drop in organic, for example after a search engine change that hits both entry points at once. The loss of €5,220 leaves €1,630 of profit, a result below the tolerance line even under the milder cost assumption.
Meta and the marketplace stay comfortably within tolerance. Meta with unchanged cost takes €1,782 (profit €5,068); the marketplace, with fees proportional to sales, takes €432 (profit €6,418). A small share and a low margin after channel costs mean that even a painful drop in these sources does not threaten the month.
The same revenue drop costs different amounts depending on whether scale or efficiency disappears. The most expensive case is paying the same for fewer sales, which is why, after any slump, the first step is to compare the channel’s cost with its GA4 transactions and with the number and value of shop orders on the same days. If cost holds steady while the channel’s GA4 transactions and total shop orders fall, the shop is in variant A and every further day adds to the loss; if cost falls together with sales, the effect is closer to variant B.
Threshold
Your own concentration threshold based on shop profit
A rule such as “no channel above X%” sounds sensible, but it knows nothing about the shop’s margin or profit. The same 48% share is dangerous with thin profit and bearable with a thick buffer. A meaningful threshold is calculated from two of the shop’s own figures: how much profit can disappear in a bad month and how much margin a given source carries.
Working definition
Concentration threshold is the highest revenue a single source can deliver so that its drop by an assumed amount (here 30%) takes no more profit than the shop is willing to lose in one month. Loss tolerance is that willingness expressed in euros, e.g. half of monthly operating profit.
With margins of 30–35%, every source’s limit falls between 22% and 25% of revenue. Organic has a limit of €33,578, Meta €34,596, direct traffic €32,619; only the marketplace reaches higher, because its commission falls proportionally and the margin after fees (16%) is what reaches profit. The reading is unambiguous: one source exceeds the threshold almost twofold, another sits just below it, and both belong to the same company.
Share alone is a snapshot; direction determines urgency. Daily history of shop revenue and the GA4 channel split, aggregated into months, shows that the Google Ads share keeps growing without any decision by the owner: month after month, Performance Max takes a larger part of the budget and of GA4-attributed revenue.
From April to September the share rose from 40% to 48%, and the part above the limit grew from 15% to 23% of shop revenue. At this pace the channel will exceed half of sales before the seasonal peak. The procedure that turns this reading into decisions has five steps:
Set your loss tolerance
The simplest measure is half of monthly operating profit: here €3,425 of €6,850. A shop with a cash reserve can accept more, a shop relying on supplier credit less.
Calculate the limit for each source
Divide the tolerance by the product of the shock and the source’s margin (gross margin for paid channels, because the cost remains; margin after fees for the marketplace). Convert the result in euros into a share of revenue.
Check share and trend in both views
The basis is the GA4 channel split of shop revenue (Google Ads 48%), with the Google Ads dashboard as a cross-check (here 52%; GA4 coverage 91%). If both views are above the limit and rising month on month, the conclusion does not depend on the attribution model.
If over the limit, build a second pillar
Strengthen brand demand, test another paid channel (Meta, TikTok, Microsoft Ads) settled on total shop revenue and MER, and grow marketplaces and content targeting non-brand queries. In parallel, build a profit buffer: every €2,500 of additional monthly profit raises the Google Ads limit by about €13,889.
Review the threshold once a month
After closing the month, recalculate profit, margins, limits and shares. A change in margin or fixed costs shifts the limit, so last quarter’s figure quickly goes out of date.
The most expensive diversification mistake
Cutting the best channel to even out shares: trimming the Google Ads budget by 30% at a ROAS of 5.0 means voluntarily carrying out scenario B. Profit drops immediately by €2,160 (from €6,850 to €4,690), while the channel’s share falls only to about 39%, still above the limit. The risk concerned a scenario; the loss is certain. The share should come down through growth in other sources and a profit buffer.
Key takeaway
Concentration risk is measured in euros of profit left after a channel declines. The threshold follows from the source’s margin and the shop’s loss tolerance: at half of profit and a 30% shock, the Google Ads limit is €38,056, or about 25% of revenue, and every source above it gets a plan for a second leg.
DataOrganizer
How to calculate concentration risk in DataOrganizer
The calculation from the previous sections needs five sources at once: shop orders, channel costs from the cost_* tables, marketplace fees, GA4 attribution per source/medium/campaign and Search Console queries. DataOrganizer keeps them side by side in a single data model (more in the guide to automated e-commerce analytics). An estimated channel share of margin after costs can therefore be calculated without exports or stitching spreadsheets together.
Data refreshes every morning with the complete previous day. Daily history builds up into months, so the share trend from April to September is ready the moment you ask. A monthly concentration review looks like this:
Exposure to Google in September (shop revenue €150,000 split by channel according to GA4, operating profit €6,850, illustrative data):
| Segment | Share of revenue | Share of margin after costs | Profit after a 30% drop | Reading |
|---|---|---|---|---|
| Google Ads (channel) | 48% | 27% | €370 (A) | above the 25% limit, below tolerance |
| Google organic | 20% | 38% | €3,790 (C) | loss uses 89% of tolerance |
| Performance Max (campaign) | 27% | – | – | largest single campaign |
| Google non-brand demand | 45% | – | – | rented demand, platform-dependent |
| Brand demand (Search + organic) | 23% | – | – | customers searching for the shop by name |
| Google family combined | 68% | 65% | €1,630 (F) | below the €3,425 tolerance |
Google Ads share trend since April: 40%, 42%, 43%, 45%, 46%, 48%. The share rises every month, mainly because of Performance Max, which shifts budget towards itself.
The Google Ads dashboard puts its conversion value at 52% of shop revenue; GA4 coverage (purchase transactions in GA4 vs shop orders in September) is 91%. Both views exceed the limit, so the conclusion holds regardless of the attribution model.
Conclusion: Google Ads exceeds your 25% limit almost twofold and its share is still growing; organic uses up 89% of the loss tolerance. Priority: a second paid leg (Meta, TikTok, Microsoft Ads) settled on total shop revenue and MER and growth in brand demand, while keeping the budget of campaigns with a ROAS of 5.0.
The same question works every month on fresh data. Simply repeat it after closing the month, and the share table, stress test and trend are recalculated from the current history. Changing the limit (e.g. after operating profit grows) shifts the reading without rebuilding any report.
It is worth knowing the limits before the first question. Aggregation is daily: a channel collapse shows up the next morning as the day deviating from the pattern for the same weekday, while the exact time of the event is known only to the platform’s dashboard. Ad cost per product exists only for Google Shopping, so the stress test is calculated at channel and campaign level.
Revenue from ad dashboards is not added up. The same purchase is often attributed by both Google and Meta, so shop revenue remains the basis, GA4 provides the channel split as an estimate and the dashboards serve only as a control view.
Methodological note: the figures in the examples are illustrative. Splitting organic traffic into brand and non-brand by the click ratio from Search Console is an assumption (baskets from the two query types may differ). Channel shares from GA4 applied to shop revenue are an estimate and in a last-click model understate assisting channels such as Meta or Pinterest; gross margin rates per source are assumptions applied to that estimate. HHI is a heuristic for tracking the direction of change, while action is decided by the limit calculated from the shop’s profit.
Methodological note: the figures in the examples are illustrative (a musical instruments shop, September) and add up within the example. Channel shares from GA4 applied to shop revenue are an estimate and, on a last-click basis, understate assisting channels; gross margin rates per source are assumptions applied to that estimate. Splitting organic traffic into brand and non-brand by the click ratio from Search Console is an assumption, and HHI serves only as a heuristic; the decision is based on a stress test expressed in euros of profit.
Key takeaway
Single-channel risk is measured in euros of profit remaining after that channel drops by 30%. The concentration threshold follows from the source’s margin and the shop’s loss tolerance. Google Ads with a 48% share against a 25% limit therefore needs a second leg, built through growth in other sources.
FAQ
Frequently asked questions about Google Ads dependence
How can I check whether my shop depends on Google Ads?
Calculate three figures from shop revenue split by channel according to GA4: Google Ads’ share of revenue, its share of margin after channel costs, and the profit lost if the channel drops by 30%. In an example musical instruments shop, Google Ads generates 48% of revenue and 27% of margin, and a 30% fall in performance cuts operating profit from €6,850 to €370. A second view from the Google Ads dashboard (52% of shop revenue here) shows whether the conclusion depends on the attribution model.
What share of a shop’s revenue from one channel is safe?
There is no universal threshold. A safe share depends on the source’s margin and on how much profit the shop can afford to lose. The limit is calculated with the formula (loss tolerance × profit) / (shock size × source margin): with half of a €6,850 profit, a 30% shock and a 30% margin, the result is about €38,056, or roughly 25% of revenue. A source above its own limit requires a diversification plan.
What should I do when Google Ads brings half of my shop’s sales?
First check whether the channel is profitable on its estimated share of shop revenue (ROAS 5.0 in the example) and whether its share is growing month on month (here from 40% to 48% in six months). The share is reduced through growth of other sources: brand demand, another paid channel whose test is settled on total shop revenue and MER, marketplaces and content targeting non-brand queries. Cutting a profitable Google Ads account merely to even out shares lowers profit immediately.
Is traffic from brand queries also a dependency on Google?
Partly, but the risk is lower: a customer searching for the shop by name will often return directly or via another search engine if one platform has problems. The real exposure to Google’s decisions is non-brand demand (Performance Max, non-brand Search and non-brand organic), in the example 45% of revenue compared with 23% for brand demand. The two types of demand are separated using Search Console queries that contain the shop’s name.
How do I calculate the impact of a sales drop from one advertising channel?
Multiply the channel’s revenue by the size of the drop and the gross margin, then subtract the result from operating profit, separately in two variants: channel cost unchanged (performance drop) and cost reduced proportionally (scale drop). For Google Ads, €72,000 × 30% × 30% gives €6,480 less margin and a profit of €370; if cost falls by 30%, profit only drops to €4,690. DataOrganizer calculates such scenarios from shop revenue, GA4 channel shares and channel costs, refreshed every morning with complete data from the previous day.
Cheat sheet for the whole guide
Single-channel risk calculated in three steps
1. 1. Measure the share of revenue and margin. The basis is shop revenue split by channel according to GA4, plus channel costs, in three breakdowns: channel, campaign and non-brand demand from a single platform. The Google Ads dashboard serves as a second view showing whether the conclusion depends on the attribution model.
2. 2. Test a 30% drop in two variants. A performance drop and a scale drop mean entirely different profit losses. Set each source’s limit from loss tolerance and its margin, and reduce its share by growing other sources.
3. 3. Track shares monthly in DataOrganizer. Shop orders, channel costs, marketplace fees, GA4 and Search Console queries are connected and refreshed every morning. Shares, the stress test and the concentration trend are therefore available as the answer to a single question in the chat.
DataOrganizer · channel concentration risk
Connect your shop, ad platforms, GA4 and Search Console. The data produces estimated source shares of revenue and of margin after channel costs (shop revenue split by the GA4 channel split), a stress test and the month-on-month concentration trend. You pay for connected sources, and you can set up the connections yourself, without a developer.