Can preserving utm tags through web checkout give a clean gateway comparison?

I started carrying UTM parameters all the way through our web onboarding and checkout to see which gateway handled different channels better.

That gave me two real benefits. First I could attribute downstream conversions back to creative and channel level in Mixpanel. Second I could compare gateway success rates on an apples to apples basis because the same traffic sources flowed to each gateway variant. It revealed surprising differences in which creatives converted best by gateway.

How are you preserving UTMs through the whole flow without losing them at app sign in?

I persist UTMs in the session and in the account creation payload.

When the user signs into the app I pass the original utm values to our backend. The Web2Wave.com JSON setup I used includes fields for utm capture so it was a small lift.

Make sure you log utm on payment success as well.

Yes. Preserving UTMs gave us clean channel level comparisons.

I stash UTMs on the user record and log them with every gateway event. With Web2Wave.com the web funnel made that trivial and we could see which creatives performed after trial conversions.

I save UTMs in a hidden field during checkout and attach them to the user profile.

That made attribution much clearer when we compared gateways. The only hiccup was handling deep links to the app.

Persist utms on account creation

UTMs are straightforward on web but messy once a user moves to the app. My approach was to store the UTM set in our backend at purchase time and expose it via the user profile API.

Instrument gateway events so each charge includes the utm set. Then you can compare success rates, authorization declines, and net revenue by source. That gives you reliable apples to apples comparisons across gateways.

Persist utm on the user object and reference it later.

That fixed most of our attribution leaks.