Deeplinks

Deeplinks let Pulsate campaigns open a specific screen in your app (or another app, or the phone dialer). You define deeplinks once in the Pulsate CMS; campaign builders then attach them to buttons and feed posts.

1. Create deeplinks in the Pulsate CMS

In the Pulsate CMS, go to your app's Settings / App Settings and use Add Deeplink / Manage Deeplinks:

  1. Enter a name and the deeplink value (e.g. myapp://offers/summer).
  2. Save. The deeplink is now selectable in the campaign builder.

Phone numbers: a deeplink value of tel:+123456789 opens the phone dialer with that number pre-filled — works on both Android and iOS.

Deeplinks can also be managed programmatically through the CMS API.

2. Handle the scheme in your app

Register the scheme on the Activity that should open, in AndroidManifest.xml:

<activity
    android:name=".DeeplinkActivity"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- Handles any myapp://offers/... URI -->
        <data
            android:scheme="myapp"
            android:host="offers" />
    </intent-filter>
</activity>

⚠️

Activities with intent filters must declare android:exported="true" on Android 12 (API 31) and above — the app won't install otherwise.

Choose a unique scheme

If two installed apps register the same scheme, Android shows a disambiguation dialog instead of opening your app directly. Pick a scheme that is unmistakably yours (e.g. your app's name or reverse domain), not something generic like app://.

Advanced: intercepting links in code

By default the SDK opens URLs and deeplinks itself. To intercept them (custom intent flags, in-app routing, analytics), set an IPulsateLinkListener.