Linkzly

Smart Links & Deep Linking

Smart Links let you send users directly to a specific screen inside your mobile app with a single tap — no hunting through menus required. If the app isn't inst

15 min read

Smart Links & Deep Linking

Smart Links let you send users directly to a specific screen inside your mobile app with a single tap — no hunting through menus required. If the app isn't installed yet, Linkzly remembers where the user was supposed to go and delivers them there automatically after they install. This is called deferred deep linking, and it works seamlessly across iOS and Android.


What Are Smart Links?

A Smart Link is a single shareable URL that does three things intelligently:

  1. Opens the right screen inside the app — on devices where the app is already installed, the user lands exactly where you intended (a product page, a specific level, a promo screen).
  2. Sends uninstalled users to the right store — if the app isn't installed, iOS users go to the App Store and Android users go to Google Play automatically.
  3. Delivers the deep link after install — after the user installs the app and opens it for the first time, Linkzly delivers the original deep link destination, even though the user just came from the store.

Step 1 — Register an App

Before creating Smart Links, you need to register your mobile app with Linkzly. This tells Linkzly which app to open, which stores to fall back to, and how to verify your domain for Universal Links (iOS) and App Links (Android).

  1. In the left sidebar, click Apps.
  2. Click Register App in the top-right corner.
  3. Fill in the configuration fields described below, then click Save.

Basic Information

