facebook
SaaS Attribution: How to Track Free Trial to Paid Conversions Across 14-90 Day Windows

SaaS Attribution: How to Track Free Trial to Paid Conversions Across 14-90 Day Windows

TL;DR

  • Trial-to-paid windows run 14 to 90+ days and outlast every cookie-based tool
  • Self-serve converts in ~14 days, sales-assisted ~30 days, PLG enterprise 60 to 90+ days
  • UID-based identity stitching is the only architecture that survives device switches and re-engagement

SaaS attribution fails because trial-to-paid windows run 14 to 90+ days and outlast every cookie-based tool. From Hyros customer audits we typically observe self-serve trials converting in ~14 days, sales-assisted in ~30 days, and PLG enterprise in 60 to 90+ days (observed ranges, not industry-published medians). UID-based identity stitching is the only architecture that survives device switches, incognito sessions, and email re-engagement long enough to credit the ad that started the trial.

Why SaaS Attribution Breaks at the Trial-to-Paid Boundary

Here’s what nobody tells you: every dashboard you trust is lying in the same place. Signup count looks fine. Paid conversion column is half-empty. You assume your trials are converting badly. They’re not. Your attribution died at the signup event and never came back.

I built Hyros because I kept watching this happen in my own ad accounts. The pixel fires when someone hits the signup page. That’s the last event it can reliably catch inside a 7-day click window. Then the user switches from work laptop to phone, ignores three nurture emails, and adds a credit card two weeks later from a different device. The platform reports zero paid conversions from a campaign that actually drove the deal. So you turn the campaign off.

This is not a glitch. Signup is inside the window. Paid conversion is not. For the foundational definition, see What Is Ad Attribution.

The Three SaaS Motions and How Each Breaks Attribution Differently

Transit map of three SaaS motion lines showing trial to paid conversion windows by motion

Most articles treat the trial-to-paid problem as if it has one shape. It doesn’t. There are three GTM motions, and each breaks attribution in its own way.

Self-serve. 7 to 14 day trial. Card on file at signup, or the user gets walled off when the trial ends. Attribution dies on the device switch between marketing site and product. Two cookies, two devices, one user. The pixel sees two strangers.

Sales-assisted. 14 to 30 day trial. An SDR or AE follows up and walks the buyer through the upgrade. The deal gets credited to the sales call in the CRM. The ad that started the trial three weeks earlier gets nothing.

Product-Led Growth. The trial is the product. Conversion is triggered by an activation event inside the product, days or weeks after signup. First file imported. First teammate invited. First integration connected. Attribution dies because most tools cannot tie an in-product event back to ad spend that happened weeks earlier on a different device.

One model cannot serve all three. Window length, conversion event, and identity-resolution requirements are all different.

Trial-to-Paid Conversion Window Benchmarks by Motion

The top SERP results do not publish this table. I checked. They give you one generic number or skip it entirely. The ranges below reflect what we commonly observe across Hyros customer audits, not an industry-wide median I’m claiming as gospel.

MotionTypical trial lengthTrial-to-paid window observedVerification
Self-serve PLG7 to 14 daysMost pay events land within ~14 days of signupChartMogul / ProfitWell pending
Sales-assisted14 to 30 daysMost closed-won lands ~30 days after signupOpenView / Pendo pending
PLG enterprise30 to 90 days60 to 90+ days from signup to paid upgradeOpenView PLG benchmarks pending

Why this matters: window length is motion-specific, not company-specific. Your attribution window should be at least as long as the conversion window for your motion. Most attribution stacks are configured shorter than the actual window, which is why so much of the revenue disappears. For the economic context, see CAC to LTV Ratio.

The PLG Attribution Problem Competitors Will Not Touch

PLG attribution is not a longer version of self-serve. It’s structurally different.

In a PLG motion, the paid conversion is triggered by an in-product activation event. Not a sales call. An action the user takes inside the product because the product showed them value. First file imported. First report generated. First teammate invited. The activation event is the leading indicator that predicts paid conversion (common pattern across PLG companies; exact correlation is product-specific, worth measuring on your own data).

Let’s imagine the PLG version. A marketing director clicks your Google ad at 11am on Tuesday from her work laptop. She signs up using her work email. The next day she pokes around the product from her phone on the train, doesn’t import any data. Eleven days later your nurture email lands in her inbox at home. She opens it on her personal iPad, clicks into the product, imports a CSV, and the system flags her as activated. Six days later she auto-converts to paid.

The ad platform sees a click and a signup. It does not see the iPad import seventeen days later. It does not see the paid conversion. Three devices. One unbroken intent chain. Without UID-based identity stitching, none of this connects back to the original ad. You kill the budget. The product team gets blamed for an activation funnel that was actually working.

