Search specific term/phrase surrounded by double quotes. e.g. “deep linking”
Exclude records that contain a specific term prefixed with a minus. e.g. Android -Firebase

Create Deep Links

Overview

You can use Deep Links on your Journeys, Ads links, Quick Links, and Email. In this guide, we will walk you through how to configure your default and custom link behavior, as well as how to create short and long links.

Default Link Behavior

If Your App Is Not Installed

  • User clicks on a Branch deep link

  • Device navigates to the fallback (e.g. an app store or website)

    • App Stores Supported:
      • Apple App Store
      • Google Play
      • Huawei App Store
      • Vivo App Store
      • Oppo App Store
      • Baidu Mobile Assistant
  • User installs and opens your app

  • Branch passes deep link data into your app

If Your App Is Installed

  • User clicks on a Branch deep link

  • Device opens your app or navigates to expected link behavior

  • Branch passes deep link data into your app

Expected Link Behavior

Mobile

  • Expected link behavior is dependent on whether or not the app supports deep linking

  • *Able to force app open using $uri_redirect_mode or enabling a Deepview

PlatformiOSAndroid
Facebook NewsfeedFallback; able to deep link via Facebook App LinksApp
Facebook BrowserAppFallback; able to force app open when app install is detected, may throw error when app is uninstalled after initial detection
Facebook MessengerFallback; able to deep link via Facebook App LinksApp
Facebook Messenger BrowserAppFallback; able to force app open when app install is detected, may throw error when app is uninstalled after initial detection
Instagram ProfileFallback; able to force app open using $uri_redirect_mode=2App
Instagram BrowserAppApp
Instagram StoriesFallback; able to force app openApp
Twitter FeedFallback; able to force app open. Links with $ios_url or $fallback_url redirect fallbacks require web SDK 2.48.0+ init on the websiteApp
Twitter BrowserAppApp
Snap MessagesAppApp
Snap StoriesFallback; review custom instructions for using Branch in Snap storiesApp
RedditFallback; need to use $use_https_app_store: true in link to fallback to App StoreFallback
PinterestFallbackFallback
Pinterest BrowserAppApp
Google+Fallback; App Store redirects will not workFallback
Chrome BrowserAppApp
Chrome Address BarFallbackFallback; deep link data will not pass into the app
Safari BrowserAppN/A
Safari Address BarFallback; Blocked by AppleN/A
Firefox BrowserFallbackApp
Firefox Address BarFallbackApp
UC BrowserN/AApp
Naver BrowserN/AApp
Kakao BrowserN/AApp
Opera BrowserAppApp
Ghostery BrowserAppFallback; query strings must be encoded ($ = %24)
Google HangoutsFallback; able to force app openApp
Samsung SMSN/AApp
Samsung SMS BrowserN/AApp
Apple iMessageAppN/A
Apple Business ChatAppN/A
SlackApp; must configure Slack to open links with SafariApp
WeChatFallback; customize WeChat fallback urlsFallback; customize WeChat fallback urls
WhatsAppApp; app.link require https/http to be clickableApp; app.link require https/http to be clickable
LINEFallback; able to force app openApp
DiscordAppApp
Apple MailAppN/A
GmailAppApp
Yahoo MailFallback; able to force app openApp
TikTokAds promoting apps will take users to the app storeAds promoting apps will take users to the app store
TikTokAds taking users to a non app-store landing page will open in an in-app browser.Ads taking users to a non app-store landing page will open in an in-app browser.

Desktop

  • Expected link behavior is dependent on whether or not the app supports deep linking

  • By default, we attempt to launch the apps via URI schemes and load the desktop redirect fallback in the background

  • *Only launches background desktop web fallbacks using $afterclick_desktop_url

PlatformMacWindows
SafariApp; Supports Universal LinkingApp
FirefoxApp*App*
ChromeApp*App*
EdgeAppApp
Internet ExplorerN/AApp*
SlackApp; Supports Universal LinkingApp

Custom Link Behavior

