HowtoFeedMarginDataIntoGoogleAdsConversionValues
The single highest-impact technical move for any ecommerce Google Ads account is feeding profit data into Smart Bidding as the conversion value, rather than letting Google optimise against revenue by default. This article shows the three ways to do it (conversion value rules, offline conversion imports, server-side custom values at conversion time), the trade-offs of each, a step-by-step setup for the most reliable approach for most £10k+/month accounts, and how this feeds into the BOI™ framework for SKU-job bidding.
For context on why profit signals beat revenue signals, see our POAS framework explainer and our POAS vs MER vs ROAS guide. For the upstream data work (calculating true profit per order in Shopify), start with POAS calculation for Shopify brands.
Why default revenue-based conversion values lead to bad bid decisions
Google Ads Smart Bidding optimises against whatever signal you give it. By default, the conversion value passed into Smart Bidding is revenue — the order total Shopify reports back when a conversion fires.
The problem: revenue is not profit. A £100 order on a low-margin product generates the same conversion value as a £100 order on a high-margin product, even though one delivers £15 of contribution margin and the other delivers £70. Smart Bidding can't tell the difference. It pursues whichever campaign drives more revenue per click, regardless of whether the underlying margin justifies the bid.
For brands with uniform margins across the catalogue, this barely matters — every £100 of revenue is roughly £25 of margin, the relative bid logic works out. For brands with margin variation (which is most ecommerce brands), it matters enormously. The bid signal systematically over-rewards low-margin bestsellers and under-rewards high-margin niche lines. Over months, the campaign mix shifts toward unprofitable products.
The fix: pass profit (or margin-adjusted revenue) into Google Ads as the conversion value instead of raw revenue. Three implementation routes. Each with trade-offs.
Option 1: Conversion value rules in Google Ads (fastest, blunt instrument)
What it is: Google Ads' built-in conversion value rules let you apply a multiplier to the reported conversion value based on conditions you define. You can set rules by location, device, audience, or — most usefully for margin work — by category or custom label.
How it works for margin: Tag your products with custom labels in your Merchant Center feed by margin band (e.g., "high-margin," "medium-margin," "low-margin"). In Google Ads, set conversion value rules that multiply revenue by a margin factor for each band — e.g., low-margin × 0.25, medium-margin × 0.45, high-margin × 0.65. Smart Bidding now sees the margin-adjusted value rather than raw revenue.
Setup time: 2–4 hours assuming custom labels are already populated.
Trade-offs
Pros: Fast to set up. Doesn't require any data pipeline work. Operates in real-time at bid time. Reversible if you mess it up.
Cons: Only as granular as your custom label bands (typically 3–5 bands across the catalogue). Misses SKU-level margin variation within bands. Doesn't account for variable costs that vary per order (shipping, returns).
Best for: Brands with broadly clustered margins (e.g., apparel with mostly 50–60% margins, a few outliers) where 3–5 margin bands capture most of the variation. £10k–£50k/month spenders looking for a quick win.
Option 2: Offline conversion imports (most common, weekly cadence)
What it is: You calculate true contribution margin per order after the fact (weekly or monthly), then upload the corrected conversion value back to Google Ads via Offline Conversion Imports. Google Ads replaces the original revenue-based conversion value with your true margin figure.
How it works for margin: Export your orders weekly from Shopify, join to cost-of-goods at the variant level, subtract shipping/fees/discounts, calculate true contribution margin per order. Upload to Google Ads as offline conversions matched on Google Click ID (GCLID). Smart Bidding's historical learning gets re-weighted toward margin, and going-forward bids adjust accordingly.
Setup time: 1–2 weeks for initial setup (GCLID capture in Shopify, data pipeline to join Shopify and Google Ads data, upload process). Ongoing: 1–2 hours per week to run the import.
Trade-offs
Pros: Per-order accuracy. Captures variable costs (shipping, returns) that conversion value rules can't. Established methodology — well-documented across the industry.
Cons: Requires GCLID to be captured on every order (Shopify allows this with the right setup). Requires a data pipeline to join Shopify and Google Ads data. Bidding signal is lagged — the algorithm learns from corrected values, but with a week or two of delay.
Best for: Brands spending £20k+/month who want full accuracy and have the operational capacity to run weekly imports. The most common choice for mid-size DTC ecommerce.
Setup checklist
- Enable GCLID capture in Shopify (third-party app or custom code — many free Shopify apps handle this).
- Build the data join: Shopify order → GCLID → variant COGS → variable costs → true contribution margin.
- Set up the Google Ads Offline Conversion Import process — either via the manual upload UI or via the Google Ads API.
- Test with a small batch (50–100 orders) to validate the matching works.
- Move to weekly cadence once validated.
Option 3: Server-side custom values at conversion time (most precise, requires dev)
What it is: Calculate the corrected conversion value (true contribution margin) at the moment the order is placed, and pass it directly to Google Ads as the conversion value via server-side conversion tracking. No lag, no offline imports, no post-hoc correction.
How it works for margin: When an order is placed in Shopify, a server-side script (typically running in your tag manager or a custom backend) calculates true contribution margin in real-time using variant cost data and a shipping/fees lookup. The corrected value is sent to Google Ads' server-side conversion tracking endpoint. Smart Bidding receives the margin-adjusted value at the same time it receives the conversion fire.
Setup time: 2–4 weeks for initial setup. Requires meaningful development resource. Often involves Google Tag Manager Server-Side or a custom server-side endpoint.
Trade-offs
Pros: Real-time accuracy. No lag. No weekly upload process to maintain. Scales infinitely once built.
Cons: Highest setup complexity. Requires development capacity. Harder to debug when something goes wrong. More moving parts.
Best for: Brands spending £50k+/month with technical resource and a long-term commitment to profit-first bidding. Often best implemented alongside a wider server-side tracking migration (Consent Mode v2, iOS 14 mitigation).
Which option is right for your business
A decision framework:
| Your situation | Recommended option |
|---|---|
| Spending £10k–£25k/month, want a quick win, broadly clustered margins | Option 1 (conversion value rules) |
| Spending £20k–£100k/month, mixed-margin catalogue, weekly operational capacity | Option 2 (offline imports) |
| Spending £50k+/month, technical resource available, long-term profit-first commitment | Option 3 (server-side custom values) |
| Spending £10k–£20k/month with no operational capacity to maintain weekly process | Option 1 — accept the granularity limitation |
| Subscription business with strong LTV mechanics | Option 2 or 3, with predicted LTV layered into the conversion value calculation |
Most JudeLuxe clients run Option 2. It hits the right balance of accuracy and operational sustainability for the £20k–£100k/month band where most growing DTC ecommerce sits.
Common implementation mistakes
1. Setting up conversion value rules without populating Merchant Center custom labels
The rules need a signal to fire against. If your custom labels aren't populated by margin band, the rules will apply unevenly and produce noisier bid behaviour than the default.
2. Forgetting to handle refunded orders in offline imports
If you upload an order's true contribution margin but never reverse it when the customer refunds, your conversion values overstate profit by the refund value. Build refund handling into the weekly import process from day one.
3. Switching too aggressively from revenue to profit signals
Smart Bidding's machine learning needs time to recalibrate. Switching the conversion value type causes the algorithm to re-learn — bid stability suffers for 2–4 weeks. Phase the change rather than flipping a switch. Run revenue-based and margin-adjusted conversions in parallel for a month, validate the margin-adjusted version matches reality, then swap over.
4. Treating return processing cost as zero
Returns cost money to process even when the original payment fee is refunded. Build a typical per-return cost (£4–£8) into your contribution margin calculation. For high-return categories, this can be 10%+ of the true margin gap.
5. Not testing with a small batch before going live
Always run the import or rule on a small subset first. Validate that the corrected values match what you expect manually. The most expensive POAS optimisation mistakes happen when bad data flows into the system at scale before anyone notices.
How this feeds into BOI™
The BOI™ framework — Bid On Intent — assigns each SKU one commercial job at a time (Profit, Volume, Liquidation, Acquisition) and bids against it dynamically. Feeding margin data into Google Ads is the technical foundation that makes BOI™ work. Without margin-aware bidding signals, every SKU is bid against the same blended signal regardless of its assigned job.
With margin-aware bidding plus BOI™ job assignments, the bid logic becomes:
- Profit SKUs bid against profit-maximisation conversion values (highest margin weighting)
- Volume SKUs bid against volume-favouring conversion values (margin weighted lower, revenue weighted higher temporarily)
- Liquidation SKUs bid against any-conversion values (margin discounted further to maximise throughput)
- Acquisition SKUs bid against predicted-LTV values (first-order margin weighted lower, lifetime margin weighted higher)
The technical step (margin data flowing into Google Ads) and the strategic step (assigning SKU jobs) compound. Either one alone delivers some improvement. Both together deliver materially more.
See BOI™ explained for the full framework.
What to do this week
If you're spending £10k+/month on Google Ads and haven't done this work:
- Decide which option fits. Use the decision matrix above. For most readers, the answer will be Option 2 (offline imports).
- Confirm your COGS data is clean. Audit your Shopify variant cost field. Most stores have 5–15% of variants missing or wrong cost data. Fix this first — every other step depends on it.
- Talk to your dev team or agency about GCLID capture. Most Shopify themes don't capture GCLID by default. Plenty of free apps do it. Get this live before anything else.
- Build the offline import process — manual upload via UI to start, automate later if needed.
- Phase the change. Run for 2–4 weeks in parallel with default revenue tracking, validate, then swap over.
By 30 days post-implementation, bid behaviour should be visibly shifting toward higher-margin SKUs. By 60 days, the new equilibrium is established. By 90 days, the POAS picture is reliable enough to make ongoing strategy decisions against.
Frequently asked questions
Can I do this without changing my Google Ads conversion tracking?
If you only want POAS reporting (not POAS-influenced bidding), yes — calculate POAS post-hoc in a spreadsheet or BI tool without touching Google Ads tracking. But the reporting alone doesn't change bid behaviour. To actually influence what Smart Bidding does, you need to feed the profit signal into Google Ads itself via one of the three options in this article.
Will this break my existing campaigns?
Not if phased correctly. Smart Bidding will recalibrate over 2–4 weeks once the new signal type is introduced — bid stability suffers temporarily, then improves as the algorithm learns. Don't make the change before peak season or during a critical campaign launch. Plan the change for a quieter period to absorb the recalibration window.
What about Performance Max specifically?
PMax uses the same conversion value signal as other campaign types — the margin data flows through. The bigger PMax-specific opportunity is combining margin-adjusted conversion values with proper asset group structure (asset groups by SKU job, brand exclusions, audience signals). See our PMax management service for the full approach.
How accurate does the cost data need to be?
Aim for ±5% per variant. Better accuracy is always nicer but the bid logic doesn't break at ±5%. What matters most is consistency across the catalogue — if half your SKUs have accurate costs and half are wrong, the bid signals get distorted. Cleaning the bottom decile of cost-data quality is usually the highest-leverage data work you can do.
Does this work for non-Shopify ecommerce platforms?
Yes — the principle is platform-agnostic. WooCommerce, Magento, BigCommerce, custom platforms all have ways to pass GCLID and capture order data. The specific implementation differs but the three options (conversion value rules, offline imports, server-side custom values) work on any platform.
How does this interact with Consent Mode v2 and iOS 14 attribution losses?
Server-side conversion tracking (Option 3) is actually the strongest defence against attribution losses from Consent Mode v2 and iOS 14. Server-side tracking sees conversions client-side tracking misses. If you're spending £50k+/month, Option 3 has dual benefit — margin-adjusted bidding plus attribution recovery.
What if I don't have GCLID capture?
You can't do Option 2 (offline imports) without GCLID. The fix is straightforward — Shopify has multiple free apps that capture GCLID at order time. Get this set up before anything else. Until GCLID is captured, your offline import path is closed.
Next steps
Want help implementing margin-aware bidding in your Google Ads account? We work with ecommerce brands spending £10k+/month and have built this implementation across dozens of accounts.
Author
By Chris Avery, Founder, JudeLuxe. Speaker at HeroConf and PerformanceMCR 2026 on POAS-led PPC for DTC brands. Find Chris on LinkedIn.
POAS is a registered trademark of ProfitMetrics.