The top three SERP results either address sales-assisted SaaS only or hand-wave at PLG. This is the open lane.

Why Cookie and Pixel Attribution Cannot Survive a 30-Day Trial Window

Transit map line fading out mid-route where cookie attribution expires before the trial converts

This isn’t speculation. This is how the platforms publish their own windows.

Meta’s default is 7-day click, 1-day view (down from 28-day click in late 2020). If your sales-assisted trial converts on day 22, Meta’s pixel already dropped the click. Zero attribution.

Google Ads defaults to 30-day click, configurable to 90 days. Survives a self-serve trial. Does not survive a PLG enterprise trial that converts on day 75.

LinkedIn defaults to 30-day click, 7-day view, configurable to 180 days. Better than Meta, but not enough for enterprise B2B SaaS cycles past 6 months. See LinkedIn Ads Attribution.

And those are just the published windows. The cookie often dies long before then. Safari ITP caps third-party cookies at 7 days. Firefox ETP and Chrome’s deprecation cut effective lifetimes well below 30 days for many users. Trial users routinely switch from marketing-site device (laptop, work email) to product device (mobile, personal email). Incognito sessions, cookie clears, and app reinstalls each sever the chain.

Even if Google Ads’ 30-day window technically covers a self-serve trial, the cookie itself is often gone before the trial converts. See B2B Attribution for the same logic applied to longer cycles.

The UID-Based Fix: Identity Stitching Across the Full Trial Window

Transit map showing one continuous line connecting laptop, phone, and desktop stations via a single rider identity

UID-based attribution ties every event to a stable user identifier, typically a hashed email. When a user signs up, the system converts their email into a UID. From that moment, every event the user generates (marketing site, product, email click, different device) stitches back to the same UID. The original ad click binds to the same UID, even if it happened on a different device weeks earlier.

UID survives incognito sessions, app reinstalls, cookie clears, work-to-personal email switches (when the user logs in with the same email), and cross-device journeys. It does not survive a user opening a second account under a different email. Nothing does. But the trial-to-paid journeys that happen under one identity over 60 days are exactly what UID was designed to hold together.

When I was running ads for Hyros, this is the problem I built the platform around. Cookie attribution surrendered at day 7 to day 30. UID held until the user left the product. That gap is where most SaaS attribution loses 25 to 50% of its ad-driven revenue (observed range in customer audits, not a published industry stat).

Hyros tracks 4,000+ customers and $3.5 billion+ in tracked revenue. Third-party validation from CheckThat.ai measured a 29-33% gap between Hyros’s tracked conversions and native platform reporting.

Setting Up Trial-to-Paid Attribution: A Checklist by Motion

A self-serve checklist will not work for PLG. Here’s the per-motion version.

Self-serve. Email-based identity capture at signup. Event tracking for first-charge and end-of-trial. UID stitching across marketing site and product (same UID on the ad-click landing page and inside the product). Attribution window ≥ 30 days; 60 is safer.

Sales-assisted. Identity capture at signup. CRM integration so the HubSpot or Salesforce lead record holds the click ID and the UID. Closed-won event pushed back to ad platforms via offline conversion APIs (Google enhanced conversions for leads, Meta CAPI, LinkedIn offline conversions). Credit-split logic between ad-driven signup and sales-driven close. Attribution window ≥ 60 days; 90 if you can.

PLG. Identity capture at signup. Activation-event tracking inside the product, defined precisely (“first file imported” is not “first session”). Ad-spend attribution tied to PQL signals, not just signup or paid conversion. UID stitching across marketing site, product, and email (nurture flows do a disproportionate amount of the re-engagement). Attribution window ≥ 90 days; 180 for enterprise PLG.

For the CAC math that depends on this attribution actually working, see CAC to LTV Ratio.

How to Optimize Ad Spend on Activation Signals, Not Just Signups

Transit map with activation milestone stops marked along the route from signup toward paid conversion

Once trial-to-paid attribution is wired up, the next move is feeding activation signals back into ad platforms as conversion events. Every ad platform optimizes for whatever event you send it. Send signup events and the algorithm finds you more people who sign up. Some convert. Most don’t. Send activation events and the algorithm finds you people who actually use the product. Activation rate climbs. Trial-to-paid rate climbs with it. Your effective CAC drops.

The mechanics:

  • Define your activation event. First import. First invite. First integration. First report. The right event is the one that predicts paid conversion.
  • Send activation events as offline conversions back to Meta CAPI and Google enhanced conversions.
  • Use UID matching to attribute those events to the original ad click, weeks earlier, on a different device.
  • Set the bid optimization target to the activation event, not the signup.

