Что такое и как реализовать deferred deep link?

Что такое и как реализовать deferred deep link?
Deferred deep link – механизм обработки deep link, который подразумевает переход по ссылке после установки приложения.
1. Пользователь, не имеющий установленного приложения, кликает на ссылку.
2. Для пользователя открывается экран установки приложения в Google Play Store.
3. Пользователь устанавливает приложение.
4. После установки приложение автоматически открывается и переходит на экран, который требует deep link.

В Android и Google Play нет поддержки deferred deep link из коробки. Один из способов реализации – использование referrer ссылки. Referrer используется для измерения рекламных кампаний (хранит информацию из каких источников пришли и установили приложение новые пользователи).

По сути referrer – это просто параметр в Google Play URL:

https://play.google.com/store/apps/details?id=ru.itsobes&referrer=itsobes%3A%2F%2FAndroidSobes%2F7.
Эта ссылка открывает Google Play и переходит на экран гипотетического приложения с applicationId=ru.itsobes. Параметр referrer URL Encoded и в декодированном состоянии выглядит так: itsobes://AndroidSobes/7.

Для получения значения referrer после установки приложения нужно добавить receiver с intent-filter, который обрабатывает action="com.android.vending.INSTALL_REFERRER". Пример на скриншоте. Когда пользователь устанавливает приложение, вызывается метод onReceive() и referrer ссылка передается в extras объекта Intent.

После получения deep link как referrer ссылки в ресивере нужно стартовать активити и перейти на шаг, описанный в этом посте.