Skip to main content
Timeline: 1-2 hours Common for: Dating apps, wellness platforms, fitness subscriptions with web signup → app usage

The challenge

Users sign up on web, then engage in mobile app. Without identity stitching, web browsing appears as one user and app activity as another. You can’t connect acquisition campaigns to in-app activation and retention. Result: Marketing can’t prove which campaigns drive users who actually activate. Product can’t see which features drive retention by acquisition source.

How Fidero solves this

Our server maintains a unified user profile across web and app. When users log in via either channel, sessions automatically stitch into a single chronological journey.

Implementation

1

Install pixel on website

<script>
  fidero.load()
  fidero.init("YOUR_PROJECT_ID")
  fidero.page() // Captures initial visit, click IDs, anonymous browsing
</script>
This captures initial visit, click IDs and anonymous browsing behaviour.
2

Track signup on web

// When user completes signup form
fidero.track({
  event: "signup_completed",
  userId: "user_abc123", // CRITICAL: Creates unified user profile
  traits: {
    email: "[email protected]",
    signup_source: "web",
  },
})
This creates a unified user profile with web attribution context and links all previous anonymous browsing to the known user.
3

Identify user in mobile app

// Server-side when user logs into app (first time or returning)
await fetch("https://api.fidero.com/v1/identify", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: `Bearer ${FIDERO_API_KEY}`,
  },
  body: JSON.stringify({
    projectId: "YOUR_PROJECT_ID",
    userId: "user_abc123", // CRITICAL: Same ID as web signup for stitching
    traits: {
      app_version: "2.1.0",
      device: "iOS",
    },
  }),
})
Our server automatically merges app session with web profile, connecting in-app behaviour to original acquisition source.
4

Track in-app events

// Server-side in-app events (e.g. profile completion, first workout)
await fetch("https://api.fidero.com/v1/track", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: `Bearer ${FIDERO_API_KEY}`,
  },
  body: JSON.stringify({
    projectId: "YOUR_PROJECT_ID",
    userId: "user_abc123",
    event: "profile_completed",
    properties: {
      completion_percentage: 100,
    },
  }),
})
Event automatically includes:
  • Original acquisition source from web (TikTok, Google Ads, etc.)
  • First touch attribution from initial ad click
  • All web browsing context
  • Complete user journey timeline

What you’ll see

Within 24 hours: User profiles unify in real-time as users log in. Product teams see complete journeys from anonymous visit → signup → app activation. Within a week: “Users from TikTok campaign X have 45% higher activation rate in the app” becomes visible in analytics. Marketing reallocates budget from Google (high signups, low activation) to TikTok (moderate signups, high activation). Typical results: 90%+ cross-domain identity resolution. Complete activation→retention funnels across web and app. ML models train on complete user timelines with acquisition source features that predict retention.
The technical flow:
  1. User clicks TikTok ad with ttclid=xyz789 → lands on web
  2. Pixel captures ttclid=xyz789 → persists in anonymous profile
  3. User signs up → web sends userId=user_abc123 → server merges anonymous profile with known user
  4. Three days later: User logs into app → app sends userId=user_abc123 → server stitches app session to web profile
  5. User completes first workout → event sent with userId=user_abc123 → server enriches with original ttclid=xyz789
Product analytics receives event showing “First workout completed by user from TikTok campaign Y”. Complete journey visible.
Every in-app event includes web context:
  • Original click IDs (gclid, fbclid, ttclid)
  • First touch attribution (campaign, source, medium from initial visit)
  • Last touch attribution (most recent session)
  • All traits from web signup (email, plan, signup_source)
  • Complete browsing history before signup
This enables:
  • Marketing: “TikTok drives 2.3x higher 6-month LTV than Google” (reallocate budget)
  • Product: “Users from paid social need different onboarding vs organic” (personalise experience)
  • Data: Churn models with complete feature sets (acquisition source + behaviour + retention outcome)

Next steps