Optimizing on signups produces a flood of trial users who never log in twice. Optimizing on activation produces paid customers. For the LTV side of the equation, see Customer Lifetime Value.

How to Audit Your Own SaaS Attribution This Week (4-Step Check)

Any SaaS marketer can run this in under an hour. No new tool needed. Look in two places and subtract.

Step 1. Pull your ad platform’s reported paid-conversion count for the last 90 days. Meta, Google, LinkedIn, whichever platforms run your trial acquisition. Add them up.

Step 2. Pull your billing system’s actual paid-conversion count for the same period. Stripe, Recurly, Chargebee. Filter to new paid conversions from trials.

Step 3. Calculate the gap. Subtract platform-reported from billing-actual. Divide by billing-actual. From Hyros customer audits, 25 to 50%+ underreporting is the typical range across motions (observed range, not a published industry median). CheckThat.ai’s independent measurement anchored this at 29-33%.

Step 4. Segment the gap by motion. The worst gaps land in whichever motion has the longest trial window. If you run pure self-serve with a 7-day trial, your gap will be smaller. If you run PLG enterprise, your gap will be the size of a separate business.

The gap exists. The only question is how big it is for your motion. For the long-cycle B2B audit framework, see B2B Attribution.

FAQ

What is SaaS trial-to-paid attribution?

Tracking the ad click that drove a free trial signup all the way through to the paid conversion event, sometimes 14 to 90+ days later. Window length varies by motion: self-serve around 14 days, sales-assisted around 30 days, PLG enterprise 60 to 90+ days (primary sources pending verification).

Why does my ad platform show zero paid conversions even though my billing shows revenue?

The platform’s attribution window expired before the paid conversion happened. Meta defaults to 7-day click. Google to 30-day. If your trial-to-paid window is 30+ days, most paid conversions land outside the reporting window. The revenue still happened. The campaign just gets unfairly cut because the dashboard says it produced nothing.

What attribution window should I set for SaaS?

Longer than your trial-to-paid conversion window. Self-serve PLG: 30 days. Sales-assisted: 60 to 90 days. PLG enterprise: 90 to 180 days. The defaults are wrong for almost every SaaS motion because they were tuned for e-commerce click-to-purchase windows measured in hours, not weeks.

How is PLG attribution different from self-serve SaaS attribution?

In self-serve, the paid conversion is a charge event. In PLG, it’s often triggered by an in-product activation event (first import, first invite, first integration). PLG attribution has to follow a user from ad click through signup, trial use, activation, and finally paid upgrade. Most cookie-based tools track sessions, not identities tied to product behavior.

Can Hyros handle PLG and sales-assisted SaaS motions?

Hyros uses UID-based identity stitching that survives device switches, browser changes, and incognito sessions. Attribution windows extend to 365 days, covering self-serve, sales-assisted, and most PLG enterprise cycles. It captures in-product events and ties them back to the original ad click weeks or months earlier.

How much SaaS ad-driven revenue is typically lost to attribution gaps?

Across the Hyros customer base, we commonly observe 25 to 50% of ad-driven paid conversions go uncredited in native platform reporting (observed range, not a published industry median). CheckThat.ai’s independent measurement anchored this at 29-33%. The worst gaps are in motions with the longest trial windows. For the full SaaS-specific ranges and methodology, see the 2026 attribution benchmarks.

Standalone Summary

SaaS attribution breaks at the trial-to-paid boundary because trial windows run 14 to 90+ days and cookie-based tools surrender inside that window. Three GTM motions break attribution differently: self-serve dies on device switching, sales-assisted credits the sales call instead of the ad, and PLG cannot tie in-product activation events to ad spend weeks earlier. Conversion-window length is motion-specific: self-serve ~14 days, sales-assisted ~30 days, PLG enterprise 60 to 90+ days (primary sources pending). Meta, Google, and LinkedIn windows cannot survive in practice because Safari ITP, Firefox ETP, and device switching cut effective cookie lifetimes well below the published windows. UID-based identity stitching is the only architecture that survives long enough to credit the ad. The most consequential PLG move is optimizing campaigns on activation events instead of signup events. A 4-step audit (platform-reported versus billing-actual, segmented by motion) detects the gap in under an hour.

Hyros uses UID-based identity stitching to track SaaS trial-to-paid conversions across 14 to 365 day windows, even when users switch devices, browsers, and email addresses → Book a demo

Related in This Series

Silo: Audience-Specific Attribution

More from the attribution series:

SAVE MONEY. GROW FASTER. Apply print tracking to your
business with HYROS