Open Tracked/Guides/Cross session user stitching

Cross session user stitching

Stitching joins the sessions of one visitor into one story. It needs a stable identifier and a plan for when that identifier disappears.

4 min read · Updated October 26, 2026

SSession 1: anonymousLLogin or e-mail givenSSession 2 and 3 joined
In this guide
Key takeaways
  • Stitching links separate sessions of the same visitor, including an anonymous visit with a later known one.
  • It depends on a stable identifier: a first-party cookie, a user ID or hashed e-mail, and a way to restore it if the cookie is lost.
  • In Open Tracked, the Data Store, Cookie Keeper and Enricher do this on your tagging server, with consent.

A visitor lands from an ad on Monday, leaves, returns from e-mail on Thursday and buys on Saturday. Without stitching these are three unrelated sessions, and the sale looks as if it came from nowhere. With stitching, the three are one journey, and the ad that started it gets its due. This page explains how stitching works, what breaks it and what you can do. It is the within-device cousin of cross-device tracking, and it builds on first-party data.

How stitching works

1

Give each browser an identifier

A first-party cookie, such as the GA4 client ID or FPID.

2

Keep it

The cookie must last between visits. Safari shortens script-set cookies. See Safari ITP.

3

Link to a known person when you can

At login, checkout or a form, tie the cookie ID to a customer ID or hashed e-mail.

4

Join earlier sessions

Every session that carried the same cookie ID becomes part of that person's history.

5

Use the result

Attribution, audiences and reports look at the whole journey.

Trusted

Brands that grow on cleaner data

Stores and agencies use Open Tracked to see which ads earn the sale.

What breaks it

SymptomThe cookie expires
Likely causeSafari or a privacy tool deleted it.
FixSet it from your server and restore it. Open Tracked's Cookie Keeper (all plans) restores platform cookies from the Data Store.
SymptomA new browser or device
Likely causeA different cookie.
FixLink through login or e-mail.
SymptomPrivate browsing
Likely causeCookies vanish at the end of the session.
FixAccept the loss, or link at login.
SymptomConsent is declined
Likely causeYou may not store the identifier.
FixRespect it. Do not stitch without a lawful basis.
SymptomTwo people share a device
Likely causeOne cookie, two people.
FixPrefer a login-based key where you have one.

Where the server helps

01

Cookies from your domain

A server-set first-party cookie lasts longer than a script cookie.

02

The Data Store

Keeps hashed identifiers and cookie values on your tagging server for up to 400 days.

03

The Enricher

Adds stored identifiers to later events, so a returning visitor is linked to what they gave earlier. Choose the key: GA4 client ID, a User ID you send or a cookie of your site.

04

A shared event ID

Keeps browser and server copies of the same action from splitting a journey in two.

Ask AI

Ask Ari instead of digging through reports

Ari reads your tracking and ad data and answers in plain words.

Test your stitching

  1. Visit your site from a tracked link and note the cookie IDs.
  2. Log in or submit a form with a test e-mail.
  3. Clear the cookies, return from another link and log in again.
  4. Check in your analytics or CRM that the sessions belong to one person.
  5. Check in GTM Preview that the Enricher added the stored data to a browse-only visit.
0 of 6 done

A realistic example

A subscription box company sees that most buyers visit three times before buying, usually across ten days. Safari users appear as new visitors on each visit, because script cookies expire after about a week and some links lose their parameters. The company sets its main cookies from its tagging subdomain, uses Cookie Keeper to restore platform cookies for returning visitors, and links the cookie to a customer ID when someone signs up for the newsletter. Reports now show multi-visit journeys for far more Safari visitors, and the ad platforms see fewer purchases attributed to "direct". The change took an afternoon of set-up and a week of testing, and it fixed a distortion that had affected every report for months.

Data in, clean out

Raw events in. Clean events out.

Open Tracked collects each event on your own domain, removes the noise and sends what is left to Meta, Google Ads, TikTok.

Frequently asked questions

What is user stitching?

Linking multiple sessions of the same visitor, including anonymous and known visits, into one profile.

Why do sessions fail to stitch?

Cookies expire or are deleted, visitors change browsers or devices, or consent is declined.

How does a server help?

It sets longer-lived first-party cookies and keeps identifiers in a store so it can restore them.

Is stitching allowed?

With a lawful basis and, for advertising, usually consent.

Does Open Tracked do stitching?

Its Data Store, Cookie Keeper and Enricher restore cookies and add stored identifiers to later events, on every plan.

Do I need spreadsheets to read my results?

No. Once tracking is live, the Open Tracked analytics shows spend, revenue, ROAS and profit, and you can ask Ari, the built-in AI assistant, questions about your own numbers in plain words. Ari's allowance depends on your analytics plan.

Is Open Tracked different from Open Track or Open Space Track?

No. Open Tracked is the official name of our server-side tracking platform, and the website is opentracked.io. Many people search for it as Open Track, OpenTrack or Open Space Track. All of them lead to the same product: server-side Google Tag Manager hosting, first-party analytics and a CRM pipeline.

Fix your tracking at the source

Open Tracked hosts your server-side Tag Manager, keeps first-party cookies alive and shows what each ad is really worth.

Open Tracked
Written by

The Open Tracked team

We build Open Tracked: server-side tracking hosting, analytics and the tools around them, for stores that spend on ads. Questions about this guide, or an idea for the next one?

Write to us Read the docs

Was this article helpful?

Comments

Loading comments...

Turn better tracking into better marketing performance

Start free