Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Мы делаем подобный тип реферальной системы в нашем приложении, которая предоставляет определенное количество очков вознаграждения рефереру (который фактически поделился ссылкой на приложение) при успешной установке приложения новым пользователем (тот, кто получил ссылку ).
Я попытаюсь объяснить нашу реализацию, используя ваш сценарий: Итак, согласно вашей истории пользователей:
Thats it , Мы реализовали это в прошлом месяце, и это увеличило наши загрузки. Дайте мне знать, если это будет полезно.
Если кто-то все еще ищет решение этого вопроса. Я прочитал много блогов и документов по той же проблеме и пришел к следующему выводу: -
IP-адрес + Пользовательский агент + Модель устройства недостаточно для однозначного определения устройства. Поэтому я считаю, что лучше использовать динамические ссылки. Вы можете создавать динамические ссылки, содержащие уникальный идентификатор. И эти данные сохранят перенаправление URL-адресов в хранилище приложений, и даже после установки ваше приложение сможет получить уникальный идентификатор из динамической ссылки. Firebase Google можно использовать для создания динамических ссылок: -
https : //firebase.google.com/docs/dynamic-links/
Или если вы хотите использовать готовое к использованию решение, вы можете обратиться к branch.io
Это можно сделать с помощью Google Campaign Measurement , где в utm_source просто указывается уникальный номер / строка для каждого пользователя, который вы получите, когда пользователь установит приложение в качестве магазина Google Play . после установки. См. этот вопрос .
Альтернативой является предоставление вашим текущим пользователям уникального кода, например, David123 или HenryABC. Они делятся своим кодом (который легко запомнить, поскольку он личный). В вашем приложении вы предоставляете реферальный блок, в который новый пользователь вводит код, чтобы разблокировать дополнительные функции. Таким образом, вы можете отслеживать и не беспокоиться о отпечатке пальца. Большая проблема с методом отпечатка пальца - iOS недостаточно уникальна, а мобильные сети используют IP-адреса. Так что кто-то с iPhone 6s в Лондоне на EE, вероятно, будет иметь тот же отпечаток пальца, что и 100 других людей.