Here is a simple goal. When someone taps a link, the app should open. If the app is not installed, a clean fallback should appear. This tutorial shows how to make that happen with Android App Links, how to apply reliable fallbacks for every device and browser pair, and how to test with a QA matrix that your team can reuse on future launches.
Trimrly is Always Free for core tools. Create short links, dynamic QR codes, and bio pages without extra fees.
What Android App Links are and why teams care
Android App Links allow a standard web URL to open a specific screen inside your Android app. This keeps campaigns consistent across ads, email, SMS, and QR. It also helps retention because users land in the right place without manual searching. For marketers, deep links keep attribution cleaner and shorten the time to action. For developers, they provide a direct route into an activity with the right parameters.
Key pieces you need before launch
- Verified domain with a valid assetlinks.json that lists your app package and SHA256 certificate fingerprints.
- App manifest with intent-filter entries for the host and path you want to claim.
- Consistent URL plan so marketing, product, and engineering use the same paths. A short link wrapper helps control this.
- Fallback URL that explains the missing app case and still allows a useful action like sign in or purchase.
- Testing devices that cover current Android versions and common browsers to validate real user conditions.
Simple mental model
If app is installed, open the deep screen. If app is not installed, open a friendly web screen that completes the same job. Do not send users to a dead end.
Recommended URL patterns
Decide which paths you will support in both app and web. Keep names short and legible, then map them to app activities. Examples below are for illustration.
| Use case | Web URL | In-app target | Notes |
|---|---|---|---|
| Product details | https://example.com/p/1234 | ProductActivity?id=1234 | Readable slug helps with QR and print. |
| Promo landing | https://example.com/promo/spring | PromoActivity?campaign=spring | Use UTMs on the short link wrapper for GA4. |
| Account | https://example.com/account | AccountActivity | Require auth. Consider a soft gate on web. |
Setting up association files
For Android, place a valid .well-known/assetlinks.json at your domain root. It should declare your package name and SHA256 certificate fingerprints. In your app, add intent filters that match the host and paths you want to handle. Keep wildcards tight to avoid unpredictable matches. If your team also ships for iOS, maintain the Apple App Site Association file separately.
Make fallbacks part of the plan
Even a perfect setup will face real world conditions. Some users browse inside an in-app webview. Some run older Android versions. A clean fallback avoids a broken experience. The simplest option is a mobile web page that mirrors the target screen and offers an optional open in app button. If the app is not installed, direct users to a meaningful path that still creates value such as a cart handoff or a saved playlist.
The QA matrix you can reuse on every launch
Testing is not just one tap on one phone. Create a matrix that crosses device version, browser, source, and state of installation. The table below shows a starter grid your team can copy into a spreadsheet.
| Device | Android | Browser or Source | App installed | Expected result | Status |
|---|---|---|---|---|---|
| Pixel 7 | 14 | Chrome | Yes | Opens app target screen ✅ | ✅ |
| Samsung S22 | 13 | Gmail tap | No | Opens fallback web page then prompts install | ✅ |
| Pixel 5 | 12 | SMS tap | Yes | Confirms app association and deep links correctly | ✅ |
| Samsung A52 | 11 | Instagram webview | No | Shows web fallback that completes the action | ⚠️ |
| Oppo A74 | 11 | QR scan from print | No | Short link resolves to fallback page with CTA | ✅ |
| Pixel 8 | 14 | Chrome incognito | Yes | Deep links as normal | ✅ |
| Various | 10 | Legacy in-app webview | Mixed | At worst, opens fallback with clear CTA | ⚠️ |
Short links and QR keep everything consistent
Use a short link as the public facing URL. It is easier to print on packaging and outdoor media. It is also simpler to read over the phone and faster to paste in social captions. With Trimrly, you can generate a branded short link, attach UTMs for GA4, and swap destinations without breaking older assets. For offline campaigns, pair the short link with a dynamic QR code. Both resolve to the same deep link or fallback and both report clean analytics.
Copy and adapt this launch checklist
- Pick a single domain for App Links and confirm HTTPS is enforced everywhere.
- Publish a valid assetlinks.json with correct SHA256 fingerprints.
- Limit intent filters to the paths you truly need. Keep patterns specific.
- Define a friendly fallback page that completes the same job as the app screen.
- Wrap user facing links in a branded short link for analytics and control.
- Attach UTMs that match your team UTM governance rules.
- Build a QA matrix with devices, Android versions, and sources. Check both states: app installed and not installed.
- Test from real entry points. Email, SMS, social webviews, QR from print, paid ads.
- Log each test with date, OS, browser, link used, result, and a screenshot.
- Create a support note for your CS team that explains what users should expect when tapping links.
Troubleshooting quick wins
| Symptom | Likely cause | Fix | Outcome |
|---|---|---|---|
| Tapping opens browser instead of app | Domain not verified or path not claimed | Check assetlinks.json and intent filters | App opens correctly ✅ |
| Some devices open app, others do not | Certificate fingerprint mismatch | Update fingerprints in the association file | Consistent behavior ✅ |
| In-app webview blocks open | Webview restrictions | Send users to fallback with a clear button to continue | Usable path maintained ✅ |
| QR works, SMS link fails | Different redirector in play | Unify all sources behind the same short link | Parity restored ✅ |
| Analytics looks fragmented | UTMs missing or inconsistent | Use a preset and enforce governance | Clean attribution ✅ |
How Trimrly helps without extra steps
- Always Free tools for short links, QR codes, and bio pages. Start fast and measure results.
- Branded links that are easy to read on print and packaging.
- UTM presets so teams stop guessing campaign names.
- Dynamic QR so you can change destinations without reprinting.
- Simple analytics that show clicks, scans, and top referrers at a glance.
Key takeaway
Deep links are not a novelty. They are the shortest route from intent to action. When Android App Links are verified and tested, your campaigns feel smooth and trustworthy. When fallbacks are clear, no user gets stuck. Wrap it in a short link and a dynamic QR, then track it with UTMs. That is a reliable system your team can repeat for the next promotion and the one after that.
FAQs
What is the simplest Android App Links setup?
Verify your domain with a correct assetlinks.json, add intent filters for the exact paths you need, and choose a friendly fallback page that mirrors the in-app action.
How do I test across different Android versions and browsers?
Create a QA matrix that covers device model, Android version, browser or source, and app installed state. Log each run with result and screenshot. Reuse the sheet for every launch.
What if my audience mostly clicks from social apps?
Expect some webviews to limit open in app behavior. Your fallback should remain useful and allow users to continue on the web or install the app with context.
Can I use short links and QR with deep links?
Yes. Short links keep URLs clean and trackable. Pair them with a dynamic QR for print, packaging, and outdoor. Both resolve to the same deep or fallback path.
Where does Trimrly fit in this workflow?
Trimrly provides branded short links, dynamic QR codes, and UTM presets. It helps teams keep links consistent and measurable while the app team manages domain association and intent filters.