A user visits your website, browses your product pages, and leaves without converting. Three days later they install your app and make a purchase. Was the website visit responsible for the install? Which page did they visit? Did they click a specific call-to-action?
These questions matter for understanding your funnel and optimizing your marketing. Answering them requires bridging the attribution gap between web and app, two separate environments with different identifier systems, different tracking mechanisms, and increasingly different privacy constraints.
Why Web-to-App Attribution Is Hard
On web, tracking traditionally relies on cookies. On mobile apps, tracking relies on device identifiers (IDFA, AAID) and SDK events. These two systems do not naturally connect.
When a user moves from your website to your app, they cross a gap:
- The browser does not share cookies with apps
- Apps do not share device identifiers with the browser (and those identifiers are increasingly restricted)
- The install process itself (going to the App Store or Play Store) breaks the tracking chain
- On iOS, Safari Intelligent Tracking Prevention (ITP) limits first-party cookie persistence to 7 days
This gap means that even when a user clearly came from your website, the attribution chain breaks at the store transition.
Method 1: Deep Link-Based Attribution (The Most Reliable Approach)
The most accurate web-to-app attribution uses a tracked deep link that carries attribution parameters through the install process. This is called "deferred deep linking."
How it works:
- A user visits your website and clicks a "Download the app" button or banner.
- The button links to a deep link URL (e.g.,
https://link.tolinku.com/your-app/campaign?src=website&page=pricing) instead of directly to the App Store. - Tolinku (or your deep link platform) records the click with all the attribution parameters.
- The user is redirected to the appropriate app store.
- After the user installs and opens the app, the SDK retrieves the deferred deep link data, including all the attribution parameters from the click.
- Your app passes this data to your analytics system, completing the attribution chain.
This method is reliable, requires no fingerprinting, and works within the privacy constraints of both iOS and Android. The click record is stored server-side, and the SDK retrieves it using a combination of time-windowed matching and, where available, device identifiers.
For implementation details, see the Tolinku deep linking documentation and the deferred deep linking guide.
Limitations:
Deep link-based attribution only captures users who clicked a tracked link. Users who typed your URL directly, navigated from a bookmark, or arrived from an untracked source will not have a click record to match against.
Method 2: Probabilistic Fingerprinting
Before the privacy restrictions tightened, probabilistic fingerprinting was the standard fallback for web-to-app attribution. It works by matching web visitors to app installs based on a combination of signals: IP address, user agent, device type, screen resolution, language settings, and timezone.
If a user visits your website on a device with a specific fingerprint, and an install occurs shortly afterward from a device with the same fingerprint, the attribution platform makes a probabilistic match.
Current viability:
Fingerprinting has become significantly less reliable and more legally contentious:
- iOS/Safari: Safari's ITP prevents many fingerprinting signals. Apple explicitly prohibits fingerprinting in its App Store guidelines and ATT framework documentation.
- Android/Chrome: Google has taken a less aggressive stance on fingerprinting than Apple, but privacy regulations (GDPR in particular) treat fingerprinting as a form of personal data processing that requires a legitimate basis.
- Regulatory risk: Under GDPR, fingerprinting without explicit consent is legally questionable. Regulators in several EU member states have found that IP-based matching constitutes personal data processing.
Pure probabilistic fingerprinting is declining in reliability and increasing in legal risk. It is not a foundation to build your web-to-app attribution on for the long term.
Method 3: First-Party Cookie Matching
For apps that have a web presence and a native authentication system, first-party cookie matching offers a privacy-compliant, high-accuracy option.
How it works:
When an authenticated user visits your website, you set a first-party cookie containing a hashed user identifier. When that user later installs your app and logs in with the same account, you match the web session to the app install using the shared user ID.
This only works for authenticated users, which is a significant limitation. But for apps where users typically have accounts and are logged in on both web and mobile, this is the most accurate method available and it requires no fingerprinting or device identifier matching.
Implementation:
You need to:
- Set a persistent first-party cookie with a stable identifier when users are authenticated on web
- Store web session and attribution data server-side, keyed to the user ID
- When users log in on mobile, retrieve the web attribution data for their account and record it as their acquisition source
This approach survives ITP (because it is first-party data), is GDPR-compliant (because it is within the scope of your existing relationship with the user), and provides clean deterministic matching.
Limitation: Only works for users who create accounts or are otherwise authenticated on both platforms.
Method 4: StoreKit Ad Network (for Safari-to-App Store)
For iOS specifically, SKAdNetwork 5.0 introduced web-to-app attribution through Safari. This lets attribution events from clicks on web pages in Safari trigger SKAN attribution postbacks.
This is covered in more depth in the SKAdNetwork and SKAN 5.0 guide. The short version: if users click a tracked link from Safari to the App Store, SKAN can attribute that click without any fingerprinting, using Apple's privacy-preserving framework.
Method 5: UTM Parameters + App Analytics
The simplest approach, and often overlooked: if users click a deep link from your website into your app (rather than a store link), you can pass UTM parameters or custom attribution data directly through the link. The app receives the parameters, logs them as the acquisition source, and attributes the session accordingly.
This does not work for new installs (the user does not have the app yet), but it is very effective for web-to-app sessions with existing users. If you have a "Continue in app" flow or a smart banner prompting existing users to switch to your app, UTM-tagged deep links give you clean attribution for those sessions.
Tolinku's Web-to-App Attribution
Tolinku's deep link infrastructure handles the deferred deep linking flow described in Method 1 above. When you create a link in Tolinku and place it on your website, every click is tracked with the full referral context. After a user installs your app and the Tolinku SDK initializes, it retrieves the deferred link data and surfaces the attribution parameters to your app.
This means you can answer questions like:
- Which website pages are driving the most installs?
- Which calls-to-action convert best?
- How long is the web-to-install consideration cycle for users who start on the website?
For more on how Tolinku handles this, see the analytics features page and attribution documentation.
Building a Reliable Web-to-App Measurement Setup
No single method covers every case. A robust web-to-app attribution setup uses a layered approach:
Deep links for all web-to-store CTAs. Every button, banner, or link that points users toward your app store should go through a tracked deep link. This is the highest-quality signal.
First-party matching for authenticated users. If you have a web login flow, store attribution data against the user account and retrieve it when users authenticate on mobile.
SKAN 5.0 for Safari-to-App Store flows where you cannot use deep links (some ad placements, for example).
UTM parameters for existing users who switch from web to app in a single session.
Model the gap. You will not capture 100% of web-driven installs. Use modeling to estimate the share of organic installs that were influenced by web traffic. Comparing install rates in cohorts where web traffic increased can give you a directional answer.
The goal is not perfect attribution (it does not exist), but enough signal to make confident decisions about web investment and its contribution to app growth.
Common Mistakes
Using untracked store links. Putting a direct App Store or Google Play URL on your website loses all attribution data. Every web CTA pointing to the store should go through a tracked deep link.
Ignoring the consideration cycle. If your users visit the website multiple times over days before installing, a short attribution window will miss many of the web-influenced installs. Match your window to your actual funnel length.
Treating web and app analytics as separate silos. Web analytics tools and mobile analytics tools need to share attribution context for web-to-app funnels to be visible. If they are not sharing data, you will consistently undervalue your website's contribution to app growth.
Relying solely on fingerprinting. For the reasons described above, this is increasingly unreliable and legally risky.
Further Reading
Get deep linking tips in your inbox
One email per week. No spam.