Deep Linking
Deep linking lets you send referred users straight to a specific screen in your app after they install. This is useful when a partner promotes a particular feature, paywall, or onboarding flow and you want the user to land there on first open.
How It Works
Section titled “How It Works”- Your landing page passes a
pathwhen calling/defer - The user installs your app
- Your app calls
/claimand receives thepathback in the response - Your app navigates the user to that path
flowchart TB
A["User clicks partner link"] --> B["/defer called with path"]
B --> C["User installs app"]
C --> D["/claim returns path in response"]
D --> E["App navigates to path"]
Passing a Path with /defer
Section titled “Passing a Path with /defer”When you call the /defer endpoint from your landing page, include the optional path parameter:
POST /api/v1/defer{ "appId": "your-app-id", "referrer": "alice", "platform": "ios", "path": "/promo/summer-sale"}Or using the SDK:
await biteasy.defer({ appId: "your-app-id", referrer: "alice", platform: "ios", path: "/promo/summer-sale",});Reading the Path from /claim
Section titled “Reading the Path from /claim”When your app calls /claim after install, the response includes the path if one was set:
const result = await biteasy.claimAttribution({ appId: "your-app-id", installId: "user-install-id", platform: "ios",});
if (result.status === "claimed" && result.path) { // Navigate the user to the deep link destination navigateTo(result.path); // e.g. "/promo/summer-sale"}The path field is string | null. It will be null if no path was provided during /defer.
Example: Partner Promotes a Specific Feature
Section titled “Example: Partner Promotes a Specific Feature”A partner promotes your app’s premium workout plans. Their referral link points to your landing page:
https://yourapp.com/?ref=alice&path=/workouts/premiumYour landing page reads the path query parameter and includes it in the /defer call:
async function handleDownload(platform) { const params = new URLSearchParams(window.location.search); const referrer = params.get("ref"); const path = params.get("path");
await fetch("https://api.biteasy.co/api/v1/defer", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ appId: "your-app-id", referrer, platform, path, // "/workouts/premium" }), });
window.location.href = platform === "ios" ? APPLE_LINK : GOOGLE_LINK;}After install, your app claims attribution and routes the user:
const result = await biteasy.claimAttribution({ appId: "your-app-id", installId, platform: "ios",});
if (result.path) { router.push(result.path); // "/workouts/premium"}Path Validation
Section titled “Path Validation”| Rule | Detail |
|---|---|
Must start with / | e.g. /settings/profile |
Cannot contain :// | Prevents full URLs — this is an in-app path only |
| Optional | If omitted, path is null in the claim response |