Receive Smart Links on Unity

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

Project Configuration

To set up deep linking follow the next steps:

  1. Login to the GetSocial Dashboard.
  2. Go to the App setting section.
  3. Fill all the fields in Google Play and Apple App Store sections. We use those IDs to redirect the user to the correct store from the Smart Links Landing Page:

    GetSocial Dashboard - iOS and Android settings

  4. Open your project in Unity.

  5. In menu go to GetSocialEdit Settings. Ensure that App Id is valid and AndroidManifest.xml configuration is correct:

    GetSocial Unity Plugin - Deep linking setup

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
GetSocial.GetReferralData(
    onSuccess: (referralData) => {
        if(referralData != null) {
            string navigationPath = (string) referralData.LinkParams["$custom_path"]; // predefined key
            string customValue1 = (string) referralData.LinkParams["custom_key_1"]; // custom key
            bool isGuranteedMatch = referralData.IsGuaranteedMatch; // added metadata

            Debug.Log("App started with referral data: " + referralData);
        } else {
            Debug.Log("No referral data found");
        }
    },
    onFailure: (error) => Debug.LogError("Failed to retrieve referral data, error: " + error.Message)
);

Validate Setup

Android Setup Validation

  1. Go to App infoOpen by default, supported domains should be listed in Supported links section:

    Supported links section

  2. Create a Smart Link from the Dashboard or send a Smart Invite.

  3. Click on the link on your phone, your app should be opened.

    Smart Invite via Twitter with Custom Subdomain

iOS Setup Validation

  1. Switch Unity platform to iOS and build the project.
  2. Open generated Xcode project.
  3. To validate Universal Links setup. Go to Capabilities and validate Associated Domain section:

    Xcode - Capabilities Tab

    • applinks: domains should be added
    • All steps should be checked. If needed, go to developer.apple.com to enable “Associated Domains” for your App ID.
  4. To validate Custom Scheme setup for Deep linking on iOS 8. Open Info.plist file. Check if GetSocial URL schemes added:

Xcode - Info.plist

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.

Troubleshooting

App is not opened after click on the GetSocial Smart Link

Option 1. Outdated provisioning profiles after enabling “Associated Domains” for your App ID. To solve it, just download the latest provisioning profiles from Xcode settings or developer.apple.com.

Option 2. Universal links do not work with wildcard app identifiers (i.e. im.getsocial.*). You have to create a new specific app identifier and new provisioning profile for your app.

Option 3. New app.entitlements in not included in the correct build target. To solve the problem, include app.entitlements into the desired build target.

Next Steps

Give us your feedback! Was this article helpful?

😀 🙁