Get the working resource ↓
SaaS PPC and Paid Ads Checklist 4 min read

Paid ads conversion tracking setup checklist

Tracking setup across Google, LinkedIn and Meta: event taxonomy, deduplication, server side tagging, CRM stitching, and the QA tests that catch silent failures.

On this page 8 sections
  1. Step 1: Define the conversion event taxonomy before touching a tag
  2. Step 2: Install and verify the three browser tags
  3. Step 3: Add server-side tagging and the conversions APIs
  4. Step 4: Capture click identifiers and persist them through the CRM
  5. Step 5: Enhanced conversions, values and consent
  6. Step 6: The QA suite. Eight tests, eight expected results
  7. What this costs, honestly
  8. What to do next
  9. Frequently asked questions

The short answer

Conversion tracking setup for SaaS ads is a build sequence, not a tag install. Define a five-stage event taxonomy with one owner per event, install and verify the Google tag, LinkedIn Insight Tag and Meta Pixel, add server-side tagging with deduplication keys, capture GCLID, WBRAID, GBRAID, li_fat_id and fbclid into hidden fields that persist through the CRM object chain, configure enhanced conversions with hashed email, set stage values, then run a QA suite before any campaign spends money.

Key points before you start

Nothing else in paid media works until this does. Bidding algorithms train on your conversion feed, budget decisions come out of it, and every optimisation argument eventually resolves to whether the number is real. Build this before you spend.

The order below is a build sequence. Steps depend on the ones above them, so skipping ahead creates rework.

Step 1: Define the conversion event taxonomy before touching a tag

Five events, five written definitions, five named owners. Not a Google Doc nobody reads: a row in the CRM data dictionary with a person’s name on it.

EventDefinitionOwnerWhere it fires
SignupAccount created, email verifiedGrowth PMProduct backend
Demo requestForm submitted with valid work emailDemand gen leadWebsite / server
Qualified leadPasses ICP fit rules plus SDR acceptSales opsCRM stage change
OpportunityDiscovery held, next step bookedSales opsCRM stage change
Closed-wonContract signedRevOpsCRM stage change

The failure mode here is definitional drift. Six months in, marketing counts qualified leads at form submit and sales counts them at accept, and the CPQL argument becomes unwinnable. Write the definitions down, date them, and require a change request to alter one.

One definition per event, or none of the rest matters

If two teams can both claim to be right about the number of qualified leads last month, your tracking build is already broken and no amount of server-side tagging will fix it.

Step 2: Install and verify the three browser tags

Browser tag install

0 of 6 done

The most common real-world break: tags live on the marketing site but not on the app subdomain where the trial signup completes. Then Google Ads shows demo requests and no signups, and someone concludes search does not drive product-led volume. It does. You just cannot see it.

Step 3: Add server-side tagging and the conversions APIs

Browser-only tracking loses 10 to 30 percent of B2B conversions to ad blockers, Safari ITP cookie truncation and consent rejection. Server-side recovers most of that.

Server-side build

  1. Stand up the container

    Google Tag Manager server container on Google Cloud Run or a managed host like Stape. Budget 50 to 300 dollars a month. Point it at a first-party subdomain such as sst.yourdomain.com so cookies are set first-party.

  2. Route the Google tag through it

    Change the transport URL. Verify in the server container preview that events arrive with the correct client ID and session ID.

  3. Add Meta Conversions API

    Send Lead and CompleteRegistration server-side with user data: hashed email, hashed phone, client IP, user agent, fbclid. Match quality score in Events Manager should reach 6 or above.

  4. Add LinkedIn Conversions API

    Send conversions with hashed email and li_fat_id. LinkedIn accepts CRM-sourced conversions directly, which is usually easier than routing through the container.

  5. Set deduplication keys

    Generate one event ID per conversion in the browser, pass it to the server, send the same value on both. Meta uses event_id, Google uses transaction_id. Confirm the platform reports deduplicated, not doubled.

  6. Reconcile

    After 14 days, compare server event counts to browser event counts to CRM rows. Server should exceed browser by 10 to 30 percent. If it exceeds by 100 percent, deduplication is not working.

Editable working copy

Get this checklist as a working file

Save the checks on this page as a working copy and assign an owner, status and evidence for each action.

We never sell your data. Your resource opens here after submission.

Step 4: Capture click identifiers and persist them through the CRM

This is where most builds quietly fail. Capturing GCLID into a form field is easy. Keeping it attached to the deal 94 days later when it closes is the part that requires design.

Identifier capture

0 of 6 done

If you are running LinkedIn lead gen forms rather than landing pages, the hidden field trick does not apply, so map li_fat_id through the native CRM integration instead. The tradeoff is real: lead gen forms convert better and track worse.

This chain is what makes offline conversion tracking possible at all. Without persisted identifiers you can never feed closed-won back to the platforms, which means smart bidding optimises towards form fills forever.

Enhanced conversions for leads sends a SHA-256 hashed email with the conversion so Google can match it to a signed-in click even when the cookie is gone. Turn it on. It is free, takes an afternoon, and typically recovers a chunk of otherwise unattributed conversions.

Then set values per stage so bidding has a gradient to climb:

EventValue basisExample at $18K ACV, 22% win rate
Demo requestExpected value$400
Qualified leadExpected value$1,200
OpportunityACV x win rate$3,960
Closed-wonActual first-year ACVActual

