SDK Install Referrer для Unity (версия 7.0.0)
SDK Install referrer — инструмент атрибуции для рекламных и аналитических систем. Он позволяет отслеживать количество установок вашего приложения, загруженных из RuStore по рекламным ссылкам.
RuStore принимает ссылки вида https://www.rustore.ru/catalog/app/com.packagename.yourapp?referrerId=<referrer>
.
Когда пользователь переходит по рекламной ссылке и запускает установку приложения, RuStore сохраняет значение referrer
из этой ссылки.
SDK обращается к RuStore, запрашивает значение referrer
и передаёт его в ваше приложение в параметре InstallReferrer
.
Таким образом приложение получает информацию о том, что при переходе по определённой рекламной ссылке была выполнена установка.
После того как RuStore передаёт SDK значение referrer
, оно удаляется из RuStore.
Даже если SDK не запросил referrer
, это значение хранится в RuStore только 10 дней, после чего удаляется.
Подключение в проект
- Установка через Package Manager
- Установка через .unitypackage
Для подключения скачайте со страницы upm_tgz пакеты:
ru.rustore.core-x.y.z.tgz
ru.rustore.installreferrer-x.y.z.tgz
Импортируйте пакеты в проект через Package Manager (Window → Package Manager → + → Add package from tarball...).
Зависимости подключаются автоматически с помощью External Dependency Manager:
- Откройте окно менеджера пакетов (Window → Package Manager → + → Add package from git URL...).
- Используйте ссылку https://github.com/googlesamples/unity-jar-resolver.git?path=/upm для подключения пакета.
- Для устранения ошибки
Google.IOSResolver.dll will not be loaded
установите модуль сборки iOS для вашей версии Unity (UnityHub → Installs → Ваша версия Unity → Add modules → iOS Build Support).
Assembly 'Packages/com.google.external-dependency-manager/ExternalDependencyManager/Editor/1.2.182/Google.IOSResolver.dll' will not be loaded due to errors:
Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.
Если вы используете операционную систему macOS, измените настройки утилиты архивации. В настройках Archive Utility снимите флажок Keep expanding if possible. В противном случае архив проекта будет скачан некорректно.
Для подключения скачайте файл RuStoreUnityInstallReferrerSDK-version.unitypackage
и импортируйте его в проект (Assets → Import Package → Custom Package). Зависимости подключаются автоматически с помощью External Dependency Manager (включен в .unitypackage
).
Если вы используете операционную систему macOS, измените настройки утилиты архивации. В настройках Archive Utility снимите флажок Keep expanding if possible. В противном случае архив проекта будет скачан некорректно.
Также вы можете склонировать код с помощью Git.
Для корректной обработки зависимостей SDK выполните следующие настройки.
-
Откройте настройки проекта: Edit → Project Settings → Player → Android Settings.
-
В pазделе Publishing Settings включите следующие настройки.
- Custom Main Manifest.
- Custom Main Gradle Template.
- Custom Gradle Properties Template.
-
В разделе Other Settings настройте:
- package name.
- Minimum API Level = 24.
- Target API Level = 34.
-
Откройте настройки External Dependency Manager: Assets → External Dependency Manager → Android Resolver → Settings, включите следующие настройки.
- Use Jetifier.
- Patch mainTemplate.gradle.
- Patch gradleTemplate.properties.
-
Обновите зависимости проекта: Assets → External Dependency Manager → Android Resolver → Force Resolve.
Инициализация
Перед вызовом методов библиотеки необходимо инициализировать синглтон клиента.
InstallReferrerClient.Instance.Init();
Получение объекта InstallReferrer
Вызовите GetInstallReferrer()
, чтобы получить InstallReferrer
:
InstallReferrerClient.Instance.GetInstallReferrer(
onFailure: (error) => {
// Process error
},
onSuccess: (result) => {
// Process result
});
})
-
При ответе
onSuccess
сохраните значениеInstallReferrer
в вашем приложении, если вы планируете его использовать. При повторном запросе вместо значенияInstallReferrer
вернётсяnull
.примечаниеInstallReferrer
принимает значениеnull
, если:- Приложение было установлено без передачи
referrer
. InstallReferrer
уже запрашивался ранее.- С того момента, как RuStore получил
referrer
, прошло 10 или более суток.
- Приложение было установлено без передачи
-
При ответе
onFailure
обработайте ошибку в соответствии с логикой вашего приложения. Все возможные ошибки описаны в разделе Возможные ошибки.
public class InstallReferrer {
public long installAppTimestamp { get; }
public string packageName { get; }
public long receivedTimestamp { get; }
public string referrerId { get; }
public long? versionCode { get; }
...
installAppTimestamp
— время установки приложения в виде метки времени.packageName
— имя пакета приложения.receivedTimestamp
— время получения данных о реферере в виде метки времени.referrerId
— идентификатор реферера.versionCode
— версия кода приложения, если доступна.
Возможные ошибки
-
RuStoreNotInstalledException
— на устройстве пользователя не установлен RuStore. -
RuStoreOutdatedException
— версия RuStore, установленная на устройстве пользователя, не поддерживает данный SDK. -
RuStoreException
— базовая ошибка RuStore, от которой наследуются остальные ошибки.