Field Description Required
App Name A display name for this app inside your Linkzly dashboard. 2–255 characters. Required
Custom URL Scheme A custom protocol your app responds to (e.g., myapp://). Must start with a lowercase letter. Only letters, numbers, +, -, and . are allowed. Optional

Platform Configuration

Linkzly automatically detects which platforms your app supports based on which fields you fill in. Fill in iOS fields to enable iOS support, Android fields to enable Android support, or both to support both platforms.

iOS

Field Description Required
Bundle ID Your app's unique reverse-DNS identifier. You can find this in Xcode under your project's target settings. Example: com.yourcompany.yourapp Required for iOS
Team ID Your 10-character Apple Developer Team ID. Find it in the Apple Developer portal under Account > Membership. Required for Universal Links to work on iOS. Required for Universal Links

Android

Field Description Required
Package Name Your app's package identifier. Found in your build.gradle file or in the Google Play Console. Example: com.yourcompany.yourapp Required for Android
SHA-256 Fingerprints The fingerprint(s) of the certificate used to sign your app. Required for Android App Links to work. You can add multiple fingerprints (e.g., a debug certificate and a release certificate). Each fingerprint is a 64-character hex string. Required for Android App Links

How to find your SHA-256 fingerprint:

Run the following command in your terminal, replacing the keystore path with your actual keystore file:

keytool -list -v -keystore your-keystore.jks

Look for the line starting with SHA256: in the output.


Domain & Verification Setup

Linkzly needs to verify your domain to enable Universal Links (iOS) and App Links (Android). Choose one of the two methods:

Method How It Works
Hosted (recommended) Linkzly automatically creates a subdomain for your app and hosts all the required verification files. No extra DNS or server setup needed on your end.
Custom Domain You provide your own domain (e.g., go.yourapp.com) for Smart Links. You will need to download the verification files from Linkzly and host them on your server (see Step 2 below).

For Hosted: Enter your preferred subdomain prefix and select the suffix (linkz.ly or lnkz.ly). For example, entering yourapp and selecting linkz.ly creates yourapp.linkz.ly. Linkzly handles everything else automatically.

For Custom Domain: Enter your domain (e.g., go.yourapp.com) in the Associated Domain field. Then follow the domain verification steps in Step 2 below.


App Store Links

These are the fallback destinations used when the app is not installed on the user's device. All fields are optional at the app level — they can be overridden individually on each Smart Link you create.

Field Description
iOS App Store URL The full URL to your app on the Apple App Store. Used as a fallback when the app is not installed on iOS.
Google Play URL The full URL to your app on Google Play. Used as a fallback when the app is not installed on Android.
Web Fallback URL The URL to send visitors who are on desktop browsers or devices where neither the iOS nor Android app applies. This could be your website, landing page, or a "download our app" page.

Note: Huawei AppGallery support is available — contact support to enable it for your account.


Advanced Settings

These settings are optional but give you more control over how Smart Links behave.

Setting Description
Webhook URL A URL on your server where Linkzly will send a POST request every time a Smart Link event occurs. Supported events: click, store_visit, install, open, custom.
Custom Events Define the conversion events you care about (e.g., purchase, level_complete, signup). Click Add Event to add an event name to the list. These appear as options when configuring Smart Link attribution.

SDK Configuration

Once you save your app registration, Linkzly generates an SDK Key for this app.

Value Description
SDK Key A unique key in the format slk_xxxxxxxxxxxxxxxxxxxxxxxx. Use this key when initializing the Linkzly SDK inside your app. Keep it secret — do not expose it publicly. Click Regenerate if you ever need to rotate the key (note: regenerating immediately invalidates the old key).

The SDK Key is masked by default. Use the show/hide toggle to reveal it, or click the copy button to copy it directly.


Step 2 — Domain Verification (Custom Domain Only)

If you chose the Custom Domain method, you need to complete two steps:

1. Add the DNS Records

Add the following DNS records to your domain through your DNS provider (e.g., Cloudflare, Route 53, GoDaddy):

Type Name Value
CNAME go.yourapp.com As shown in Linkzly settings
TXT _linkzly-verify.go.yourapp.com As shown in Linkzly settings

2. Host the Verification Files

Linkzly generates two files that must be accessible on your domain at specific paths:

File Path on Your Server Platform
apple-app-site-association https://yourdomain.com/.well-known/apple-app-site-association iOS Universal Links
assetlinks.json https://yourdomain.com/.well-known/assetlinks.json Android App Links

Click Download Verification Files from your app settings to get both files. Upload them to your server so they are accessible at the paths shown above.

Important: These files must be served over HTTPS and must not require authentication to access. iOS and Android devices fetch them directly when a user taps a Smart Link.

3. Trigger Verification

Click Verify Domain in your app settings. Linkzly checks that both files are correctly hosted and that the DNS records are in place. Verification status updates to Verified once everything checks out. If there is a problem, the status will show Pending or Failed with details on what to fix.


Step 3 — Create a Deeplink

Once your app is registered, you can create as many Smart Links (called Deeplinks in the dashboard) as you need — each one can point to a different screen or section of your app.

  1. In the left sidebar, click Deeplink.
  2. Click Create Deeplink in the top-right corner.
  3. Fill in the fields below and click Save.

Core Fields

Field Description Required
Title An internal name for this Smart Link. Visible only in your dashboard — not shown to users. 1–255 characters. Required
Link Type Choose Basic for a simple link with minimal configuration, or Advanced for full control over deep link paths and data. Required
Target App Select the app you registered in Step 1. The deep link will open this app. Required
Custom Domain Select one of your verified custom domains to use instead of the default Linkzly domain. Optional

Deep Link Configuration (Advanced Mode)

Switching to Advanced mode reveals additional fields for precise in-app routing:

Field Description
Deep Link Path The in-app path you want to open. This is the screen or content destination inside your app. Examples: /product/123, /promo/summer-sale, /level/5.
Deep Link Data Optional key-value pairs of additional data to pass to your app when the link opens. Example: {"campaign": "summer", "discount": "20"}. Your app receives this data and can use it to personalize the experience.

Platform Destinations (Advanced Mode)

These fallback destinations override the app-level defaults for this specific Smart Link.

Field Description
iOS App Store URL Where iOS users go if the app isn't installed. Defaults to the URL set on the app registration.
Android Play Store URL Where Android users go if the app isn't installed.
Web Fallback URL Where desktop or other non-mobile visitors go.

What Is Deferred Deep Linking?

Deferred deep linking ensures that users who don't have your app installed still land on the right screen after installing it.

Without deferred deep linking, a new user who clicks your Smart Link, gets sent to the App Store, installs the app, and opens it for the first time would land on the app's generic home screen. They'd have to find the product or screen themselves — and many won't.

With deferred deep linking, Linkzly remembers the user's original destination across the install. When they open the app for the first time after installing, your app receives the deep link data and can navigate them directly to the right place. This significantly improves conversion rates for campaigns.


Managing Smart Links

The Deeplink page lists all your Smart Links in a table:

Column Description
Title The internal name you gave this Smart Link.
Deeplink The full Smart Link URL.
App Name Which registered app this link belongs to.
Type Basic or Advanced.
Status Whether the link is Active or Inactive.
Clicks Total number of times this link has been clicked.
Installs App installs attributed to this link.
Created The date the link was created.

Filtering and Search

  • Search by title to quickly find a specific Smart Link.
  • Filter by App to show only links belonging to a specific registered app.
  • Filter by Status to show Active or Inactive links only.
  • Filter by Link Type to show only Basic or Advanced links.

Per-Link Actions

Click the actions menu on any Smart Link for the following options:

Action Description
Analytics Opens the detailed analytics page for this Smart Link.
Share Share or copy the Smart Link URL.
Open Open the Smart Link in a new browser tab to test it.
Edit Update any field — destination URLs, deep link path, data, title, or domain.
Delete Permanently deletes the Smart Link. A confirmation is required. Links with recent activity will show a warning before deletion.

Smart Link Analytics

Click Analytics from the actions menu on any Smart Link to open its analytics page.

The analytics page shows:

Summary Metrics

Metric Description
Total Clicks All clicks recorded on this Smart Link.
Total Installs App installs attributed to this Smart Link within the attribution window.
Deep Links Delivered The number of times the deep link path was successfully delivered inside the app (including deferred deliveries after install).
Deferred Deep Link Rate The percentage of deep link deliveries that were deferred (delivered after a new install rather than directly to an already-installed app).

Conversion Funnel

The funnel shows how users progress from clicking the link to completing the full deep link journey:

Click → Install → App Open → Deep Link Delivered

Each stage shows a count and a percentage drop-off from the previous stage.

Platform Breakdown

A pie chart showing the split of clicks and installs by platform: iOS, Android, and Web.

Charts and Breakdowns

  • Clicks and Installs Over Time — A time-series chart showing daily or weekly trends.
  • Top Countries — Where clicks and installs are coming from, sorted by volume.
  • Device Types — Mobile, tablet, and desktop breakdown.
  • Referrers — The sources that drove the most traffic to this Smart Link.

Exporting Analytics

Click Export to download the analytics data as a CSV or JSON file. The export includes all clicks, installs, and deep link delivery events within the selected date range.


Tips and Best Practices

  • Always test before launching. Create a Smart Link and tap it on an actual iOS and Android device (with the app installed) to confirm the deep link opens the correct screen. Then uninstall the app, tap the link again, install from the store, and verify deferred deep linking delivers the destination correctly.

  • Use descriptive titles. Your Smart Link titles are only visible inside Linkzly, but clear names (e.g., Summer Sale — Product Page, Onboarding — Welcome Screen) make it easier to manage links when you have many of them.

  • Set a Web Fallback URL. A significant portion of Smart Link clicks may come from desktop browsers or non-supported platforms. Always set a fallback so those users land on something useful rather than a dead link.

  • Add multiple SHA-256 fingerprints. If your Android app uses separate debug and release signing certificates, add both fingerprints to your app registration so Android App Links work in both environments.

  • Use Error Correction Level Q or H on QR codes. If you plan to generate a QR code for a Smart Link and include a logo, use a higher error correction level so the code remains scannable.

  • Rotate your SDK key only when necessary. Regenerating the SDK key immediately invalidates the old one. All devices running the app with the old key will stop working until you ship an app update with the new key.

Was this helpful?

Help us improve our documentation