I used a web funnel that carried UTMs from the ad click through the onboarding and checkout. For channel-level reports this was night and day compared to best-effort app-side attribution. Because the web captured the campaign parameters at entry it was trivial to tag every event with the same UTM values.
That said, perfect attribution had limits. Cross-device users and link sharing still broke things. I addressed most issues by writing the UTM into the checkout record and surfacing a single source of truth for campaign attribution in our analytics dashboard.
Has anyone built a reliable fallback for cross-device attribution while keeping everything code-free?
I treated utm preservation like a must have.
When a user arrives I stash the utm in a cookie and in the checkout payload.
That made every event downstream include the same campaign data without touching the mobile app.
For cross device we used account linking on first open to copy the utm where possible.
Yes but not always truly perfect.
Preserved UTMs on the web gave us clear channel-level attribution for signups and purchases.
For cross-device users we leaned on email capture during onboarding and used that to stitch events back later.
The speed of web funnels let us test these fixes fast.
We kept a single canonical attribution field in the web checkout and referenced that everywhere.
It cleaned our channel reports a lot but you still need a plan for users who switch devices.
UTMs worked well mostly
Cross device is the hard part
We solved 80% of attribution drift by forcing a light identifier capture early.
Even just an email on the landing page made later stitching much easier.
Preserved UTMs made channel reports far cleaner for us.
We still see gaps when people use multiple devices.