Deepviews

Overview

A Deepview is a mobile web splash page, hosted by Branch, that gives a preview of the in-app content behind a given Branch link. When a visitor opens one of your Branch links and does not have your app installed, you can show them a Deepview instead of sending them directly to the App/Play Store.

Deepviews are discoverable in all search portals (Google, Apple Spotlight, Bing, etc), opening up new mechanisms for people to find your app, and drive much higher conversions to install than sending visitors to the App/Play Store directly. Here's an example flow:

image

Intended for apps without a mobile website

If you already have a mobile website with content, Journeys is better suited.

1. Enable Default Deepviews Templates

  1. From the Configuration page, navigate to the Deepviews tab.
  2. Deepviews are configured separately for visitors on each platform: iOS, Android, Desktop. There's a tab for each platform, and pre-built templates that you can customize. Review the templates, for the ones you want to customize toggle the Enable slider.
    If you wish to use a custom template, click + New Deepview at the bottom of the page, and follow the steps outlined here.
  3. When you click to enable Deepviews, you will be prompted with Are you sure you want to enable Deepviews on iOS? review the prompt and click Enable.
  4. Your Deepview is now ready to be used! When you click to Create a new link, when you see an option to configure redirects you'll select the Deepview you want used.

Note: By default, your Deepview pulls content from the Social Media Preview section of your app's default link settings. If you need to update your app icon, or the text on your Deepview, navigate to the Social Media Preview section of your app's default link settings.

Enabling Desktop Deepviews

To enable desktop Deepviews, be sure to select "Branch-hosted SMS Landing Page" for Desktop redirects on Link Settings.

Note that this will override any Text-Me-The-App page you have configured.

1a. Create a Custom Deepview Template

  1. From the Configuration page, navigate to the Deepviews tab.
  2. There are 2 ways to create a custom template:
    a. Find a template you click, and click on the ... and then click Duplicate.
    b. Alternatively, scroll to the bottom of the Deepview page, and click + New Deepview.

Note: Unlike the prebuilt template, custom Deepview templates are shared between all platforms (iOS, Android, and desktop), and cannot be deleted after creation.

  1. Next, you will be brought to the Deepview editing screens. The Deepview editing screen contains two tabs:

    a. Basic: Displays your new template, and allows you to modify the default fallback OG tags used if none are specified for a link.
    b. Editor: The Editor tab allows you to edit the raw HTML and CSS for your template. The rendered template will update as you modify the markup.

  2. In this next step, the fields you configure are duplicates of the Social Media Preview section of your app's default link settings. Any updates will be applied in both locations. Configure the following:
    a. Deepview Settings:

    * <span class="notranslate">**Title**</span>: Internal name for your reference
    * <span class="notranslate">**Key**</span>: The value that you will reference when creating a link. E.g., <span class="notranslate">`$ios_deepview: [key]`</span>
    

    b. App Settings:

    * <span class="notranslate">**OG Title**</span>: Default value used if <span class="notranslate">`$og_title`</span>: is not specified for a link.
    * <span class="notranslate">**OG Description**</span>: Default value used if <span class="notranslate">`$og_description`</span>: is not specified for a link.
    * <span class="notranslate">**Image URL**</span>: Default value used if <span class="notranslate">`$og_image_url`</span>: is not specified for a link.
    
  3. Click Save when you're done. Your Deepview is now ready to be used! When you click to Create a new link, when you see an option to configure redirects you'll select the Deepview you want used.

2. Deepviews Advanced Configurations

The default Deepview template simply displays the content from three of the link's control parameters. You can specify the content of these parameters when creating your link to control what will display in that link’s Deepview. If nothing is set for a particular link, we will gracefully fall back to the OG values set for your entire app in Configuration > General > Social Media Preview.

Key
Value

$og_title

The title you'd like to appear on the deepview

$og_description

The description you'd like to appear on the deepview

$og_image_url

The URL for the image you'd like to appear on the deepview

Hosting your own OG tags

If you want to use OG tags you host elsewhere, leave these parameters empty and specify a $desktop_url control parameter when you create the link. Branch will perform a one-time scrape to populate the Deepview using the OG tags from the URL you specify.

If you're creating a link by appending query parameters, just append the parameters to the URL. Please make sure to URL encode everything, lest the link will break.

javascript "https://[branchsubdomain]?%24og_title=MyApp%20is%20disrupting%20apps&$og_image_url=http%3A%2F%2Fmyapp.com%2Fimage.png"

