Deeplinkly
All articles
Deep LinkingReferral Marketing

App Referral Deep Links: Track Every Invite From Share to Revenue

Published August 16, 2026·16 min read·By Sahil Asopa
App referral journey from invite through installation to a verified reward

Your referral dashboard says a customer shared an invite. The app store says another install happened. Your backend says a new account converted. Yet nobody can prove that all three events belong to the same journey, so the advocate gets no reward—or the wrong person gets one. A reliable app referral flow closes that gap without making a raw referral code the source of truth.

This guide maps the system from share to qualified conversion. It shows product and engineering teams what to track, where referral context disappears, how deferred deep links restore it, and how to make rewards auditable rather than hopeful.

What is app referral tracking?

App referral tracking connects a unique invitation to the referred user’s click, app open or install, account creation, qualifying action, and reward. A production implementation uses a deep link for routing and context, then relies on a server-side referral record to validate ownership and issue the reward exactly once.

That distinction matters. A referral link is the transport mechanism; a referral program is the business system around it. The latter also needs eligibility rules, reward state, fraud controls, attribution precedence, analytics, and a support trail.

An app referral journey usually has two people:

The valuable outcome is rarely the click or install alone. It may be a verified signup, first order, completed ride, paid subscription, funded account, or another activation event that has real value to the business.

Why app referral links break at the install step

When the app is already installed, an HTTPS link can open it and pass routing data. Apple explains that Universal Links establish a secure relationship between a website and its app; Android uses verified App Links for the equivalent installed-app handoff.

The uninstalled path is different. The operating system can send the visitor to a website or app store, but the newly installed app does not automatically receive every parameter from the original browser tap. That discontinuity is the install gap.

Visitor stateDesired resultWhat the link layer must do
App installedOpen the intended invite or signup screenRoute with a Universal Link or Android App Link
App not installedSend the user to the correct store, then restore the invite after first openCapture referral context before the store and resolve it after install
Desktop clickExplain the offer and move the user to mobileProvide a web fallback, QR code, or account-based handoff
Link cannot be resolvedLet the user continue without a dead endOpen a safe landing page and offer manual code entry

On Android, the Google Play Install Referrer API can return the referrer URL and click and installation timestamps. It is a useful deterministic signal for Play installs, but it is not a complete cross-platform referral backend. iOS, desktop-to-mobile journeys, existing users, non-Play distribution, late signups, reward accounting, and support disputes still need explicit application logic.

A deferred deep link bridges the store handoff: it records the click context, redirects to the store, and lets the app resolve eligible context on first open. For a deeper implementation view, see the deferred deep link implementation and testing guide.

Map the complete app referral lifecycle first

Do not start by choosing a reward amount or adding a Share button. Start with a state machine that both product and engineering agree on.

  1. Eligible advocate: a signed-in user becomes allowed to refer.
  2. Link issued: the backend creates or returns an opaque referral token.
  3. Invite shared: the app invokes the native share sheet with a clear message and HTTPS link.
  4. Link clicked: the redirect service records the token, time, campaign, and permitted technical context.
  5. Destination resolved: an installed app opens directly; otherwise the visitor receives the correct store or web fallback.
  6. Referral claimed: after first open or signup, the app submits the resolved token to the backend.
  7. User qualified: the referred account completes the defined business event.
  8. Reward decided: the backend approves, holds, blocks, reverses, or pays the reward.
  9. Revenue measured: downstream events remain connected to the referral record.

Each transition should create an event with a stable identifier. If the analytics tool reports a referral_click while the rewards database has no matching claim, that should be diagnosable—not silently written off as attribution loss.

Use event names that describe facts, not aspirations:

EventMinimum useful properties
referral_link_createdadvocate ID, referral token ID, program version
referral_invite_sharedtoken ID, share channel if available, timestamp
referral_link_clickedclick ID, token ID, landing platform, timestamp
referral_claimedreferral ID, referred account ID, attribution source
referral_qualifiedreferral ID, qualification event ID, value, timestamp
referral_reward_changedreferral ID, previous state, new state, reason

Avoid putting email addresses, phone numbers, or sequential customer IDs directly in the public URL. Use a random, non-guessable token that the backend maps to the advocate and program version.

Choose a reward trigger that reflects customer value

Paying at install is fast, but it is also easy to exploit and poorly aligned with retention. A better first rule is usually “reward after the referred user completes one verified action.” The right action sits far enough down the funnel to represent value, but early enough that both participants understand the connection.

Examples include:

Keep the reward pending until the action is final enough for your business. Store the exact rule version on every referral so that changing the program next month does not retroactively change old promises.

