Как добавить параметры отслеживания в имя пакета Android на теге NFC?
У меня есть теги NFC, которые должны быть доступны для доступа к определенному приложению на моем телефоне. Поэтому я поместил запись приложения Android в тег для моего com.example.app. Затем, если у пользователя нет приложения, его направляют в магазин Google Play, где его можно загрузить.
Тем не менее, я хочу иметь возможность отслеживать, какой тег NFC использовал пользователь. Поэтому я хочу использовать параметры отслеживания, в идеале это было бы com.example.app/?id=1
например. но я не думаю, что вы можете сделать это с пакетами в Java, и я не думаю, что отслеживание Google-Analytics зарегистрирует это, или это будет?
Возможно, где-то в системе Android есть код, который, если видит пакет, которого у него нет, отправляется в магазин Google Play с созданным URL-адресом? Где я могу найти это? Возможно, я мог бы редактировать этот скрипт напрямую?
2 ответа
Если вы хотите отслеживать использование тегов для установки / загрузки вашего приложения
К сожалению, добавление параметров отслеживания в запись приложения Android (AAR) возможно только частично. Например, вы можете создать AAR с именем пакета, установленным на это:
com.example.application&referrer=utm_source%3Dtag1
Это AAR приведет к открытию Play Store для вашего приложения "com.example.application" и добавит параметр отслеживания, указывающий источник кампании "tag1" (на основе измерения кампании Google Analytics SDK).
Однако этот AAR никогда не приведет к открытию вашего приложения напрямую. Независимо от того, установлено ваше приложение или нет, Play Store будет открыт. Это связано с тем, что системная служба NFC не поддерживает параметры отслеживания в AAR.
Я не думаю, что работа Ашока вокруг идеи использования отдельного приложения для отслеживания была бы полезной:
Ваши пользователи должны будут установить второе приложение помимо вашего основного приложения. Если, конечно, если вы интегрируете полную функциональность вашего основного приложения в приложение отслеживания.
Если вы не используете отдельное приложение для отслеживания для каждого тега, который вы хотите отслеживать, вашим пользователям потребуется дважды нажать на тег, чтобы запустить установку основного приложения: после того, как им нужно будет нажать, чтобы установить приложение для отслеживания и один раз для запуска приложения отслеживания и передачи ему параметров. Таким образом, вы можете с таким же успехом применить это двойное нажатие к своему основному приложению, потребовав от пользователя прикоснуться к тегу, чтобы активировать приложение при первом запуске.
Альтернативой может быть использование записи URI вместо AAR. Одним из вариантов будет использование URL-адреса Play Store, который включает параметры отслеживания:
https://play.google.com/store/apps/details?id=com.example.application&referrer=utm_source%3Dtag1
К сожалению, фильтры намерений Android не позволяют фильтровать параметры URL-адреса, поэтому вы можете зарегистрировать свое приложение только для запуска любого URL-адреса " https://play.google.com/store/apps/details" независимо от идентификатора пакета. Таким образом, этот вариант не очень подходит.
Лучшим вариантом будет предоставление веб-службы перенаправителя. Например, ваш перенаправитель может иметь URL:
http://www.example.com/apps/application/tag1
Затем веб-служба перенаправит пользователя в Play Store (либо перенаправив на URL-адрес Play Store, либо на URL "market: //"):
https://play.google.com/store/apps/details?id=com.example.application&referrer=utm_source%3Dtag1
Таким образом, если ваше приложение еще не установлено на устройстве пользователя, нажатие на тег приведет к тому, что URL-адрес " http://www.example.com/apps/application/tag1" будет открыт в веб-браузере (что, в свою очередь, приведет к откройте страницу Play Store вашего приложения и передайте параметры отслеживания).
Если ваше приложение уже установлено, вы можете перехватить событие NDEF_DISCOVERED для всех ваших тегов, зарегистрировав следующий фильтр намерений:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" android:host="www.example.com" android:pathPrefix="/apps/application/" />
</intent-filter>
Затем в своем приложении вы можете получить намерение NDEF_DISCOVERED и определить тег, который запустил ваше приложение, путем анализа URL.
Если вам все равно, какой тег вызвал загрузку вашего приложения, и вы просто хотите отслеживать использование тегов, когда ваше приложение уже установлено
В этом случае вы должны использовать обычный AAR, содержащий имя пакета вашего приложения, и добавить дополнительную запись внешнего типа NFC Forum в качестве первой записи вашего сообщения NDEF:
EXT: example.com:tracking PAYLOAD=tag1
AAR: com.example.application
Затем вы должны зарегистрироваться для этого внешнего типа:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="vnd.android.nfc"
android:host="ext"
android:pathPrefix="/example.com:tracking"/>
</intent-filter>
Если ваше приложение не установлено, AAR обеспечит запуск страницы Play Store вашего приложения. Если ваше приложение установлено, оно будет запущено, и вы сможете проанализировать сообщение NDEF, отправленное вашему приложению, как часть намерения NDEF_DISCOVERED для записи внешнего типа NFC Forum.
вы должны использовать имя пакета приложения как есть при создании Android Application Record (AAR).
Когда устройство Android сканирует ваш тег NFC, оно будет искать все AAR в NDEF, и, если в данный момент не установлено ни одного соответствующего пакета, оно будет передавать намерение воспроизвести хранилище (для первого AAR). Я не верю, что мы можем изменить
"play store"
обработка кода.Но есть обходное решение - если вы хотите использовать play-store и google analytics для отслеживания того, использовался ли ваш nfc-тег, возможно, вы можете подумать о создании простого прокси-приложения / приложения-липучки (может быть имя пакета mycom.nfc.tracking), и имейте этот пакет AAR как первый в вашем NDEF. Ваше настоящее имя пакета приложения AAR следующее.
Это простое приложение отслеживания может иметь только одно действие, и при вызове через nfc оно будет считывать дополнительные идентификаторы аналитики, которые вы поместили в NDEF для целей отслеживания, и обновлять аналитику Google или любую другую используемую вами аналитическую службу, а затем запускать " "Реальное приложение", если установлено, или передайте в игровой магазин для установки реального приложения.
Эта прокси-активность может быть без любого пользовательского интерфейса, поэтому пользователь не заметит ничего подобного. Он прозрачен и дает вам большую гибкость в любом другом бухгалтерском учете / анализе, связанном с NFC.
Если это прокси-приложение / приложение для отслеживания еще не установлено на устройстве, NFC переключится на PlayStore, и вы сможете использовать Google Analytics для отслеживания использования тега NFC. Это не должно повлиять на не-NFC пользователя вашего реального приложения.
Обратите внимание, что сопоставление AAR может быть полностью пропущено, если приложение уже
foreground dispatch feature