Pass Data From Link to App

  • Add link data to each deep link

  • Add key-values pairs to your Quick Links

  • Append query strings https://example.app.link/fzmLEhobLD?$custom_data=123&hello=world

Fallback to a Specific URL

  • Determine where a deep link will navigate to if either

    • Your app is not installed

    • [or] Another app prevent links from deep linking outside their app

  • Fallback overrides (ordered by precedence)

    • Add query string https://example.app.link?$ios_url=https://example.com
    • Add link data $ios_url = 'https://example.com' (docs)
    • Add link data for a deep view $ios_deepview = 'deepviewId' (docs)
    • Enable a Deep View globally on the Branch Dashboard
    • Add link data $fallback_url = 'https://example.com' (docs)
    • Add iOS/Android Custom URL on the Branch Dashboard
    • Add Default URL ($fallback_url) on the Branch Dashboard

Open Web Instead of App

  • Your app is not installed
    • Device navigates to the fallback (e.g. an app store or website)
  • Your app is installed
    • iOS: need to override Universal Links
      • Add $web_only = true (docs)
      • Add redirect $ios_url = 'https://google.com' (docs)
      • [or] Append /e/ to the deep link
        • e.g. https://example.app.link/fzmLEhobLD -> https://example.app.link/e/fzmLEhobLD
    • Android: need to override App Links
      • Uncheck Enable App Links and then hit Save on the Branch Dashboard
      • Add redirect $android_url = 'https://google.com' (docs)
      • Add a broken URI Scheme with $android_deeplink_path = 'random' (docs)
  • Add -web in the link domain: e.g. branch.app.link -> branch-web.app.link
    • Does not work with custom link domains when used in conjunction with a custom alias.

Social Link Behavior

  • Use OG Tags to display content as a preview card in Facebook, Twitter, Pinterest, iMessage, etc.
    • The $og_title and $og_description tags are included with the Branch Growth Platform.
    • The $og_image_url tag is reserved for paid Branch accounts with a dedicated contract.
  • Use Deep Views to display content as a website

UTM Behavior

❗️

Enabled by Default

To disable this functionality, go to Link Settings -> Advance Settings -> Analytics mapping with UTM.

  • When redirecting to a web URL, Branch automatically passes through any values from the following Branch link analytics tags as UTM parameters:
    • ~campaign -> utm_campaign
    • ~channel -> utm_source
    • ~feature -> utm_medium
  • This applies to web URLs defined using any of the following $fallback_url, $ios_url, $android_url, $desktop_url, $original_url, and $canonical_url.
  • If these UTM parameters are already detected on the URLs being redirected to, Branch will not overwrite them.
  • For more information about UTM parameters, please read Google Analytic's Custom Campaigns article.

Expiration Behavior

The default expiration behavior will vary depending on the type of Branch Link you're using.

Link TypeExpiration
Short LinksStarting March 11, 2024. Expires 380 Days after creation. This expiration window is reset when the Short Link is clicked or if Branch receives a read request via the Deep Linking API.
Long LinksDoes not expire
Quick LinksDoes not expire
Ad LinksDoes not expire

Create Deep Links

Short Links

  • Short links are the most common deep links created via the Branch SDK or Deep Linking API.
  • You can customize the subdomain of example.app.link, or change to your own personal domain (links.yoursite.com)
  • You can tailor the appearance of the shortcode to a custom alias during creation
    • Aliases can be short strings, e.g. https://example.app.link/october-sale
    • Or can be a full link path, e.g. https://example.app.link/product/id1234
  • Short links encapsulate link data inside them on link creation
    • e.g. existing link https://example.app.link/fzmLEhobLD
  • Short links can have additional data appended to them
    • e.g. dynamic link https://example.app.link/fzmLEhobLD?content_id=123
  • Methods of creating short links
    • Use Quick Links for fast link creation and easy tracking
    • Use our App SDK to create and share links within your app
    • Use our Web SDK to create links that help convert your web users to app users
    • Use our HTTP API to programmatically create links from your server
    • Use our Chrome Extension to generate links from your browser