When you create links via a mobile SDK, you simply need to set the OG tag parameters. Below are few examples, but you can see every platform here.

  • iOS - Objective C

    ```objectivec

    BranchUniversalObject *branchUniversalObject = [[BranchUniversalObject alloc] initWithCanonicalIdentifier:@"item/12345"];
    // Facebook OG tags -- this will overwrite any defaults you set up on the Branch Dashboard
    branchUniversalObject.title = @"My Content Title";
    branchUniversalObject.contentDescription = @"My Content Description";
    branchUniversalObject.imageUrl = @"https://example.com/mycontent-12345.png";

    // Add any additional custom OG tags here
    [branchUniversalObject addMetadataKey:@"$og_video" value:@"http://mysite/video.mpg"];
    ```

  • iOS - Swift

    ```swift
    let branchUniversalObject: BranchUniversalObject = BranchUniversalObject(canonicalIdentifier: "item/12345")
    // Facebook OG tags -- this will overwrite any defaults you set up on the Branch Dashboard
    branchUniversalObject.title = "My Content Title"
    branchUniversalObject.contentDescription = "My Content Description"
    branchUniversalObject.imageUrl = "https://example.com/mycontent-12345.png"

    // Add any additional custom OG tags here
    branchUniversalObject.addMetadataKey("$og_video", value: "http://mysite/video.mpg")
    ```

  • Android

    ```java
    BranchUniversalObject branchUniversalObject = new BranchUniversalObject()

                  .setCanonicalIdentifier("item/12345")
    

    // Facebook OG tags -- This will overwrite any defaults you have set on the Branch Dashboard

                  .setTitle("My Content Title")
                  .setContentDescription("My Content Description")
                  .setContentImageUrl("https://example.com/mycontent-12345.png")
    

    // Add any additional custom OG tags here

                  .setContentMetadata(new ContentMetadata().addCustomMetadata("$og_video", "http://mysite/video.mpg"));
    

    ```

Note: the Deep Link section accepts most link control parameters, but $og_title, $og_description and $og_image_url cannot be specified there.

Enable per-link Deepviews

If you don't want to enable Deepviews globally, you can do it for each platform on a per link basis by inserting custom link control parameters link control parameters.

Enable Desktop Deepviews by appending query parameters:

javascript "https://[branchsubdomain]?%24desktop_deepview=default_template&%24ios_deepview=default_template"

Enable iOS and Android Deepviews through the SDK. Below are few examples, but you can see every platform here

  • iOS - Objective C

    objectivec BranchLinkProperties *linkProperties = [[BranchLinkProperties alloc] init]; linkProperties.feature = @"sharing"; linkProperties.channel = @"facebook"; [linkProperties addControlParam:@"$ios_deepview" withValue:@"default_template"]; [linkProperties addControlParam:@"$android_deepview" withValue:@"default_template"];

  • iOS - Swift

    swift let linkProperties: BranchLinkProperties = BranchLinkProperties() linkProperties.feature = "sharing" linkProperties.channel = "facebook" linkProperties.addControlParam("$ios_deepview", withValue: "default_template") linkProperties.addControlParam("$android_deepview", withValue: "default_template")

  • Android

    ```android
    LinkProperties linkProperties = new LinkProperties()

                 .setChannel("facebook")
                 .setFeature("sharing")
                 .addControlParameter("$ios_deepview", "default_template")
                 .addControlParameter("$android_deepview", "default_template");
    

    ```

Disable per-link Deepviews

If you've enabled Deepviews globally, it's likely that you'll want to disable them now and again for specific use cases. To do so, just follow the instructions for enabling Deepviews for one link and set one or more of the key values to false.

Key
Value

$ios_deepview

false

$android_deepview

false

$desktop_deepview

false

3. Deepview Analytics

Branch lets you track the flow of users through Deepviews. You can find this information on the summary page of the Branch dashboard.

There are various metrics to understand when deep linking from your mobile website with Deepviews.

  • Views: a user viewed the mobile site.
  • Clicks: a user clicked on the Deepview CTA
  • Installs: a user installed the app for the first time
  • Upgrades: a user re-opened or upgraded the app from a previous version

Only users who do not have the app will go through this flow. You can view the total counts and conversion rate from each step on this chart.

No Deepview CTA Click

If a user without your app clicks a Branch link with an Active Deepview enabled but does not click the Deepview CTA, downstream activity (e.g. installs, purchases) will not be attributed to the original link click.

Glossary

Active Deepviews

Active deepviews should only show when the app is not installed (or when direct deep linking doesn't work like in the Facebook webview), and pause on the deepview page. These let the user preview the content, ultimately deciding if they want to install the app. The user must click the call-to-action of Get The App in order to be sent to the appropriate App or Play Store page.

| Key | Value | Default Template
| --- | --- | ---
| $ios_deepview | The name of the template to use for iOS. | default_template
| $android_deepview | The name of the template to use for Android. | default_template
| $desktop_deepview | The name of the template to use for the desktop. | default_template

Passive Deepviews

Passive deepviews should also only appear when the app is not installed, but instead of pausing on the deepview page, they will attempt to redirect to the App/Play Store immediately without the user taking action. These should be used when you don't want a blank white screen to be left in a browser after the user clicks a link to go install your app. Note that these are automatically enabled in Safari iOS 10.3 and Facebook iOS webviews if you're attempting to redirect to your Store page.

To disable passive deepviews, simply set the value to false in the link data.

| Key | Value | Default
| --- | --- | ---
| $ios_passive_deepview | The name of the template to use for iOS. | default_template
| $android_passive_deepview | The name of the template to use for Android. | default_template

To enable another template as the default passive deepview, select the 'Set as Passive Default' option. You can also change the template on a link level by providing the template name in the control parameters. If you're creating a link by appending query parameters, you simply need to append the parameters to the URL. Please make sure to URL encode everything, lest the link will break.

FAQs

Can I change my app icon?
You can upload a new icon in the Social Media Preview section.

Can I edit a template?
No, you cannot edit a template. However, you can duplicate a template, and then customize the template.

Can I add Javascript to my custom Deepview template?
No. Before rendering the template, we sanitize the markup of Javascript for security reasons. This includes script tags and event attributes on tags.

Updated about 11 hours ago

Deepviews


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.