How do QR code deep links work?

A QR code deep link is a Deeplink URL encoded as a QR image. Scanning it opens the app when the app and domain association allow it, or the store or web fallback when they do not. Deeplink (deeplink.in) generates that image from the link in the dashboard. The code is not a different kind of link.

The code is only an encoding of the URL

A QR code stores text. For deep linking, that text should be the HTTPS URL of the campaign link, including the path and any UTM parameters you care about. The camera app or a scanner reads the text and opens it as a link. From that moment the behavior is identical to a tap in email or WhatsApp. There is no separate “QR protocol” in iOS or Android for deep links.

Because the URL is the product, a code printed last month keeps working when you change routing only if the URL itself still resolves. If you need to change the destination, change the link the URL points at, or print a new code for a new URL. A code cannot be edited after it is printed. The link host can still change where that URL goes, as long as you keep serving that exact URL.

The dashboard link screen generates a QR image for the link once a path is entered. It encodes the link domain plus the path. You can download a larger PNG from that screen. The image is produced for the URL you already created. It does not create a different destination.

Print and placement

Use the HTTPS URL, not a custom scheme. A scheme may fail in camera apps that only open web links. Use a host people can also type if the code is damaged: a verified custom domain is easier to read than a long subdomain. The association files for Universal Links and Android App Links must be on that same host, or installed apps will not take over from the camera.

Leave quiet space around the code, print it large enough for the distance people will scan from, and keep contrast high. Those are printing constraints, not Deeplink settings. A code on a glossy screen or a moving vehicle fails for optical reasons even when the URL is correct. Test a scan with the app installed and with the app removed, in the lighting you expect.

If the same poster and an email should be measured separately, encode different UTM parameters or use two links. The QR image will differ because the URL text differs. Routing can still share a path and a fallback.

Analytics and deferred opens

A successful scan that opens the URL is a click on that link. Installs attributed to the link, and the click-to-install rate, show up in the same analytics as any other channel. The dashboard does not know the scan came from paper unless you labeled the link with UTMs such as a source or campaign name you choose. There is no automatic “this was a poster” field.

Deferred deep linking still applies. Someone who scans the code without the app can install and reach the original path on first open, if that integration is in place. Someone who already has the app should hit the Universal Link or App Link path and skip the store. Test both. A scan that only opens a website means verification failed or the URL in the code is not the verified host.

TODO: [fact needed] whether the QR download should be mentioned as a supported public feature in docs, and the image dimensions the team wants cited. The dashboard currently requests a QR image for the link URL and offers a PNG download.

Steps

  1. Create the link first. Set the path, fallback, and UTMs that identify this placement, such as a poster or a package insert.
  2. Generate the QR image. On the link screen, use the generated QR code for that path and download the PNG if you need a file.
  3. Scan it on a phone. Confirm the camera opens the URL, the installed app takes over when verification is valid, and the uninstalled path hits the fallback.
  4. Check the link report. After the codes are in the world, clicks and installs for that URL are the usage signal. UTMs distinguish this placement from other uses of a similar path.

What a scan can do

Scanner resultLikely cause
App opens on the right screenURL is the verified link host and the app maps the path
Website or store opensApp missing, or domain verification failed
Nothing opensThe image is unscannable, or the text is not a URL
Wrong campaign in analyticsThe code encoded a different URL or different UTMs than you think

Example

A table tent encodes https://go.example.com/menu?utm_source=qr&utm_medium=print&utm_campaign=table. go.example.com is the verified custom domain. The fallback is the web menu. A guest with the app lands in the menu screen. A guest without the app sees the website. The next day, the link report shows clicks tagged with that campaign. Replacing the tent with a new offer means a new path or a new URL, then a new image, because the printed code cannot change.

Frequently asked questions

Does Deeplink generate the QR code?

Yes. The dashboard link screen builds a QR image from the link domain and path and can download a PNG. The code contains that URL only. Scanning does not use a different router than a tap on the same URL.

Can I change the destination after printing?

You can change where that exact URL routes only if the link host still serves that URL and you edit the link behind it. You cannot change the text inside a code that is already printed. If the URL itself must change, print a new code. Confirm the edit on a phone before you rely on old paper.

Get started

Create a Deeplink account to make a link, set a web fallback, and review click and install analytics.

Create a Deeplink accountRead about Deeplink pricingOpen the Deeplink documentation