PLG Attribution: Track Which Channels Drive Free-to-Paid Conversions in Product-Led Growth
PLG companies lose attribution at the free-to-paid upgrade step 60% of the time. How to track the full click → free signup → paid upgrade journey and see which channel drives paying customers, not just trials.
Muzahid Maruf, Founder

PLG Attribution: Track Which Channels Drive Free-to-Paid Conversions in Product-Led Growth
PLG companies lose attribution at the free-to-paid upgrade step 60% of the time. How to track the full click → free signup → paid upgrade journey and see which channel drives paying customers, not just trials.
PLG companies with two-step funnels (click → free signup → paid upgrade) lose attribution at the second step 60% of the time, because the tool that tracked the click (Bitly, UTM) is not connected to the tool that tracked the upgrade (Stripe). PLG companies have an attribution gap that standard tools are not built to see. A user clicks a Twitter/X link in week one, signs up for a free account, uses the product for 22 days, and upgrades to paid in week four. Most attribution platforms record the click and the signup as the conversion event and stop there — so the Stripe charge that happened 22 days later gets attributed to "Direct" because the cookie has expired or the user returned via a bookmarked URL. In product-led growth, the conversion that matters is the upgrade, not the signup — and attributing the upgrade to the channel that drove the original click requires a different technical setup than standard analytics assumes.
Key takeaway
Attributing the free signup is easy. Attributing the Stripe upgrade 3–6 weeks later to the channel that drove the original click is the PLG attribution problem. Solving it requires a persistent first-party identifier that bridges the gap between the signup event and the payment event — and most analytics tools do not do this by default.
Why This Matters for Your Revenue
In a PLG motion, the channel that drives the most signups is not necessarily the channel that drives the most revenue. A viral growth loop might generate thousands of free signups from users who never upgrade. A niche newsletter mention might drive 40 signups of which 35 upgrade within 30 days. If you optimise for signup volume — which is what most PLG analytics setups do — you will invest in the viral loop and underinvest in the newsletter.
Revenue per click, not signups per click
The correct metric is revenue per click, not signups per click. And revenue per click for a PLG product requires connecting the original click to the eventual Stripe charge, not just to the signup form submission. Teams that make this connection find that their channel mix looks very different from what their signup data suggests — often discovering that small, high-intent channels (community referrals, niche content, partner integrations) generate 4–8× the revenue per click of broad channels that dominate signup counts.
Channels you are under- and over-investing in
Based on TrackRev platform data across PLG SaaS workspaces in 2026, teams that attribute the paid upgrade (not just the signup) to the original channel discover on average 3.1 channels they were under-investing in and 1.8 channels they were over-investing in relative to their actual revenue contribution.
The PLG attribution gap — why standard tools miss it
Standard attribution platforms are built for single-step conversions: click, then buy. The 22-day gap between signup and upgrade breaks three assumptions that most tools make.
Assumption 1 — Conversion happens within the session
E-commerce attribution works because the purchase happens in the same session as the click (or within a few hours). PLG attribution has to survive a gap of days or weeks. During that gap, cookies expire, users return from different devices, and the original click context is lost unless there is a persistent identifier anchored to the user's account.
Assumption 2 — The signup is the conversion
Most analytics platforms define the conversion goal as the signup form submission. For PLG, this is the wrong event. A signup that never upgrades is a cost, not a conversion. The true conversion is the Stripe charge, and attributing it back to the original click requires the analytics tool to hold an open attribution chain from first touch through signup through the upgrade event days or weeks later.
Assumption 3 — One user, one session
PLG products are often evaluated by a team. The individual who signs up for a free trial may not be the one who enters payment details. If attribution anchors only to the browser that completed the signup, the upgrade — which often comes from a different device or a different team member's login — will be misattributed. Account-level attribution (anchored to the workspace or team ID, not a single browser) is the correct unit for B2B PLG products.
The PLG attribution setup that works
These are the four configuration steps that bridge the PLG attribution gap from first click to Stripe upgrade.
Step 1 — Assign a persistent user ID at signup
The moment a user creates a free account, assign them a persistent identifier that lives in your database — not just a browser cookie. Pass this ID to your Stripe customer metadata (metadata.trackrev_vid or similar) so that when the user upgrades, the Stripe webhook fires with an identifier that can be matched back to the original click. This is the bridge between the analytics world and the payment world.
Step 2 — Capture the originating click at signup time
When the free signup form is submitted, read the first-touch click data from your first-party cookie and write it to the user's account record alongside their user ID. Fields to capture: utm_source, utm_medium, utm_campaign, utm_content, and the TrackRev link ID if a tracking link was the entry point. These fields persist on the user object regardless of what happens to the browser after signup.
Step 3 — Set a PLG-appropriate attribution window
For most PLG products, the upgrade decision happens within 60 days of signup. Set your attribution window to 60 days as a default, and extend to 90 days if your product has a longer natural activation period. The window starts at the first click, not at the signup — so a user who clicks on day 1, signs up on day 7, and upgrades on day 45 falls within a 60-day window. See how to set your attribution window for the configuration steps.
Step 4 — Create unique tracking links for every acquisition channel
The attribution setup only works if the original click carries a channel identifier. Use a unique tracking link for every place you post — product comparison sites, integration marketplaces, review platforms, community forums, newsletter placements. Each link is associated with a channel and a campaign, and that association persists through signup to upgrade. The UTM builder standardises naming across channels so the channel-level data is comparable.
PLG channel performance — signup vs upgrade
The gap between signup rate and upgrade rate by channel is where the PLG attribution insight lives. Channels that look weak on signups often look strong on upgrades — and vice versa. Based on TrackRev PLG workspace data, here is how common PLG channels compare.
| Channel | Free signups per 100 clicks | Upgrade rate (within 60 days) | Revenue per click |
|---|---|---|---|
| Community referral (Slack/Discord) | 12 | 41% | $5.80 |
| Integration marketplace listing | 9 | 38% | $4.90 |
| Niche newsletter placement | 8 | 35% | $4.20 |
| G2 / Capterra profile | 11 | 29% | $3.70 |
| Organic search (product-intent keyword) | 14 | 22% | $3.10 |
| Product Hunt launch | 31 | 11% | $2.40 |
| Twitter/X viral post | 18 | 8% | $1.20 |
| Paid social (broad) | 22 | 5% | $0.85 |
Based on TrackRev platform data, 2026. PLG SaaS workspaces with free-tier products; upgrade = first Stripe charge. Median values across qualifying workspaces.
Free-to-paid conversion timeline by channel
How long does it take for different channels to produce upgrades? This matters for setting your attribution window and for understanding when to expect revenue from a given channel investment.
| Channel | Median days: click → signup | Median days: signup → upgrade | Total click → upgrade |
|---|---|---|---|
| Community referral | 1 | 9 | 10 days |
| Integration marketplace | 2 | 14 | 16 days |
| Niche newsletter | 1 | 18 | 19 days |
| G2 / Capterra | 3 | 21 | 24 days |
| Organic search | 4 | 28 | 32 days |
| Product Hunt | 1 | 22 | 23 days |
| Twitter/X | 3 | 31 | 34 days |
| Paid social | 2 | 38 | 40 days |
TrackRev platform data, 2026. PLG SaaS workspaces. Median days from first attributed click to signup, and from signup to first Stripe upgrade charge.
PartnerStack's partner ecosystem research shows that integration-channel leads in PLG products convert to paid at 2.4× the rate of direct-acquisition leads, making the integration marketplace one of the highest-ROI PLG acquisition channels when measured on upgrade rate rather than signup volume. See the PartnerStack resources library for the full PLG partner data.
Ahrefs' SaaS content research identifies product-intent keywords (searches like "[tool] alternative" and "[tool] pricing") as converting to free trial at 3× the rate of informational keywords, with upgrade rates that are also significantly higher — consistent with the organic search row in the table above. Full data at the Ahrefs blog.
HubSpot Research's PLG benchmarking shows that the median PLG company achieves a free-to-paid conversion rate of 4–8% within 90 days. Products that track upgrade attribution by channel outperform this range by an average of 2.1 percentage points because they concentrate acquisition spend on high-upgrade-rate channels. See HubSpot's statistics hub for current figures.
The upgrade rate audit
Before changing anything in your acquisition strategy, run an upgrade-rate audit by channel for the last 90 days. For each channel, count the free signups and count the Stripe upgrades from those signups. The channel with the highest upgrade rate — not the highest signup count — is where your next acquisition dollar should go.
Track free-to-paid conversions with TrackRev
TrackRev's tracking links capture the originating click at the session level, and a first-party cookie preserves that identity through the signup. When you write the click identifier to the Stripe customer metadata at signup, TrackRev matches the eventual upgrade event back to the original channel — closing the PLG attribution loop. The result is a channel-level table showing not just signup traffic but Stripe revenue per channel, including the revenue from users who upgraded weeks after signing up. See analytics for the dashboard view, and Stripe revenue attribution by marketing channel for the setup guide.
When NOT to use TrackRev
Two PLG scenarios limit the value of click-based upgrade attribution.
Sales-gated upgrades
If your PLG product's upgrade is gated behind a sales call rather than a self-serve Stripe checkout, the revenue event is not a trackable click — it is a CRM deal. TrackRev captures the digital touchpoints leading to the sales call, but the upgrade attribution requires CRM-stage data to complete the picture.
Missing activation signals
If your free tier has no natural activation signal and users upgrade randomly with no behavioural pattern, attribution windows will be very noisy. In this case, improving the product's activation flow is a higher-leverage activity than improving attribution precision.
Frequently asked questions
- What is PLG attribution and why is it different from standard attribution?
- PLG attribution tracks which acquisition channels drive free-to-paid upgrades, not just free signups. Standard attribution tools count the signup as the conversion and stop. PLG attribution keeps the chain open from the original click through the signup and through the eventual Stripe payment, which may happen weeks later. This requires a persistent user identifier that survives cookie expiry and bridges the analytics and payment systems.
- How long should a PLG attribution window be?
- 60 days is the right starting point for most PLG products. This captures the majority of upgrades based on TrackRev platform data, where the median signup-to-upgrade time is 22 days and the 90th percentile is 51 days. Products with a longer natural trial period or a more complex activation flow should extend to 90 days.
- How do I attribute the upgrade in Stripe back to the original acquisition channel?
- The recommended method is to write the first-touch click data (UTM parameters and TrackRev link ID) to the Stripe customer metadata at signup. When the upgrade webhook fires, TrackRev reads this metadata and credits the original channel. The key is capturing click data at signup time and persisting it on the Stripe customer object — not relying on a browser cookie to still be present weeks later when the upgrade happens.
- Which PLG acquisition channels have the highest free-to-paid upgrade rates?
- Based on TrackRev platform data, community referrals (Slack and Discord channels) and integration marketplace listings have the highest upgrade rates at 38–41% within 60 days. These channels attract users who are already in the buying context and have often seen the product recommended by someone they trust, which drives much faster and higher upgrade rates than broad acquisition channels like paid social or viral social posts.