A £15,000 Google Ads month can generate 52 demo requests and still contain no usable ROAS data. Until each request can be followed to a qualified opportunity and won revenue, the platform is measuring activity, not return.
This ROAS tracking checklist connects three layers: the browser signal, the server record and the CRM outcome. Miss one hand-off and Smart Bidding learns from partial data. Count one hand-off twice and your return is inflated. Our explanation of why platform ROAS and real revenue diverge covers the commercial consequences.
The implementation standard is simple: one ad interaction, one durable lead identity and one verified commercial outcome.
How to use this ROAS tracking checklist
Complete the points in order. The browser creates the context, the server preserves and sends it, and the CRM establishes what the lead became.
A point only passes when its output has been observed in a controlled journey. “The tag is installed” is not proof that an identifier survives a redirect, reaches the CRM and returns with the won deal.
A sound revenue-led Google Ads management setup treats these controls as campaign infrastructure. Bidding cannot optimise beyond the quality of the signals it receives.
Browser and pixel ROAS checks: points 1–10
The browser layer must capture the ad interaction, consent state and lead action without inventing value or creating duplicates.
- 1. Use one controlled tag deployment. Deploy the Google tag directly or through Google Tag Manager on every landing and conversion page. Restrict publishing rights and version each release.
- 2. Enable auto-tagging. Preserve gclid, gbraid and wbraid parameters through redirects. A URL-cleaning script or third-party form must not strip them.
- 3. Configure the Conversion Linker. Run it wherever an ad visitor can land. Set up cross-domain linking before sending prospects to a separate form, booking or payment domain.
- 4. Connect consent correctly. Initialise Consent Mode before advertising tags load, then update ad_storage, analytics_storage, ad_user_data and ad_personalization from the visitor’s recorded choice.
- 5. Trigger confirmed outcomes. Fire a lead conversion only after the server confirms success—not when somebody clicks “Submit”. Send the correct action, time, currency and permitted value.
- 6. Generate an immutable lead ID. Create it before submission and pass it through the browser, server and CRM. Use it to construct transaction or order IDs; never use an email address.
- 7. Choose one primary source per action. Do not make a native Google Ads event and its GA4 import primary simultaneously. Keep page views and brochure downloads secondary. The controls behind accurate Google Ads conversion data begin with this discipline.
- 8. Configure enhanced conversions. Use first-party email or phone data provided directly by the prospect. Let the Google tag normalise and hash it, or apply SHA-256 correctly before server upload.
- 9. Cover every capture route. Forms, embedded schedulers, chat, tracked calls and callback requests must deliver the same minimum set of lead and source identifiers.
- 10. Test all browser states. Check desktop, mobile, consent-granted and consent-denied journeys. Confirm one event, the right label and the same lead ID in tag preview, network requests and Google diagnostics.
Server-side and offline ROAS tracking: points 11–20
Server-side tracking is not permission to send more data. Its job is to preserve valid signals, control uploads and connect later commercial events to the original lead.
- 11. Create a first-party intake endpoint. It should receive the confirmed lead, immutable ID, click identifiers and consent state. A server-side GTM container is optional; durable ingestion is not.
- 12. Enforce consent again. The server must not restore identifiers or send advertising data that the browser was not permitted to collect.
- 13. Persist attribution fields. Store the lead ID, click IDs, landing time, original source and relevant session attributes in structured fields. Set retention around the buying cycle and documented privacy policy.
- 14. Normalise incoming data. Lowercase and trim emails, format phone numbers internationally, preserve case-sensitive click IDs, include time zones and use ISO currency codes such as GBP.
- 15. Prepare enhanced lead imports. Send eligible CRM events with hashed first-party data and the click ID whenever available. Never place personal data inside URL parameters.
- 16. Separate the funnel stages. Create distinct actions for lead, qualified lead, opportunity and closed won. A B2B lead-generation structure built around qualified pipeline should give bidding several clear signals, not one bucket called “conversion”.
- 17. Use the real event time. Upload the moment each offline stage occurred. A won deal needs its verified value and currency—not the form timestamp or a stale opportunity estimate.
- 18. Make uploads idempotent. A stable key such as leadID:stage:version allows safe retries. Use a different key only when the lead reaches a genuinely different stage.
- 19. Automate the data transfer. Move from test files to Data Manager or the Google Ads API. Store the submission time, response, error code, retry count and schema version for every row.
- 20. Support adjustments and retractions. Revised contract values, cancellations and refunds must update the original conversion rather than create a compensating fake lead.
CRM and revenue tracking: points 21–30
The CRM—not the advertising account—decides whether a lead became revenue. If sales can skip or overwrite critical fields, the tracking chain remains incomplete.
- 21. Preserve identity across objects. The lead ID must survive conversion into contact, company, opportunity and invoice records. Merging a record must not create a fresh acquisition.
- 22. Protect attribution fields. Give click IDs, original source, landing page and submission time dedicated CRM fields. Do not bury them in notes or let sales overwrite them.
- 23. Define objective stage gates. Accepted, qualified, opportunity and closed won each need a commercial rule, an owner and a mandatory reason when rejected.
- 24. Retain stage history. Timestamp every change automatically. The current stage alone cannot tell the server when a conversion happened or whether it was later reversed.
- 25. Set duplicate and buying-committee rules. One deal may involve five contacts. It must still produce one won-revenue event, owned by one persistent deal record.
- 26. Agree the revenue basis with Finance. Choose signed first-year value, recognised revenue or collected cash and apply it consistently. Use a defined method for calculating true ROAS rather than silently mixing those bases.
- 27. Keep pipeline separate from revenue. An £80,000 opportunity is a useful forecasting and bidding signal. It is not £80,000 of ROAS until the agreed revenue condition is met.
- 28. Identify every commercial event. Deals, renewals and expansions need separate IDs. Decide whether later revenue remains attributable to the originating click instead of crediting renewals forever by default.
- 29. Connect finance reversals. Cancellations, credit notes and value changes must flow back into the CRM and trigger the server adjustment specified in point 20.
- 30. Run an end-to-end acceptance test. Verify identifiers, consent, timestamps, stage actions, values and deduplication through a controlled journey. Marketing, sales and finance should approve the resulting record.
A worked B2B ROAS calculation
Consider a Manchester software company spending £18,000 on Google Ads.
A prospect arrives with a gclid. The website creates lead L-8429, while the server stores both identifiers and the consent state. Sales qualifies the lead two days later, producing an offline qualified-lead conversion with order ID L-8429:QL.
The deal closes 24 days after submission for £20,000. The CRM sends a separate closed-won event using L-8429:CW and the actual close time.
Across the month’s acquired cohort, three deals eventually close for £14,000, £20,000 and £26,000. Revenue is therefore £60,000:
£60,000 revenue ÷ £18,000 ad spend = 3.33x ROAS
Suppose the browser also recorded 90 forms carrying an assumed £1,000 value. That produces a 5x lead-value return, but it is not revenue ROAS. Both signals can exist as separate conversion actions; they cannot share the same label.
Use documented paid-media outcomes to frame sensible questions, not to import another company’s target into your economics.
FAQ
Do B2B companies need both browser and server-side tracking?
Usually. The browser captures the click context, consent and immediate action. The server preserves those inputs and returns qualified-lead or revenue events later. Shared IDs prevent the two paths from double-counting.
Which conversion should Google Ads optimise towards?
Use the deepest meaningful stage that occurs frequently and quickly enough to guide bidding. That may initially be a qualified lead rather than closed revenue. Keep each stage separate and change the primary goal deliberately.
Can ROAS be tracked without a CRM?
A structured database or carefully controlled spreadsheet can work at very low volume. It still needs immutable IDs, stage timestamps and revenue fields. Without an outcome record, revenue ROAS cannot be substantiated.
Do enhanced conversions remove the need for consent?
No. Hashing customer data does not make consent and lawful processing irrelevant, and a server cannot bypass the visitor’s choice. Align the implementation with UK GDPR, PECR and appropriate legal advice.
Summary
- Capture click IDs, consent and one immutable lead ID in the browser.
- Preserve those fields through the server and every lead-capture route.
- Import qualified leads, opportunities and won revenue as separate actions.
- Let CRM and finance records determine commercial value and reversals.
- Trust a lower verified ROAS over a flattering number that cannot reach the ledger.
Actualyse builds measurement and attribution setups that tie B2B ad spend to real revenue. Book a call to talk through where yours stands.

