Как добавить параметры отслеживания в имя пакета 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

Другие вопросы по тегам