Referral incentives must remain separate from store manipulation. Google Play prohibits manipulation of ratings, reviews, and install counts, including incentivized reviews and ratings. Apple’s App Review Guidelines also prohibit manipulating reviews, rankings, discovery, or referrals. Reward genuine in-app value, never a positive rating, review, or artificial install.

If creators, ambassadors, or customers receive something of value for an endorsement, disclosure can also matter. The US Federal Trade Commission says a material connection that could affect how people evaluate an endorsement should be disclosed clearly and conspicuously. Apply the rules for every geography where the program operates and involve counsel when incentives or regulated products raise risk.

Referral tracking architecture from link creation through validation and reward ledger

Build a reliable app referral architecture

A robust implementation separates routing, attribution, referral ownership, and rewards. Combining all four in a client-side callback makes happy-path demos easy and production disputes inevitable.

1. Generate an opaque link on the backend

Create a referral token after authenticating the advocate. Store the token hash or protected value with advocate_user_id, program_version, created_at, expires_at, and status. Return a branded HTTPS URL such as https://go.example.com/r/7Jk2....

Decide whether one advocate has one durable link or a new token per share. A durable link simplifies support; per-share tokens allow finer channel analysis. Either model works if the public token is unguessable and the database remains authoritative.

2. Configure installed-app routing