Long Links

  • Long links can be created without a network call to Branch
  • Long links need link data to be added as a query string. Be sure to URI encode any URLs in the link.
    • e.g. existing link https://example.app.link/fzmLEhobLD?foo=bar&baz=456&$fallback_url=https%3A%2F%2Fbranch.io%2F
    • e.g. dynamic link https://example.app.link/?foo=bar&baz=456&$fallback_url=https%3A%2F%2Fbranch.io%2F
  • Long links need a /a/ and a Branch Key if you use a custom link domain
    • e.g. existing link https://link.example.com/5NPh/p4M09KRLrD?foo=bar&baz=456&$fallback_url=https%3A%2F%2Fbranch.io%2F
    • e.g. dynamic link https://link.example.com/a/key_live_kaFuWw8WvY7yn1d9yYiP8gokwqjV0Swt?foo=bar&baz=456&$fallback_url=https%3A%2F%2Fbranch.io%2F
  • Long links need a /a/ and a Branch Key if you use a bnc.lt
    • e.g. existing link https://bnc.lt/5NPh/p4M09KRLrD?foo=bar&baz=456&$fallback_url=https%3A%2F%2Fbranch.io%2F
    • e.g. dynamic link https://bnc.lt/a/key_live_kaFuWw8WvY7yn1d9yYiP8gokwqjV0Swt?foo=bar&baz=456&$fallback_url=https%3A%2F%2Fbranch.io%2F
  • When adding tags to a dynamic link, enter each tag separately

Configure Deep Links

You're free to add any of your own key-value parameters to a Branch link. These parameters will be passed to your app via the Branch SDK, however some keys will have specific extra effects.

Reserved Prefixes

Branch adds additional properties to your deep link data to explain the link.

PrefixUsage
$Branch reserved keyword
~Branch analytical data
+Branch added values

Keys for Reporting Analytics

These labels allow you to filter and organize your deep links.

KeyUsage
~channel or channelUse channel to tag the route that your link reaches users. For example, tag links with 'Facebook' or 'LinkedIn' to help track clicks and installs through those paths separately
~feature or featureThis is the feature of your app that the link might be associated with. For example, if you had built a referral program, you would label links with the feature 'referral'
~campaign or campaignUse this field to organize the links by actual campaign. For example, if you launched a new feature or product and want to run a campaign around that
~campaign_idUse this field to organize the links by actual campaign id. For example, if you launched a new feature or product and want to run a campaign around that
~customer_campaignThe customer campaign specified for the last attributed touch. can be specified on links by the client.
~stageUse this to categorize the progress or category of a user when the link was generated. For example, if you had an invite system accessible on level 1, level 3 and 5, you could differentiate links generated at each level with this parameter
~tags or tagsThis is a free form entry with unlimited values ['string']. Use it to organize your link data with labels that don't fit within the bounds of the above
~secondary_publishersecondary publisher specified for the last attributed touch. passed by the ad network.
~customer_secondary_publisherThe ID of the secondary publisher specified for the last attributed touch. can be specified on links by the client.
~creative_nameThe creative name specified for the last attributed touch.
~creative_idThe creative ID specified for the last attributed touch.
~ad_set_nameThe ad set name specified for the last attributed touch.
~ad_set_idThe ad set ID specified for the last attributed touch.
~customer_ad_set_nameThe customer ad set name specified for the last attributed touch. can be specified on links by the client.
~ad_nameThe ad name specified for the last attributed touch.
~ad_idThe ad ID specified for the last attributed touch.
~customer_ad_nameThe customer ad name specified for the last attributed touch. can be specified on the link by the client.
~keywordThe keyword specified for the last attributed touch.
~keyword_idThe unique ID for keyword of the last touch
~customer_keywordThe customer keyword of the last touch. Can be specified on links by the client.
~placementThe placement of the last touch, as set with an analytics tag. Actual app or website the ad appears on display campaigns.
~placement_idThe ID of placement of the last touch, as set with an analytics tag. Actual app or website the ad appears on display campaigns.
~customer_placementThe customer specified placement of the last touch, as set with an analytics tag. Actual app or website the ad appears on display campaigns. Can be specified on the link by the client.
~sub_site_nameReference to the site where the ad was displayed.
~customer_sub_site_nameCustomer reference to the site where the ad was displayed. Can be specified on links by the client.

