Receive Smart Links on Android

GetSocial Smart Links combine two types of mobile app linking:

  • Deep Linking provides a way to direct the user to a specific location within a mobile app rather than simply launching the app.
  • Deferred Deep Linking that allows users to deep link to content even if the app is not already installed.

Each Smart Link has associated referral data, which you can retrieve on the receiver side. This data consists of parameters you specify during link creation and additional metadata added by GetSocial.

Prerequisite

Dashboard Configuration

To set up deep linking follow the next steps:

  1. Login to the GetSocial Dashboard.
  2. Go to the App setting section.
  3. Ensure that Package name and Signing-certificate fingerprint fields matches the app you are integrating:

    GetSocial Dashboard - Android Package Name Configuration

Setup Deep Linking

GetSocial Gradle Plugin configures everything automatically. If you’re not using plugin read how to configure deep linking manually.

Retrieve Referral Data

Returned referral data contains:

  1. Predefined link params and custom key-value pairs added during link creation, or as URL query parameter overrides.
  2. Metadata added by GetSocial, e.g., channel, referrer user, whether we guarantee attribution, etc.

For a full list of available properties check the Smart Link params reference and API Reference.

You can retrieve referral data attached to the Smart Link when:

  • The app is launched for a first time after being installed by clicking on the GetSocial Smart Link.
  • The app was opened by clicking on the GetSocial Smart Link.

The code below show how to do it:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
GetSocial.getReferralData(new FetchReferralDataCallback() {
    @Override
    public void onSuccess(@Nullable ReferralData referralData) {
        if(referralData != null) {
            String navigationPath = (String) referralData.getLinkParams().get("$custom_path"); // predefined key
            String customValue1 = (String) referralData.getLinkParams().get("custom_key_1"); // custom key
            boolean isGuranteedMatch = referralData.isGuaranteedMatch(); // added metadata

            Toast.makeText(MainActivity.this, "App started with referral data: " + referralData, Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(MainActivity.this, "No referral data found", Toast.LENGTH_LONG).show();
        }
    }

    @Override
    public void onFailure(GetSocialException error) {
        Toast.makeText(MainActivity.this, "Failed to retrieve referral data, error: " + error, Toast.LENGTH_LONG).show();
    }
});

Single Task/Single Top Launch Mode

To retrieve referral data when your Activity is launched in Single task or Single top mode, you have to add following code to your Activity:

1
2
3
4
5
@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
}

Validate Setup

  1. Create a Smart Link from the Dashboard or send a Smart Invite.
  2. Click on the link on your phone, your app should be opened.

    Make sure to run this test on the device with Android 6+ and Android below 6, as we use different deep linking mechanics on pre-Android 6 devices.

    Smart Invite via Twitter with Custom Subdomain

  3. Additionally on Android 6+ devices, go to App info -> Open by default, supported deep linking domains should be listed in Supported links section:

    Supported links section

Whitelist Test Devices

To get the install attribution on every install you have to whitelist your testing devices on the GetSocial Dashboard.
For more information check Whitelist Test Devices.

Next Steps

Give us your feedback! Was this article helpful?

😀 🙁