Associate the branded domain with the iOS app and Android package. Route /r/* to a stable referral entry point, not directly to a fragile onboarding step. Apple requires the domain’s association file and the app’s associated-domains entitlement; the link must still have a useful web fallback when the app is absent.

Test warm starts, cold starts, signed-out users, and links opened from messaging apps or embedded browsers. If iOS Universal Links behave unexpectedly, the Universal Links troubleshooting guide covers association files, redirects, caching, and user-choice behavior.

3. Capture the click before redirecting

At the redirect edge, validate the token, create a unique click ID, record consent-compatible context, and select the destination. Do not award anything here. A click proves only that a link was opened.

Return quickly. Keep marketing parameters separate from the durable referral token, and strip untrusted values before they reach in-app routing. The landing page should explain the offer and provide a manual code path when automatic resolution is unavailable.

4. Resolve context on open, then claim on the server

For installed users, the link handler can read the referral token immediately. For a new install, a deferred deep-link service or supported store signal resolves eligible click context on first open. Treat the result as a claim to verify, not permission to credit a wallet.

The app sends the token, authenticated referred-user ID, and a client request ID to the referral API. The backend checks that the advocate exists, the accounts differ, the token is active, the referred user is eligible, and no conflicting claim has already won.

5. Qualify and reward with idempotent server events

When the business event occurs, the system evaluates the stored rule version. Give the qualification event a stable ID and enforce a unique constraint such as (program_id, qualification_event_id). A retry should return the prior result, not issue a second reward.

Use a reward ledger rather than a mutable balance alone. Ledger entries should record amount or benefit, currency or unit, state, reason, referral ID, event ID, and reversal relationship. This makes refunds, chargebacks, manual corrections, and audits tractable.

Deeplinkly can handle the branded deep link, deferred post-install routing, and install attribution layer while your backend keeps ownership of eligibility and rewards. Its developer-first SDKs and raw event delivery are a practical fit when the team wants referral context across iOS and Android without relying on device fingerprinting; confirm the required platform signals and edge cases during a proof of concept.

Set attribution rules before two links claim one user

Referral link tracking becomes contentious when a friend taps multiple invites, enters a code manually, or arrives through a paid campaign. Write a precedence policy before launch.

A defensible policy might be:

  1. A manually entered code wins if submitted before the qualifying event and not already locked.
  2. Otherwise, the most recent eligible deterministic referral claim wins within the referral window.
  3. A user can belong to only one advocate for a given program.
  4. Once the qualification event is final, attribution locks except for an audited support correction.
  5. Paid-media attribution and referral ownership remain separate fields; one answers channel credit, the other answers who receives the referral reward.

That last point prevents analytics taxonomy from rewriting business obligations. Your MMP may attribute an install to an ad while the referral service records that a known advocate influenced the signup. Decide how reporting presents overlap, but do not overwrite one record with the other simply because both use the word “attribution.”

Choose the referral window from actual decision latency. A seven-day window may fit a quick consumer signup; a considered subscription or financial product may need longer. Publish the rule in program terms and store claimed_at, qualifies_by, and locked_at so support can explain outcomes.

Prevent referral fraud without punishing real customers

Referral abuse ranges from casual self-referral to organized account farms. Blocking every shared IP or household will also block families, campuses, offices, and carrier networks, so use layered signals and graduated states.

Start with these controls:

Minimize data collection. Keep only the signals needed for attribution, security, support, and documented retention obligations. Avoid fabricating certainty with opaque fingerprinting: when no supported deterministic signal connects a click to an install, mark the journey unattributed and preserve a manual code fallback.

Support needs a single referral timeline showing link issuance, clicks, claims, qualifying events, reward decisions, and reasons. Give agents safe correction tools with role-based access and an audit log; do not make them edit balances directly.

Test the app referral flow as a system

One successful fresh install on a developer’s phone proves very little. Build a release matrix that exercises user state, platform, channel, timing, and failure recovery.

Test caseExpected result
Installed app, cold startCorrect referral entry point opens and token is claimed once
Installed app, warm startExisting session receives the link without duplicate navigation
Fresh iOS installStore path completes; eligible context resolves or fallback remains usable
Fresh Android Play installInstall referrer or provider context is consumed once and timestamps are recorded
Desktop click followed by mobileLanding page offers a controlled account, QR, or manual-code handoff
Expired or disabled tokenUser sees a safe explanation and can continue without a reward promise
Advocate opens own linkSelf-referral is rejected without blocking normal app use
Two competing referral claimsWritten precedence rule selects one and logs the conflict
Repeated qualification webhookIdempotency returns the original reward decision
Refund or chargebackLedger posts a linked reversal and updates both user views
Offline first openResolver retries safely without duplicate claims
App update and reinstallExisting referral ownership is not incorrectly recreated

Automate API invariants: one referred user per program, one reward per qualification event, no reward before eligibility, and every balance change backed by a ledger entry. In analytics, compare counts at each step daily so a routing regression appears as a funnel break before support tickets accumulate.

Measure referrals from invite to revenue

Install count alone cannot tell you whether an app referral program is healthy. Measure both the sharing loop and referred-user quality.

Track:

Slice the funnel by platform, app version, share channel, program version, destination, and advocate cohort. A drop in Android first opens after a release points to a different problem than a drop in qualification after a reward change.

Also report unresolved and unattributed journeys. A dashboard that silently discards them will overstate conversion quality and hide platform-specific loss. Reconcile link clicks, first opens, backend claims, qualifying events, and ledger entries using stable IDs rather than aggregate totals alone.

Replace legacy Firebase referral links deliberately

Firebase Dynamic Links shut down on August 25, 2025, and Google states that hosted links stopped working after that date in its Dynamic Links deprecation FAQ. A referral program still using a page.link dependency needs more than a domain swap.

Inventory every issued referral URL, domain, route, app version, and downstream reward dependency. Preserve old-to-new token mappings where possible; migrate iOS and Android association files; update the SDK and link handlers; and keep old app versions in the test matrix. Because an already-shared link may live in a message for months, decide what legacy users see when the original route can no longer resolve.

Treat migration as a data and obligation project. Export what remains available, establish a branded domain the business controls, run both paths during a measured cutover where possible, and reconcile referral claims before retiring any old reward logic.

Frequently asked questions

What is an app referral?

An app referral is an invitation from an existing user, customer, creator, or partner that encourages another person to install or use an app. A trackable referral connects the invitation to the referred account and a defined qualifying action so the program can measure results and issue any promised reward.

How does an app referral link work if the app is not installed?

A deferred deep link captures the referral context before sending the visitor to the app store, then makes eligible context available when the new app is opened. The app submits that context to a backend, which validates the referral and waits for the qualifying action before rewarding anyone.

Do iOS and Android need different referral links?

Users can share one branded HTTPS link, but the platform handling differs underneath. iOS Universal Links and Android App Links need separate domain-to-app association configuration, and post-install resolution uses platform-supported signals or a deferred deep-link provider.

When should an app referral reward be issued?

Issue the reward after a verified action that represents customer value, such as a cleared first payment or completed booking, rather than at click or install. Use a pending state when refunds, trials, or fraud review can still invalidate the action.

How do you prevent app referral fraud?

Validate referrals on the server, reject self-referrals, enforce unique claims and idempotent qualification events, cap rewards, delay cash-like payouts, and review clusters of suspicious account, device, payment, or network behavior. Use multiple signals and an auditable hold state rather than blocking a legitimate household on one shared attribute.

What should replace Firebase Dynamic Links for referrals?

Use verified Universal Links and Android App Links for installed-app routing plus a maintained deferred deep-link and attribution layer for the post-install journey. Choose a branded domain you control, preserve token mappings, test old app versions, and keep reward eligibility in your own backend.

Conclusion

A dependable referral program is not a Share button attached to a coupon. It is a chain of evidence: opaque invite, recorded click, correct route, validated claim, valuable action, idempotent reward, and reconcilable revenue.

Start with one program version, one qualifying event, one reward ledger, and a written attribution policy. Run the full test matrix on iOS and Android before increasing the incentive; if the team cannot explain one referral from link creation to ledger entry, it is not ready to scale.

Back to all articles© 2026 Deeplinkly

Related guides