These labels allow you to customize attribution windows for a single link.

KeyDefaultUsage
$click_install_window_days7Time between a click and an install or reinstall. (i.e., https://branchster.app.link/hpNVE52gxE?$click_install_window_days=3)
$click_session_start_window_days1Time between a click and an open or web session start. (i.e., https://branchster.app.link/hpNVE52gxE?$click_session_start_window_days=7)
$click_conversion_window_days30Time between a click and a conversion event. Conversion events include commerce events (e.g. purchase, add to cart), all custom events, and all view events like pageviews & content views. (i.e., https://branchster.app.link/hpNVE52gxE?$click_session_start_window_days=30)
$impression_install_window_days1Time between an ad impression and an install or reinstall. (i.e., https://branchster.app.link/hpNVE52gxE?$impression_install_window_days=3)
$impression_session_start_window_days1Time between an ad impression and an open or web session start. (i.e., https://branchster.app.link/hpNVE52gxE?$impression_session_start_window_days=1)
$impression_conversion_window_days7Time between an ad impression and a conversion event. Conversion events include commerce events (e.g. purchase, add to cart), all custom events, and all view events like pageviews & content views. (i.e., https://branchster.app.link/hpNVE52gxE?$impression_session_start_window_days=7)

Custom Data

Pass any custom data to be read inside your app.

KeyValueUsage
random123Any key-value pair
custom_datatrueAny key-value pair
any_value{ 'random': 'dictionary' }Any key-value pair
look_at[1,2,3,4,5,6]Any key-value pair
nav_herecontent/123Any key-value pair

Redirections

Navigate to different locations based on device information. Navigation URLs must be websites, not Deep Links.

Note: Usage of redirection parameters on Branch Links requires a credit card on your account or set up an Enterprise account.

KeyDefaultUsage
$fallback_urlChange the redirect endpoint for all platforms - so you don't have to enable it by platform. Note that Branch will forward all robots to this URL, which overrides any OG tags entered in the link. System-wide Default URL (set in Link Settings)
$fallback_url_xxChange the redirect endpoint for all platforms based on a lower-case Alpha-2 country code. For example, $fallback_url_de="..." would redirect Germany deep link clicks. You should also set $fallback_url to act as the global redirect in addition to the country-specific ones. WARNING: platform specific redirects (like $ios_url or $desktop_url) are set, they will override the country-specific redirect. Thus, the recommendation is to only use $fallback_url_xx for the country specific redirects and $fallback_url to catch all other users.
$desktop_urlRedirect URL for desktop devices - mobile users will default to the app store.
$ios_urlChange the redirect endpoint for iOS App Store page for your app (set in Link Settings)
$ios_url_xxChange the redirect endpoint for iOS based on a lower-case Alpha-2 country code. For example, $ios_url_de="..." would redirect Germany deep link clicks. You should also set $ios_url to act as the global redirect in addition to the country-specific ones.
$ipad_urlChange the redirect endpoint for iPads $ios_url value
$android_urlChange the redirect endpoint for Android Play Store page for your app (set in Link Settings)
$android_url_xxChange the redirect endpoint for Android based on a lower-case Alpha-2 country code. For example, $android_url_de="..." would redirect Germany deep link clicks. You should also set $android_url to act as the global redirect in addition to the country-specific ones.
$samsung_urlRedirect to Samsung Galaxy Store on Samsung devices. Only link level control. Format should be http://www.samsungapps.com/appquery/appDetail.as?appId=YOUR.PACKAGE.NAME
$huawei_urlRedirect to the Huawei App Gallery on Huawei devices. Only link level control. Format should be https://appgallery.huawei.com/app/<<HUAWEI_APP_GALLERY_ID>>
$windows_phone_urlChange the redirect endpoint for Windows OS Windows Phone default URL (set in Link Settings)
$blackberry_urlChange the redirect endpoint for Blackberry OS BlackBerry default URL (set in Link Settings)
$fire_urlChange the redirect endpoint for Amazon Fire OS Fire default URL (set in Link Settings)
$ios_wechat_urlChange the redirect endpoint for WeChat on iOS devices $ios_url value
$android_wechat_urlChange the redirect endpoint for WeChat on Android devices $android_url value
$web_onlyfalseForce to open the $fallback_url instead of the app
$desktop_web_onlyfalseForce to open the $windows_desktop_url, $mac_desktop_url, $desktop_url, or $fallback_url in this order of precedence instead of the app
$mobile_web_onlyfalseForce to open the$ios_url, $android_url, or $fallback_url in this order of precedence instead of the app
$after_click_urlfalseWhen a user returns to the browser after going to the app, take them to this URL. iOS only; Android coming soon
$afterclick_desktop_urlfalseWhen a user on desktop returns to the desktop browser after going to the desktop app, take them to this URL.

Forced Redirections

Prevent error messages from other apps when Branch Deep Links are clicked.

KeyValueUsage
$uri_redirect_mode0Conservative mode. We don't try to open the app if the user can see an error.
$uri_redirect_mode1Smart redirect mode. This is the default value that yields the same behavior as 0 until we know the user has the app installed through Branch persona data. In that case, force URI schemes to open the app.
$uri_redirect_mode2Forceful redirect mode. Always try to force open the app, even if it risks showing an error message when the app is not installed.
  • Forced redirections will not force open the app when the link is configured with an "Active Deepview" or "NativeLink" since they are intended to load a webpage and not redirect elsewhere.

  • OS level redirect modes can be enabled by utilizing the parameters $ios_uri_redirect_mode and $android_uri_redirect_mode.

  • Supported Apps

    • Facebook newsfeed iOS
    • Instagram iOS
    • Twitter iOS
    • Safari iOS
    • Firefox iOS & Android

Deep Linking

Navigate to different locations based on device information.

KeyDefaultUsage
$deeplink_pathopen?link_click_id=1234Set the deep link path for all platforms - so you don't have to enable it by platform. When the Branch SDK receives a link with this parameter set, it will automatically load the custom URI path contained within
$android_deeplink_pathSet the deep link path for Android apps. When the Branch SDK receives a link with this parameter set, it will automatically load the custom Android URI path contained within
$ios_deeplink_pathSet the deep link path for iOS apps. When the Branch SDK receives a link with this parameter set, it will automatically load the custom iOS URI path contained within
$ios_nativelinkSet to true to make the link route to a NativeLink™ used for enabling deferred deep linking on iOS 15+ & Private Relay. Can also be set to a deepview/template key to manually trigger the launch of a specific NativeLink™ deepview.
$desktop_deeplink_pathSet the deep link path for Desktop apps. You will have to fetch this parameter and route the user accordingly
$match_duration7200Lets you control the snapshotting match timeout (the time that a click will wait for an app open to match) also known as attribution window. Specified in seconds
$link_exp_dateExpiry date for the content and any associated link data. Represented as UTC epoch milli second. The maximum date this can be set is 31 days in the future.
$always_deeplinktrueSet to false to make links always fall back to your mobile site. Does not apply to Universal Links or Android App Links.
$ios_redirect_timeout750Control the timeout that the client-side JS waits after trying to open up the app before redirecting to the App Store. Specified in milliseconds
$android_redirect_timeout750Control the timeout that the client side JS waits after trying to open up the app before redirecting to the Play Store. Specified in milliseconds
$custom_sms_textText for SMS link sent for desktop clicks to this link. Must contain {{ link }} Value of Text me the app page in Settings
$marketing_titleSet the marketing title for the deep link.
$deeplink_no_attributionSet to true for the links to only support deep linking without any attribution for that link.

Content

Handle content properties.

KeyDefaultUsage
$publicly_indexable1Cannot modify here. Needs to be set by the Branch Universal Object
~keywordKeywords for which this content should be discovered by. Just assign an array of strings with the keywords you'd like to use
$canonical_identifierThis is the unique identifier for content that will help Branch dedupe across many instances of the same thing. Suitable options: a website with pathing, or a database with identifiers for entities
$content_typeThis is a label for the type of content present. Apple recommends that you use uniform type identifier as described here
$do_not_processfalseThis will prevent click tracking and storage of link analytics. Deep link data will still flow into the app from link click to app open.

Deepview

Enable / control active deepview properties.

KeyDefaultUsage
$ios_deepviewbranch_defaultThe name of the deepview template to use for iOS
$android_deepviewbranch_defaultThe name of the deepview template to use for Android
$desktop_deepviewbranch_defaultThe name of the deepview template to use for the Desktop

Control passive deepview templates.

KeyValueDefault
$ios_passive_deepviewThe name of the template to use for iOS.branch_default
$android_passive_deepviewThe name of the template to use for Android.branch_default
$desktop_passive_deepviewThe name of the template to use for Desktop.branch_default

Link Appearance

Customize the appearance of your Branch Short Link.

KeyDefaultUsage
aliasnoneSpecify a link alias to replace of the standard encoded short URL (e.g. https://example.app.link/aQXXDHaxKF -> https://example.app.link/october-campaign or https://example.app.link/product/id1234). Link aliases must be unique per app (a 400 error will occur if you create an alias already taken). Also note that we don't currently support single character path segments after the domain (/a/, /b/, /c/, etc).

Open Graph

The keys in the table below are used to handle Facebook properties.

Please note the following defaults Branch maintains for meta tags:

  • Branch Links created through the Dashboard will scrape the original web URL for meta tags.
  • Branch Links created via one of our APIs will scrape $original_url, $fallback_url, and $desktop_url for meta tags, in that order.
Branch Override KeyOpen Graph KeyDefaultUsage
$og_titleog:titleSet on dashboard.Set the title of the Deep Link as it will be seen in social media displays.
$og_descriptionog:descriptionSet on dashboard.Set the description of the Deep Link as it will be seen in social media displays.
$og_image_urlog:imageSet on dashboard.

Feature will not appear on dashboard unless you are under a paid Branch account with a dedicated contract.
Set the image of the Deep Link as it will be seen in social media displays.

This feature is reserved for paid Branch accounts with a dedicated contract.
$og_image_widthog:image:widthSet on dashboard.

Feature will not appear on dashboard unless you are under a paid Branch account with a dedicated contract.
Set the image's width in pixels for social media displays.

This feature is reserved for paid Branch accounts with a dedicated contract.
$og_image_heightog:image:heightSet on dashboard.

Feature will not appear on dashboard unless you are under a paid Branch account with a dedicated contract.
Set the image's height in pixels for social media displays.

This feature is reserved for paid Branch accounts with a dedicated contract.
$og_videoog:videoScraped from $fallback_url or $original_url.Set a video as it will be seen in social media displays.

Note: Branch also scrapes all of the sub-keys for video objects by default.
NAog:audioScraped from $fallback_url or $original_url.Set the URL to an audio file.

Note: Branch also scrapes all of the sub-keys for music objects by default.
$og_urlog:urlSet the base URL of the Deep Link as it will be seen in social media displays.
$og_typeog:typeSet the type of custom card format link as it will be seen in social media displays. Don't set this property when sharing Deep Links on Facebook.
$og_redirectNAAdvanced, not recommended.

Set a custom URL that Branch redirects the social media robots to in order to retrieve all the appropriate tags.
$og_app_idNASet on dashboard.Rarely used.

Sets the app id tag.

Twitter

Handle Twitter properties.

KeyDefaultUsage
$twitter_cardSet the Twitter card type of the link (e.g. player) (you must allowlist your deep link with the Twitter Card Validator
$twitter_titleSet on dashboardSet the title of the Twitter card
$twitter_descriptionSet on dashboardSet the description of the Twitter card
$twitter_image_urlSet on dashboardSet the image URL for the Twitter card
$twitter_siteSet the site for Twitter
$twitter_app_countrySet the app country for the app card
$twitter_playerSet the video player's URL. Defaults to the value of $og_video.
$twitter_player_widthSet the player's width in pixels
$twitter_player_heightSet the player's height in pixels

Other Reserved Keys

KeyUsage
access_token or AccessTokenUsed by Branch to determine if a deep link is a valid Branch link or not.
auth_tokenor AuthTokenUsed by Branch to determine if a deep link is a valid Branch link or not.
dataUsed by Branch to contain top-level link information. If this parameter is added to a Branch link via appending query params, it will be dropped. It can be safely used when creating a link manually via the dashboard.
passwordIf this parameter is added to a Branch link via appending query params, it will be dropped
authIf this parameter is added to a Branch link via appending query params, it will be dropped.

Custom Tags

  • Handle custom meta tags
KeyValue
$custom_meta_tagsValid stringified JSON dictionary of the tags’ keys and values
  • Valid dictionary example: "{"twitter:player:stream": "https://branch.io"}". This will result in the following meta tag: <meta property="twitter:player:stream" content="https://branch.io" />
  • If you create the link via the Dashboard, don’t worry about stringifying the dictionary. It will be done automatically.
  • apple_touch_icon is a special key in the dictionary. If you set it, we will add a <link rel="apple-touch-icon" href="<url>" /> tag to the scraped HTML page. This will allow you to show a custom icon for previews in iMessage, Safari Bookmarks, Slack, etc.

Universal Object

📘

Branch Universal Object

The Branch Universal Object are fundamental to tracking and logging events with Branch. To learn more, view our full guide here.

Read deep links

  • Deep link data gets sent from your link to your app integration

Data structure

  • Example deep link data structure
{
          "randomized_bundle_token": "427469360685348303",
          "link": "https://example.app.link?%24randomized_bundle_token=427469360685348303",
          "session_id": "429691081177874743",
          "data": {
            "$canonical_identifier": "item/1503684554354.28",
            "$canonical_url": "https://example.com/home?utm_campaign=test&deeplink=value",
            "$desktop_url": "http://example.com/home",
            "$randomized_bundle_token": "427469360685348303",
            "$og_description": "My Content Description",
            "$og_image_url": "http://lorempixel.com/200/200/",
            "$og_title": "46D6D28E-0390-40E4-A856-BD74F34D24C8",
            "$publicly_indexable": 1,
            "+click_timestamp": 1503684563,
            "+clicked_branch_link": true,
            "+is_first_session": false,
            "+match_guaranteed": true,
            "custom": "blue",
            "random": "FE848A5B-78F7-42EC-A253-9F795FE91692",
            "added": "1503684554354.33",
            "~campaign": "new launch",
            "~channel": "facebook",
            "~creation_source": 3,
            "~feature": "sharing",
            "~id": 429691043152332059,
            "~referring_link": "https://example.app.link/X7OsnWv9TF",
            "~stage": "new person",
            "~tags": [
              "one",
              "two"
            ]
          }
        }

Callback values

  • Additional properties read from the initSession within your app and website integrations
KeyUsage
~idAutomatically generated 18 digit ID number for the link that drove the install/open, if present (0 for dynamic and 3P links)
~referring_linkThe referring link that drove the install/open, if present
~creation_sourceWhere the link was created (0 API
, 1 Quick Link, 2 SDK, 3 iOS SDK
, 4 Android SDK
, 5 Web SDK, 6 Dynamic, 7 Third party)
+match_guaranteedIf the match was made with 100% accuracy
+referrerThe referrer for the link click, if a link was clicked
+is_first_sessiontrue if first session (install), false if any other session (open) or if it did not previously exist in the Branch Link Graph.

Default is false.
+clicked_branch_linkWhether or not the user clicked a Branch link that triggered this session.

Default is false.
+non_branch_linkApp was opened from a non Branch link (third party, invalid Branch deep link, or Branch key mismatch).