Configure Google Consent Mode v2 and document what you expect to lose. In the EU with a well-designed banner, expect 20 to 40 percent consent rejection and plan for modelled conversions to fill part of the gap. Write that number down so nobody panics at it later.

Review request

Free SaaS marketing audit

Share your site, stage and priorities to request a review of your positioning, funnel and acquisition plan.

We never sell your data. Your request is saved for review.

Step 6: The QA suite. Eight tests, eight expected results

Treat this as a release gate. Nothing launches until all eight pass.

TestWhat you doExpected result
End-to-end test leadClick a real ad with a test GCLID appended, submit every form, progress the record to closed-won in a sandboxConversion appears in all three platforms, identifier present on every CRM object
CRM field mapping auditInspect the test record's custom properties field by fieldAll six identifier fields populated, none truncated or null
Row count reconciliationCompare platform conversion count to CRM row count for a 30 day window, aligned on click dateWithin 5 to 15 percent, gap explained by modelled conversions
Duplicate conversion checkQuery CRM for contacts with two or more conversion events within 60 secondsZero, or a documented reason such as a double-submit form
Lag window checkCompare your conversion window setting to actual median days from click to closed-wonWindow exceeds the 80th percentile of real sales cycle length
Consent mode testReject cookies, submit a form, check both browser and server pathsServer event fires with hashed email, browser event suppressed
Deduplication testFire one conversion, inspect both browser and server logsOne conversion recorded in-platform, two events sent with matching IDs
Value integrity testExport closed-won conversions for a month and sum the valuesTotal matches finance bookings for the same cohort within 2 percent
Run all eight before launch, then re-run tests 1, 3 and 4 monthly.

The silent failure

A developer changes the form component. The hidden fields survive, but the cookie read now happens before the script that sets it. Conversions keep firing, the dashboard keeps showing a CPA, and every value is wrong. Nobody notices for eleven weeks because the number never went to zero. That is why test 3 runs monthly, not once.

What this costs, honestly

A full build takes two to four weeks of combined marketing ops and engineering time, plus 50 to 300 dollars a month of hosting. On a 20,000 dollar a month paid programme that is easy to justify. On a 3,000 dollar a month programme, do steps 1, 2, 4 and the QA suite, and skip server-side until spend grows. Half-built server-side tracking is worse than none, because it produces numbers that look authoritative and are not.

The other honest cost: this build makes your reported CPA go up. Deduplication removes phantom conversions, tighter definitions remove unqualified ones, and the number that comes out is larger and true. Prepare leadership for that before you ship, not after.

What to do next

Work the six steps in order, gate the launch on the eight tests, and put tests 1, 3 and 4 on a monthly calendar invite with a named owner. Then go read how this feeds lead quality scoring and pick your stack from the PPC tooling guide. If you are still deciding where the spend goes, settle Google Ads versus LinkedIn Ads first, because the tracking build differs slightly between them, and the rest of the SaaS PPC programme depends on getting this feed right.

Editable working copy

Get this checklist as a working file

Save the checks on this page as a working copy and assign an owner, status and evidence for each action.

We never sell your data. Your resource opens here after submission.

Frequently asked questions

What order should I build SaaS ad conversion tracking in?

Taxonomy first, tags second, server-side third, identifier capture fourth, enhanced conversions fifth, values sixth, consent seventh, QA last. Building tags before agreeing on what a qualified lead means produces three teams reporting three different numbers from the same campaign, and you will rebuild it inside six months.

Do I need server-side tagging for B2B SaaS ads?

If you spend under about 15,000 dollars a month, browser tags plus offline conversion imports will do. Above that, server-side tagging plus the conversions APIs recovers conversions lost to ad blockers, Safari ITP and consent rejections. The cost is a Google Cloud or Stape container, roughly 50 to 300 dollars a month, plus engineering time to build it.

What is conversion deduplication and why does it matter?

When you send the same conversion from both the browser and the server, the platform needs a shared identifier to recognise them as one event. Meta uses event_id, Google uses transaction_id or order_id. Without it, every conversion counts twice, your reported CPA halves, and you scale spend on a number that does not exist.

Which click identifiers should I capture in hidden form fields?

GCLID for Google Ads, WBRAID and GBRAID for iOS app and web-to-app traffic, li_fat_id for LinkedIn, and fbclid for Meta. Capture them on first landing, store them in a first-party cookie for at least 90 days, and write them onto the contact record at form submit and onto the deal record at creation.

How do I QA conversion tracking before launching campaigns?

Run a full end-to-end test lead through every form, audit CRM field mapping, reconcile row counts between platform and CRM, check lag windows against your real sales cycle, and test for duplicate conversions. Each test needs a written expected result so a failure is obvious rather than a judgement call.

Why do my Google Ads conversions not match my CRM?

Three usual causes. Google attributes conversions to the click date while your CRM stamps the submission date, so any comparison across period boundaries mismatches. Second, modelled conversions fill consent gaps and have no CRM row. Third, deduplication is missing. Expect a 5 to 15 percent gap even when everything is correct.

The saas-marketing.net editorial team Research and editorial

We research, write and maintain every page on this site. The library explains marketing decisions through practical frameworks, explicit assumptions and references. Corrections can be requested through the contact page.

Published September 11, 2026. Last updated .