How dependent is the brand on Google Ads vs other channels? High concentration = vulnerable to Quality Score / policy hits.
At a glance
Cross-channel card: Google Ads conversions_value as a share of total commerce-platform revenue across all channels. The single best read on whether the business is dangerously dependent on paid Google traffic. A 70% revenue share means a Quality Score collapse, a competitor outbidding you, or a Google policy enforcement (disapproved ads, account suspension) takes 70% of revenue offline overnight.
| The formula | google_ads.metrics.conversions_value ÷ commerce_platform.total_revenue × 100, where commerce_platform is whichever ecom connector is connected (Shopify, BigCommerce, Adobe Commerce). Cross-connector join on shared time window. |
| GAQL resource + metric | Numerator: FROM customer selecting metrics.conversions_value. Denominator: pulled from the connected commerce platform’s revenue card. |
| Account currency (single by design) | Both sides converted to the merchant’s reporting currency (commerce platform’s primary store currency). If Google Ads account is GBP and commerce platform is USD, FX conversion happens in the engine using daily rates. Cross-currency advertisers should treat the percentage as approximate. |
| Conversion attribution model (configurable) | Google Ads side uses whatever attribution model is set in the account (DDA default for new, Last click for older). Commerce platform side is order-based, no attribution model. The mismatch is part of why the percentage is approximate. |
| View-through inclusion (excluded by default) | Google Ads numerator uses primary conversions_value (excludes view-through). Including view-through would inflate the share by 5-15% on Display-heavy accounts. The conservative read excludes it. |
| Bot / IVT filter | Google’s Invalid Click Filter applies to the numerator. Commerce platform denominator is order-based and bot-immune (an order had to clear payment to count). |
| Micros conversion | Numerator: cost_micros not used here; only conversions_value (already in currency). Denominator: commerce platform native revenue. |
| Real-time vs ingestion lag | Numerator: 1-4 hour lag. Denominator: typically near-real-time (commerce platforms reconcile within minutes). The card lags to the slower side; recent days will swing as Google Ads ingests. |
| MCC aggregation | If the merchant has an MCC, the engine sums across child accounts that share the same currency. Mixed-currency MCCs need per-account treatment. |
| Time window | 30D vsP (default 30D vs prior 30D). |
| Alert trigger | > 60% (channel-concentration risk). Drives a concentration-risk warning. Real risk threshold depends on margin and reserves; the 60% mark is industry rule of thumb for “cannot survive a 30-day Google Ads outage”. |
| Roles | owner, marketing, finance |
Calculation
Calculated automatically from your Google Ads data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A UK fashion brand. The 30-day window covers 14 Mar 26 to 12 Apr 26.| Source | Revenue | Share |
|---|---|---|
Google Ads (per conversions_value) | £147,100 | 49% |
| Klaviyo (email) | £62,400 | 21% |
| Direct / organic / SEO | £58,300 | 19% |
| Meta Ads | £18,400 | 6% |
| Affiliates / influencers | £12,200 | 4% |
| Other (referral, organic social) | £4,100 | 1% |
| Total commerce-platform revenue | £302,500 | 100% |
- 49% is high but not catastrophic. Industry rule of thumb: under 40% is healthy diversification; 40-60% is concentrated but manageable; over 60% is fragile. At 49% this brand could survive a 30-day Google Ads outage but with substantial revenue impact.
- The number depends on attribution model. If Google Ads switched DDA -> Last click, conversions_value drops 15-25%, and the share drops with it (perhaps to 38-42%). The drop is not real diversification, it’s just attribution shifting credit toward direct/organic and email. Check Tools > Attribution before making strategic decisions on this number.
- Compare to GA4 channel mix. GA4 typically credits Google Ads with 5-15% less revenue than Google Ads itself reports (different attribution timing). If GA4 says Paid Search is 38% of revenue and this card says 49%, the truth is probably between, around 42-45%. Don’t quote the high number without the GA4 cross-check.
- Watch for double-counting. Google Ads
conversions_valuemay include orders also credited to email by Klaviyo (multi-touch attribution). If you naively sum Google Ads (49%) + Klaviyo (21%) + Meta (6%) you get 76% paid+email + 19% direct + 4% affiliate = 99%, which suggests minimal overlap. But typically there IS overlap of 10-20% between channels. Use this card as a directional read, not a precise allocation. - A rising share is the alert pattern. This brand was at 42% Google Ads share six months ago. Trending up means the diversification is shrinking. Reasons: (a) Google Ads working well so investment increased, (b) email and SEO under-invested, or (c) other paid channels (Meta) underperforming. Each cause has different action.
- Share > 60%: rebalance investment toward email, SEO, organic social. Prepare for a Google Ads disruption (have a non-Google traffic plan).
- Share < 30%: probably under-invested in Google Ads if margins allow growth. Test scaling.
- Share rose +10pp month-on-month: Google Ads working well or other channels collapsing. Check the absolute numbers per channel.
- Share dropped sharply: either Google Ads dropped (investigate ROAS) or another channel surged (Klaviyo automation launched, SEO won a featured snippet, etc.).
- Multi-currency stores: take the percentage as approximate; FX conversion adds 1-3% noise.
Sibling cards merchants should reference together
| Card | Why pair it with Google Ads Revenue Share |
|---|---|
| Google Ads Total Revenue | The numerator. Tells you whether share moved on Google Ads side or commerce-platform side. |
| Google Ads ROAS | Risk reading: high share + low ROAS = unprofitable concentration. High share + high ROAS = profitable but fragile. |
| Google Ads xc Revenue at Risk from Incident | The real-world stress test of the concentration risk: what happens when Google Ads has an incident. |
| Shopify Total Revenue | The denominator (Shopify case). Compare against this directly. |
| BigCommerce Total Revenue | The denominator (BC case). |
| Adobe Commerce Total Revenue | The denominator (Adobe Commerce case). |
| GA4 Revenue by Channel | Independent view of channel mix. Compare GA4’s Paid Search share against this card; expect 5-15pp difference due to attribution timing. |
| Klaviyo Total Revenue | The other big concentration risk. If Google Ads + Klaviyo > 80%, two-channel fragility. |
| Meta Ads Revenue | Diversification check. A healthy paid mix has Meta 20-40% of paid revenue, depending on the brand. |
Reconciling against the vendor’s own dashboard
Where to look in Google Ads UI: This card has no direct equivalent in Google Ads UI; it is a cross-connector view by design. The closest reference points are: Google Ads > Overview > Conv. value gives the absolute Google Ads numerator. Commerce platform admin gives the denominator: Shopify > Analytics > Reports, BigCommerce > Analytics > Orders Summary, or Adobe Commerce > Reports > Sales. GA4 > Reports > Acquisition > Traffic acquisition, grouped by Default Channel Group, shows session-level channel revenue shares. This is the closest single-pane equivalent. Other views that look like this number but aren’t:- Google Ads share of impressions / clicks: a coverage metric, not a revenue share.
- Google Ads share of conversions (count, not value): can differ materially if Google Ads conversions skew small (low-AOV branded queries) or large (Shopping high-AOV products).
- GA4’s “Default Channel Group” revenue split: similar conceptually but uses last-non-direct attribution; will typically show Google Ads as a smaller share.
- Marketing-mix model output: an econometric estimate of paid contribution; useful but slow and expensive, not what this card is.
| Reason | Direction of divergence |
|---|---|
| Real-time event-ingestion lag (1-4 hours on Google Ads side, near real-time on commerce platforms). | Most recent days will swing as Google Ads catches up; share tends to rise overnight. |
| Currency conversion. If Google Ads account is in a different currency to the commerce platform, daily FX rates apply. | 1-3% of noise on cross-currency setups. |
| Attribution model mid-window switch. | Step change of 15-25% in numerator, share rebalances. |
| Refresh lag. Card refreshes typically every 4 hours. | Up to 4 hours stale. |
- The numerator is Google Ads’ self-report. If the conversion pixel under-reports (most pixels do, by 5-20%), Google Ads share is understated. The “true” share is usually slightly higher than this card.
- The denominator counts orders the customer paid for. Refunds are not netted unless the engine specifically subtracts them; check the commerce platform card’s exclusion rules.
- Multi-touch reality. A customer who clicked a Google Search ad, then opened a Klaviyo email three days later, then clicked a Meta retargeting ad before purchasing, is in the conversions_value of all three channel reports. Naively summing channels can exceed 100%; this card just shows the Google Ads slice, the overlap is implicit.
- B2B / wholesale orders. Some commerce platforms include B2B orders that never came through Google Ads. Filter the denominator to D2C orders for cleaner reading on hybrid stores.
- Marketplaces. If the brand also sells on Amazon/Etsy, those orders are NOT in the commerce-platform denominator (different storefront). The “true” Google Ads share of total brand revenue is lower than this card’s read for marketplace-active brands.
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
google_analytics.ga_revenue_by_channel | GA4 Paid Search share should be 5-15pp lower than this card. | Different attribution timing (last-non-direct vs ad-click window). |
shopify.total_revenue | Denominator. | None expected. |
bigcommerce.total_revenue | Denominator. | None expected. |
klaviyo.klv_total_revenue | Klaviyo’s own attributed revenue overlaps with Google Ads’ on multi-touch. | 10-30% overlap typical; don’t treat as additive. |
Known limitations / merchant FAQs
My share is 70%, what should I do? First: stress-test. If Google Ads disappeared for 30 days, can the business cover fixed costs from the remaining 30%? If no, you have an existential concentration risk. Action: invest in email (Klaviyo automations, list growth), SEO (content + technical), and at least one secondary paid channel (Meta or TikTok) until the share drops to 45-55%. The investment usually shows ROI within 6-9 months. Why is my number above 100%? Multi-touch attribution overlap. Google Ads’conversions_value may credit orders that the commerce platform also credits to other channels (email, organic). If you compare numerator-vs-denominator at face value AND your Google Ads pixel is over-attributing (capturing view-through-style assists), you can exceed 100%. This is why we say “approximate cross-channel read”, treat anything > 90% as “Google Ads is the dominant channel”, don’t over-precise it.
Why does GA4 say my Google Ads share is lower than this card?
GA4 uses last-non-direct attribution by default. Google Ads attributes any conversion within its click window (typically 7-day click + 1-day view) to itself. The same purchase can credit Google Ads here and Email/Direct in GA4. Both are “right” within their attribution model; neither is the truth. The truth lies between, somewhere around the GA4 number plus 5-10pp.
Should I optimise to lower my Google Ads share?
No. Optimise for absolute profitable revenue across channels. Lowering Google Ads share by hobbling it would be perverse. Instead: accelerate other channels until they grow faster than Google Ads, naturally reducing Google’s share without cutting it.
My share dropped 15pp this month, that’s bad right?
Depends. (1) If Google Ads absolute revenue dropped (check Google Ads Total Revenue), it’s bad, paid acquisition is failing. (2) If Google Ads held but commerce-platform total grew (organic, email, etc.), it’s good, your other channels are working. (3) If a model attribution change moved credit away from Google Ads, neither, just bookkeeping.
My commerce platform shows orders Google Ads doesn’t credit, why?
Multiple reasons: (1) Customer used Google Ads at first click but completed via direct/organic later; depending on attribution model, Google may or may not get credit. (2) Customer arrived from organic / email / direct, never via Google Ads; not in numerator. (3) B2B order or marketplace-imported order; not from any paid channel. (4) Pixel failure on specific landing pages or product types.
How does this work if I have multiple Google Ads accounts (MCC)?
The engine sums conversions_value across child accounts of the MCC if they share a currency. For mixed-currency MCCs, the dominant-currency child accounts are summed; minor-currency children are reported separately. Raise this with VortexIQ support for non-standard MCC structures.
Is the 60% threshold reliable?
60% is a rule-of-thumb concentration-risk floor. Real risk depends on (a) margin (high-margin brands can absorb a partial Google Ads outage), (b) cash reserves (3+ months operating cost recommended for Google Ads-heavy brands), and (c) ability to surge other channels (Klaviyo automations are quick; SEO is slow). Some brands tolerate 70%+ comfortably; others should worry at 50%.
Multi-currency setup, how does the share work?
The engine converts to a single reporting currency (commerce platform’s primary). FX conversion adds 1-3% noise. For brands with mostly Euro-eurozone or sterling-only operations, this is reliable; for highly international brands, treat the absolute number as approximate but the trend over time as accurate.
Why is view-through excluded?
Google Ads’ All-conversions value (which includes view-through) tends to inflate concentration share by 5-15% on Display/YouTube-heavy accounts, often without genuine purchase causality. The conservative read uses primary conversions only. If you want the inclusive read, divide gads_all_conversions value by commerce-platform total instead.