Skip to content

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.


  1. Your landing page passes a path when calling /defer
  2. The user installs your app
  3. Your app calls /claim and receives the path back in the response
  4. 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"]

When you call the /defer endpoint from your landing page, include the optional path parameter:

Terminal window
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",
});

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/premium

Your 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"
}

RuleDetail
Must start with /e.g. /settings/profile
Cannot contain ://Prevents full URLs — this is an in-app path only
OptionalIf omitted, path is null in the claim response