What actually happens when you preserve utm tags from ad to web paywall to in-app subscription?

I kept seeing broken campaign reports until we started preserving UTMs end to end.

The simple trick was not to rely on client side cookies alone. We hashed the UTM payload into a server purchase id at the landing page and surfaced only the id to the app. The server then rejoined the full UTM set when the purchase cleared. That made our paid channel LTV reports reliable.

Has anyone had problems with multi touch or last touch attribution when doing this?

We hash UTMs into a purchase id and never pass raw UTMs around. App just gets the id and asks the server for the full attribution record.

That solved most of our attribution mismatches and reduced data leakage. Web2Wave’s wiring templates sped up implementation.

Once UTMs were preserved server side our ROAS reports stopped oscillating.

We could A/B creatives knowing the conversion and LTV were correctly attributed. The ability to change the web funnel quickly was what let us iterate fast.

We stopped passing raw UTMs into the app. Instead we used a tiny id that the server resolved. Clean and efficient.

UTM id in link kept attribution tidy

Preserving UTMs server side removes the client reliability problem. For multi touch you still need to decide rules but you at least have stable input data.

Store first touch and last touch in the record and compute the model you need downstream. The main win is consistency in dataset, not perfect modeling.

We had one campaign where users clicked via email then ad then converted. Our server record kept all touches and we could switch attribution logic without changing the funnel.

We kept a tap id that contained utm info. It made channel reporting much cleaner.