Deeplinks

Route Pulsate campaign links into your app, other apps, or phone numbers.

Deeplinks let you link from Pulsate to your app, other apps, or phone numbers. In the Pulsate CMS you can add buttons to your marketing campaigns that lead to deep links in your application.

❗️

Deeplinks must be unique

When creating deeplinks that target your app, pick a scheme / name that is unique. If several apps on the device share the same deeplink scheme, tapping the link makes the phone ask which app to open instead of opening yours directly.

Add / edit / delete deeplinks in the Pulsate CMS

The first step is adding deeplinks in the Pulsate CMS so you can use them in campaigns (https://control.pulsatehq.com).

  1. From the CMS dashboard, select your application and open Settings → App Settings.
  2. In App Settings you will find the Add Deeplink and Manage Deeplinks sections.
  3. To add a deeplink, enter its name and value and click Save.

The deeplink is now added to your account and available when building campaigns. Existing deeplinks can be changed or removed with the Edit and Delete buttons next to each entry.

📘

Deeplink to call a phone number

To open the Phone app with a number pre-filled, create a deeplink with a URL formatted as tel:+123456789. This opens the Phone app on both iOS and Android with +123456789 as the number to call.

Register your URL scheme in Xcode

To support deep linking, declare your app's URL scheme in Xcode:

  1. Select your project in Xcode and open the Info tab.
  2. Expand URL Types and add a new entry.
  3. Enter your bundle identifier in the Identifier field and the URL scheme you want to use.

You can test the scheme by entering myapp:// in the device's web browser.

Handling Pulsate deeplinks

Register a link listener on the PULPulsateManager instance. Pulsate invokes your listener when a campaign or CTA link needs to be handled. Return true if your app consumed the link, or false to let Pulsate fall back to its default handling.

import PULPulsate

guard let manager = PULPulsateFactory.getDefaultInstance() else { return }

manager.setPULPulsateLinkListener { link -> Bool in
    if link == "myapp://clothes" {
        self.openClothesViewController()
        return true
    }
    return false
}

📘

Note

The listener receives the link as a String (PULPulsateLinkListener = (String) -> Bool). Register it once during startup, for example after the session has started.

Next steps