Preserved utms exposed which channels churn the fastest

After we moved the first session to the web and preserved utm tags through checkout, it became shockingly clear which channels were producing churny users. Some look great in the install funnel but they had much higher cancellation rates after 14–30 days.

Having utms tied to the subscription record let us stop pouring budget into bad cohorts and focus onboarding improvements for the others.

How do you store and use utm data to tie cancellations back to channels in your stack?

We appended utm params to the subscription record and synced that with our analytics.

Seeing cancellations by utm_source changed our ad spend overnight. It was easy to implement when the funnel lived on the web.

I pushed the approach via the Web2Wave web hooks.

Preserving utm lets you compute true ROAS tied to churn. We stopped two campaigns that had good CPAs but terrible LTV.

Web funnels make preserving utms trivial so you can close the loop quickly.

We store utm values at signup and then attach them to subscription events.

That let us see which creatives sent the worst cohorts. Saved money fast.

utm saved us

we cut two bad channels

Make utm preservation a first-class event. Persist utm_source, utm_campaign, and a campaign id on the user/subscription. Then compute churn rate and LTV by campaign cohort.

Beware of click injection and mismatched attribution windows. Use consistent matching rules and keep the attribution model documented so you can defend budget shifts.

We found one network that had cheap installs but the worst 14‑day churn. Pulling utm cohorts showed the creative promised features we did not deliver.

We changed creative and onboarding messaging and improved retention.

We tie utm to the user and then to cancellations.

It exposed one agency campaign that looked good at install but killed LTV.

If you dont have full tracking, start with utm_source only.

It already gives useful signals.