A comprehensive guide of common deep links and deferred deep links issues which our engineers have solved and our customers have raised tickets for. Following all the points in this guide will help you solve any issue which you might encounter while creating deep links. This is a common guide which will help you. Even if you're not using smler.
Android Deferred Deep link issues
These are the common deep link issues our engineers regularly see and how to fix it if you encounter the same
1. My deep links are opening in the browser even though my app is installed.
This is usually caused by one of three configuration issues. Let's go through them in order.
a. Verify your Asset Links file is accessible
Check that your Digital Asset Links file is publicly accessible at:https://yourdomain.com/.well-known/assetlinks.json
You can also use our free android asset links validator to validate it.
b. Check your AndroidManifest.xml
In your AndroidManifest.xml, ensure the intent filter for your deep link activity includes android:autoVerify="true". This tells Android to automatically verify the domain association at install time.
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" android:host="yourdomain.com" />
</intent-filter>c. Confirm domain verification on the device
To check whether Android has successfully verified the domain, navigate to: Settings → Apps → [Your App] → Open by default If your domain appears under "Supported web addresses", the link association is verified and deep links should open your app directly. If the domain is missing, re-check steps 1 and 2 Android likely failed verification silently.
You can also optionally check the domain. This will force android to open the link in your app. Only do this in debug environment. In prod you would have to check step 1 and 2. To make sure your assets are correctly placed.
2. Referrer param is null when my app opens.
Very easy fix for this is to have separate devices for development and production testing. We have had multiple occasions, where if we have development build installed. On the same device if we install from playstore, the referrer received is null. If you encounter this, we recommend you try a fresh install from playstore in a new device and then test it.
3. How to check if referrer information is being passed or not?
This troubleshooting step is not limited to smler. It's a generic one, if you want to make sure server is passing referrer information to playstore or not. Connect your device to pc -> enable debug mode. Open android studio and check the log cat. In the logcat section search for referrer. In this you'll find a log line from playstore saying "Referrer information consumed successfully"
4. I've hit smler conversion endpoint multiple times. Is there any issue?
Smler's conversion endpoint is idempotent. So, even if you hit the smler endpoint multiple times. With the same clickId. Conversion will be counted only once.
iOS Deferred Deep link issues
Common issues we have seen in smler as well as other deferred deep links implementation
1. When sending user to app store there's an intermediate screen
This is an intentional behaviour which is on by default in smler. Unlike android iOS does not have any referrer parameter which makes it difficult to track users. So, smler shows an intermediate screen, requesting user to copy the tracking code in clipboard which could be used later.
You can disable this feature. By navigating to deferred links section -> iOS -> Advanced under this toggle the intermediate screen feature. Once, you disable this you would have to rely on probabilistic based matching
2. I've added asset file yet links are not opening in app.
If you have added the asset file. Yet, the links are being opened in browser. First think you should verify is weather the path param in asset files is matching the url or not. If the path param is not matching then, iOS will not deligate the link handling to your app.
If you have both things in place. Make sure, while you are building your app. You're associating your domain with the build.
Published with LeafPad