\1\n
When you build two businesses at once, you only get one shot to get the data right. Here's how we built a complete, connected measurement system for Computer Integrated Services from zero, following a prospect from the first website visit through to a closed deal in the pipeline.
The Problem Worth Solving
When Computer Integrated Services decided to split their business into two distinct brands, launching CIS Identity and CIS Managed as separate websites simultaneously, they weren't just rebuilding their web presence. They were rebuilding how their entire go-to-market operation would function. New websites, new CRM, new ad platforms, new pipeline. Everything at once.
Two brand-new websites going live. A sales pipeline already active in HubSpot with real deals moving through it. Ad spend on the horizon across Google, Meta, and LinkedIn. And no way to connect any of it. Which channels were driving traffic? Which visitors were converting into leads? Which leads were turning into the deals that actually closed? Nobody knew, and nobody could know, because the infrastructure to answer those questions didn't exist yet.
The goal of this engagement wasn't to fix something broken. It was to build something that had never been built for this business: a complete, connected measurement system that would follow a prospect from the first time they landed on a CIS website all the way through to a closed deal in the pipeline. That's a harder problem than it sounds.
The upside of starting from scratch is that you can do it right. The risk is that if you don't, you spend months making decisions with no data to back them up.
Starting From Zero, Across Everything
When the scope was agreed, we had two main websites, two ad accounts to set up, a new CRM to integrate with, and a dashboard to build. But there was also a third property that needed its own attention.
cisus.com sits above both brands, routing visitors to either CIS Identity or CIS Managed depending on what they're looking for. That splash page is a critical measurement point. Every visitor is a potential customer making a navigation decision, and when they click through, the attribution has to carry with them.
We set up a separate GTM container and GA4 property for cisus.com, configured click event tracking for both destination buttons, and added UTM parameters to the outbound links, so traffic arriving at the two main sites from the splash page is attributed cleanly as its own channel rather than falling into direct or referral noise. A small detail with a meaningful impact on the accuracy of everything downstream.
For the two main properties, we stood up the full account infrastructure: two Google Tag Manager containers, two GA4 properties, two Google Ads accounts under a CIS-owned Manager Account so the team has unified oversight without losing independent control of each brand's campaigns, plus Meta pixels and LinkedIn tracking on both sites.
Every account was built with one principle in mind: CIS owns all of it. Not us. Not a platform. The data, the ad accounts, the tracking infrastructure, it all belongs to them. That matters more than most clients realize until the day they need to change agencies or bring work in-house.
The Measurement Stack
The three sites feed Google Tag Manager, which routes data out to analytics and advertising, and writes attribution into HubSpot. From there, contact and deal data flows through to the dashboard, where everything comes together in one view.
Swipe to explore the diagram
The full measurement stack: from the three websites through GTM into analytics, advertising, and HubSpot, all converging in Looker Studio.
Measuring What Actually Matters
With the containers live, we built conversion tracking for every meaningful action a prospect can take on either website: a contact form submission, a meeting booked through the scheduler, a click on a phone number, a click on an email address, and a phone call that lasted long enough to be a real conversation, at least 30 seconds via Google forwarding numbers.
Each of these is tracked across GA4, Google Ads, Meta, and LinkedIn. Not just dropped in and left. Tested, verified, and confirmed working on every platform before we moved on. Close to 50 individual conversion configurations across both websites by the time we were done.
When someone submits a form, GTM captures their email and phone number, hashes them using SHA-256 before they ever leave the browser, and passes those hashed values to Google and Meta alongside the conversion. This lets the platforms match conversions against their identity graphs with far greater accuracy than a standard tag ever could. As third-party cookies disappear and ad blockers become the norm, this kind of first-party signal is the difference between campaigns that optimize well and campaigns that fly blind.
Attribution That Means Something
Most tracking setups stop at the website. They can tell you a lead came in, but the moment that contact enters the CRM, the trail goes cold. You lose the ability to answer the most important question in marketing: which channel or campaign actually drove the deal that closed?
We built the infrastructure to keep that thread intact all the way into HubSpot. Every time someone submits a contact form or books a meeting, nine custom fields are automatically populated on their HubSpot contact record: the raw UTM source, medium, campaign, content, and keyword from their visit, plus GA4 session and client identifiers for more advanced analytical joins in the future. This happens silently, on every single submission, with no action required from the team.
We store raw UTM values deliberately. HubSpot's native properties categorise the raw parameters, turning "google" into "Paid Search" and losing the original value. That's fine for HubSpot's built-in reports, but it makes cross-platform attribution unreliable. Storing the raw values means the data in the dashboard matches the data in the ad platforms exactly.
Going Beyond The Brief
Some of the most valuable work in an engagement isn't in the scope document. It comes from noticing what a business will need before they do.
Session recordings and heatmaps across all three properties, showing exactly how visitors interact with each page, where they scroll, and where they drop off. For a business launching two new sites with no historical behavior data, this qualitative insight sits alongside GA4's numbers. Each property has its own Clarity project, linked to its GA4 property.
Implemented via Cloudflare, this routes GA4 and Google Ads measurement requests through a first-party subdomain rather than directly to Google's servers. From the browser's perspective, tracking appears to originate from CIS's own domain, significantly reducing the chance of being blocked and future-proofing the setup against tightening browser restrictions.
Built across all three GA4 properties to replace GA4's defaults, which misattribute a meaningful share of modern B2B traffic. AI-referred visits from ChatGPT, Perplexity, and Gemini fall into "Unassigned" by default. Our grouping defines 12 channels with explicit rules, including a dedicated AI Discovery channel, mirrored in the dashboard so HubSpot and GA4 use identical definitions.
Seeing The Full Picture
We built the dashboard in Looker Studio, pulling from two live sources: GA4 for website and traffic data, and HubSpot for contacts and pipeline. The HubSpot connection runs through two automated workflows we built, one for contacts and one for deals, that continuously push CRM data into Google Sheets. Looker Studio reads from Sheets via its free native connector. No third-party subscription. No ongoing cost to CIS.
The dashboard covers both websites independently. On the GA4 side: sessions, bounce rate, engagement, channel breakdown, conversion events, landing page performance, and month-over-month trends. On the HubSpot side: new contacts by channel, lifecycle stage, lead status, and a full deal view showing pipeline value, stage distribution, and average create-to-close time, all attributed back to the marketing channel that originated each contact.
That last part matters. The channel attribution in the HubSpot section doesn't come from GA4 session data. It comes from the UTM values captured at the moment the lead was created, stored directly on the contact record. Attribution doesn't break when a prospect visits three times before converting. It doesn't get overwritten by a direct visit. It reflects the channel that actually brought them in, and it stays on that record through every stage of the pipeline.
The Live Dashboard
Website activity, pipeline, and channel attribution, pulled live from GA4 and HubSpot and updated automatically. Explore it below.
Swipe to explore the dashboard
⚠️ Disclaimer: This is a demo dashboard. The GA4 data shown is sourced from Google's publicly available GA4 demo account, and all CRM data is fabricated. No real client data is displayed. Shown to illustrate dashboard structure and functionality only.
What CIS Has Now
Three properties, fully instrumented. Every conversion tracked across every platform. Every lead arriving in HubSpot with full attribution attached. A pipeline that can be traced back to the channels that fed it. A dashboard that shows the whole picture in one place, updated automatically, at no ongoing cost. Session recordings and heatmaps alongside the numbers. A first-party data infrastructure that will hold up as browser-level tracking restrictions tighten.
The Google Ads campaigns haven't launched yet. When they do, the measurement infrastructure is ready for them. The attribution will work from day one. The dashboard will show performance by channel the moment spend starts flowing. That's the point of doing this work before the campaigns go live rather than after.
The Deliverables At A Glance
3 GTM containers across all three properties
3 GA4 properties with custom channel grouping, 14-month retention, and internal traffic filtering
2 Google Ads accounts under a CIS-owned MCC, 5 conversion actions each, Enhanced Conversions on primary events
2 Meta pixels with Advanced Matching
1 LinkedIn Campaign Manager with Insight Tag and conversion events
3 Microsoft Clarity projects linked to their respective GA4 properties
Close to 50 conversion configurations across all platforms, fully tested
cisus.com splash tracking with click events and UTM-tagged outbound links
9 custom HubSpot properties for raw UTM and GA4 attribution
Automated hidden-field injection writing attribution into every HubSpot submission
Google Tag Gateway via Cloudflare for first-party measurement
Custom 12-channel GA4 grouping replicated across all properties and the dashboard
2 HubSpot workflows syncing CRM data to Google Sheets automatically
Full-funnel Looker Studio dashboard with zero ongoing connector cost
Complete project documentation covering every account, configuration, and decision
The Takeaway
CIS started with a clean slate and one shot to build their measurement foundation correctly. What they have now is a complete, connected system: three properties fully instrumented, every conversion tracked, every lead attributed from first touch to closed deal, and a dashboard that shows the whole funnel in one view, at no ongoing cost. When the campaigns launch, the answers will already be waiting. That's what it looks like to build the data infrastructure before you need it, rather than scrambling to reconstruct it after.
Book a complimentary consultation. We'll review your setup and be direct about where the opportunity is.
Book a Complimentary Call