Возможности мониторинга плагина Astromkey для Android Gradle: различия между версиями
ENetrebin (обсуждение | вклад) (Новая страница: « С помощью следующих параметров конфигурации вы можете настроить возможности монитори...») |
ENetrebin (обсуждение | вклад) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
С помощью следующих параметров конфигурации вы можете настроить возможности мониторинга ЕдиногоАгента и точно настроить процесс автоинструментирования для этих функций. | |||
С помощью следующих параметров конфигурации вы можете настроить возможности мониторинга | |||
== Мониторинг действий пользователя == | == Мониторинг действий пользователя == | ||
ЕдиныйАгент создает действия пользователя на основе компонентов пользовательского интерфейса, которые инициируют эти действия, и автоматически объединяет данные о действиях пользователя с другими данными мониторинга, такими как информация о веб-запросах и сбоях. ЕдиныйАгент продлевает время жизни действий пользователя, чтобы правильно объединять их с другими событиями, которые выполняются в фоновом потоке или сразу после действия пользователя. | |||
=== Настроить мониторинг действий пользователя === | === Настроить мониторинг действий пользователя === | ||
Вы можете настроить мониторинг действий пользователя с помощью свойств <code>timeout</code>и <code>maxDuration</code>. Все свойства, связанные с мониторингом действий пользователя, являются частью UserAction DSL , поэтому настраивайте их с помощью <code>userAction</code>блока . | Вы можете настроить мониторинг действий пользователя с помощью свойств <code>timeout</code>и <code>maxDuration</code>. Все свойства, связанные с мониторингом действий пользователя, являются частью UserAction DSL , поэтому настраивайте их с помощью <code>userAction</code>блока . | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 17: | Строка 16: | ||
} | } | ||
}</code> | }</code> | ||
С помощью этого <code>timeout</code>свойства вы можете настроить время, в течение которого | С помощью этого <code>timeout</code>свойства вы можете настроить время, в течение которого ЕдиныйАгент может добавлять другие события к вновь созданному действию пользователя. При обнаружении другого взаимодействия с пользователем ЕдиныйАгент прекращает добавлять события к действию пользователя предыдущего взаимодействия, независимо от настроенного <code>timeout</code>значения. Вместо этого ЕдиныйАгент добавляет события только к действию пользователя из текущего взаимодействия с пользователем. | ||
По <code>timeout</code>истечении периода времени | По <code>timeout</code>истечении периода времени ЕдиныйАгент проверяет, есть ли открытые события, и ждет завершения этих событий. С помощью <code>maxDuration</code>свойства вы можете настроить максимальную продолжительность этих действий пользователя. Если открытое событие, например веб-запрос, все еще не завершено по истечении этого периода, ЕдиныйАгент удаляет эти события из действия пользователя и закрывает действие пользователя с соответствующим значением времени окончания. | ||
Укажите значение для обоих свойств в миллисекундах. Значение свойства <code>maxDuration</code>должно быть равно или больше значения свойства <code>timeout</code>. | Укажите значение для обоих свойств в миллисекундах. Значение свойства <code>maxDuration</code>должно быть равно или больше значения свойства <code>timeout</code>. | ||
Строка 37: | Строка 36: | ||
<code>timeout</code>Для каждого свойства и можно настроить только одно значение <code>maxDuration</code>, и эти значения должны соответствовать всем действиям пользователя на всех устройствах. | <code>timeout</code>Для каждого свойства и можно настроить только одно значение <code>maxDuration</code>, и эти значения должны соответствовать всем действиям пользователя на всех устройствах. | ||
ЕдиныйАгент также сообщает о действиях пользователя, которые не содержат дочерних событий. Чтобы отказаться от таких действий пользователя, используйте <code>emptyActions</code>свойство. | |||
=== Отключить мониторинг действий пользователя === | === Отключить мониторинг действий пользователя === | ||
Вы можете полностью отключить мониторинг действий пользователя с помощью <code>enabled</code>свойства. В этом случае все остальные свойства игнорируются, поэтому <code>enabled</code>во избежание путаницы укажите только свойство. | Вы можете полностью отключить мониторинг действий пользователя с помощью <code>enabled</code>свойства. В этом случае все остальные свойства игнорируются, поэтому <code>enabled</code>во избежание путаницы укажите только свойство. | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 52: | Строка 51: | ||
Плагин автоматически обрабатывает следующие слушатели и методы: | Плагин автоматически обрабатывает следующие слушатели и методы: | ||
* | * Android | ||
** <code>android.view.View$OnClickListener</code> | ** <code>android.view.View$OnClickListener</code> | ||
** <code>android.widget.AdapterView$OnItemClickListener</code> | ** <code>android.widget.AdapterView$OnItemClickListener</code> | ||
Строка 66: | Строка 65: | ||
Вы можете деактивировать определенные датчики через свойства DSL UserAction Sensor и настроить их внутри <code>sensors</code>блока . | Вы можете деактивировать определенные датчики через свойства DSL UserAction Sensor и настроить их внутри <code>sensors</code>блока . | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 79: | Строка 78: | ||
=== Именование действий пользователя === | === Именование действий пользователя === | ||
Для создания имен действий пользователя | Для создания имен действий пользователя ЕдиныйАгент захватывает заголовок элемента управления из различных атрибутов в зависимости от используемого прослушивателя или метода. Подробнее см. в таблице ниже. | ||
{| class="wikitable" | {| class="wikitable" | ||
!Слушатель или метод | !Слушатель или метод | ||
Строка 111: | Строка 110: | ||
=== Маскировать действия пользователя === | === Маскировать действия пользователя === | ||
Плагин | Плагин Ключ-АСТРОМ для Android Gradle версии 8.249+ | ||
По умолчанию имена действий пользователя получаются из заголовков элементов пользовательского интерфейса , например заголовков кнопок или пунктов меню. В редких случаях адреса электронной почты, имена пользователей или другая личная информация могут быть непреднамеренно включены в имена действий пользователя. Это происходит, когда эта информация включена в параметры, используемые для заголовков элементов управления, что приводит к именам действий пользователя, таким как <code>Touch on Account 123456</code>. | По умолчанию имена действий пользователя получаются из заголовков элементов пользовательского интерфейса , например заголовков кнопок или пунктов меню. В редких случаях адреса электронной почты, имена пользователей или другая личная информация могут быть непреднамеренно включены в имена действий пользователя. Это происходит, когда эта информация включена в параметры, используемые для заголовков элементов управления, что приводит к именам действий пользователя, таким как <code>Touch on Account 123456</code>. | ||
Если такая личная информация появляется в именах действий пользователя вашего приложения, включите маскирование действий пользователя. | Если такая личная информация появляется в именах действий пользователя вашего приложения, включите маскирование действий пользователя. ЕдиныйАгент заменит все <code>Touch on <control title></code>имена действий именем класса элемента управления, к которому прикоснулся пользователь, например: | ||
* <code>Touch on Account 123456</code>><code>Touch on Button</code> | * <code>Touch on Account 123456</code>><code>Touch on Button</code> | ||
Строка 122: | Строка 121: | ||
Вы можете включить маскирование действий пользователя с помощью <code>namePrivacy</code>свойства UserAction DSL . | Вы можете включить маскирование действий пользователя с помощью <code>namePrivacy</code>свойства UserAction DSL . | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 137: | Строка 136: | ||
=== Изменить действия пользователя === | === Изменить действия пользователя === | ||
ЕдиныйАгент для Android создает действия пользователя на основе взаимодействия пользователей вашего приложения. Эти действия отличаются от настраиваемых действий и иногда называются ''автоматически сгенерированными действиями'' . Мы также называем их ''действиями пользователя'' . | |||
Вы можете изменить или даже отменить действия пользователя. | Вы можете изменить или даже отменить действия пользователя. | ||
Строка 144: | Строка 143: | ||
==== Изменить конкретное действие пользователя ==== | ==== Изменить конкретное действие пользователя ==== | ||
С помощью <code> | С помощью <code>Astromkey.modifyUserAction</code>вы можете изменить текущее действие пользователя. Вы можете изменить имя действия пользователя и сообщить о событиях, значениях и ошибках. Вы также можете отменить действие пользователя. | ||
Метод <code> | Метод <code>Astromkey.modifyUserAction</code>принимает реализацию в <code>UserActionModifier</code>качестве параметра, который предоставляет вам текущий изменяемый <code>ModifiableUserAction</code>объект. | ||
Разрешенные операции над этим объектом действий пользователя: | Разрешенные операции над этим объектом действий пользователя: | ||
Строка 155: | Строка 154: | ||
* <code>reportValue</code> | * <code>reportValue</code> | ||
* <code>reportError</code> | * <code>reportError</code> | ||
* | * ЕдиныйАгент для Android версии 8.241+ <code>cancel</code> | ||
Вы можете изменить действие пользователя, только пока оно еще открыто. Если время действия действия пользователя истекло до того, как оно было изменено, изменение не имеет никакого эффекта. Мы рекомендуем вызывать <code> | Вы можете изменить действие пользователя, только пока оно еще открыто. Если время действия действия пользователя истекло до того, как оно было изменено, изменение не имеет никакого эффекта. Мы рекомендуем вызывать <code>Astromkey.modifyUserAction</code>внутри инструментированного метода прослушивателя и не вызывать этот метод из другого потока. | ||
В следующем примере мы используем приложение-калькулятор, чтобы показать вам, как изменить имя действия пользователя, созданного для нажатия кнопки, и как передать значение действию. | В следующем примере мы используем приложение-калькулятор, чтобы показать вам, как изменить имя действия пользователя, созданного для нажатия кнопки, и как передать значение действию. | ||
Строка 165: | Строка 164: | ||
int result = calc(); | int result = calc(); | ||
// we use Java 8 language features here. You can also use anonymous classes instead of lambdas | // we use Java 8 language features here. You can also use anonymous classes instead of lambdas | ||
Astromkey.modifyUserAction(userAction -> { | |||
userAction.setActionName("Click on Calculate"); | userAction.setActionName("Click on Calculate"); | ||
userAction.reportValue("Calculated result", result); | userAction.reportValue("Calculated result", result); | ||
Строка 175: | Строка 174: | ||
==== Изменить любое действие пользователя ==== | ==== Изменить любое действие пользователя ==== | ||
ЕдиныйАгент для Android версии 8.241+ | |||
Вы можете изменить действия пользователя через <code> | Вы можете изменить действия пользователя через <code>Astromkey.modifyUserAction</code>. Однако вы можете сделать это только для определенного действия пользователя, и обычно вы должны знать, открыто ли это действие пользователя или нет. | ||
Чтобы преодолеть эти ограничения, мы представили функцию, которая позволяет вам получать обратный вызов для каждого вновь созданного действия пользователя. При таком подходе вы получаете уведомление о каждом новом автоматически сгенерированном действии пользователя, поэтому у вас есть возможность обновить имя действия пользователя, а также сообщить о событиях, значениях и ошибках. Вы также можете отменить действие пользователя. | Чтобы преодолеть эти ограничения, мы представили функцию, которая позволяет вам получать обратный вызов для каждого вновь созданного действия пользователя. При таком подходе вы получаете уведомление о каждом новом автоматически сгенерированном действии пользователя, поэтому у вас есть возможность обновить имя действия пользователя, а также сообщить о событиях, значениях и ошибках. Вы также можете отменить действие пользователя. | ||
Вы можете зарегистрировать обратный вызов, который вызывается для каждого действия пользователя. <code>UserActionModifier</code>устанавливается один раз при запуске | Вы можете зарегистрировать обратный вызов, который вызывается для каждого действия пользователя. <code>UserActionModifier</code>устанавливается один раз при запуске ЕдиныйАгент с помощью <code>AstromkeyConfigurationBuilder#withAutoUserActionModifier</code>метода. После этого он вызывается каждый раз, когда ЕдиныйАгент создает действие пользователя. Он не вызывается для пользовательских действий . | ||
Вы можете зарегистрировать обратный вызов только при запуске | Вы можете зарегистрировать обратный вызов только при запуске ЕдиныйАгент, поэтому вам нужно запускать ЕдиныйАгент вручную . | ||
Разрешены следующие операции: | Разрешены следующие операции: | ||
Строка 194: | Строка 193: | ||
* <code>cancel</code> | * <code>cancel</code> | ||
<code> | <code>Astromkey.startup(this, new AstromkeyConfigurationBuilder("<YourApplicationID>", "<ProvidedBeaconUrl>") | ||
.withAutoUserActionModifier(modifiableAction -> { | .withAutoUserActionModifier(modifiableAction -> { | ||
if (modifiableAction.getActionName().contains("account ID")) { | if (modifiableAction.getActionName().contains("account ID")) { | ||
Строка 205: | Строка 204: | ||
=== Библиотека привязки данных Android === | === Библиотека привязки данных Android === | ||
Плагин | Плагин Astromkey для Android Gradle может управлять логикой событий и прослушивателями, которые определяются с помощью функции привязки данных . Если ваше приложение содержит код, аналогичный официальному примеру привязки прослушивателя , подключаемый модуль может определить правильный байт-код и обработать его. | ||
<code><?xml version="1.0" encoding="utf-8"?> | <code><?xml version="1.0" encoding="utf-8"?> | ||
<layout xmlns:android="<nowiki>http://schemas.android.com/apk/res/android</nowiki>"> | <layout xmlns:android="<nowiki>http://schemas.android.com/apk/res/android</nowiki>"> | ||
Строка 232: | Строка 231: | ||
// Do something in response to button click | // Do something in response to button click | ||
}</code> | }</code> | ||
Плагин | Плагин Astromkey для Android Gradle не может определить взаимосвязь между кнопкой в XML-файле макета и методом <code>sendMessage</code>в действии. Однако, когда ваше приложение использует библиотеку Appcompat и ваши действия получены из <code>androidx.appcompat.app.AppCompatActivity</code>, подключаемый модуль автоматически использует логику делегирования библиотеки Appcompat. Если вы не используете библиотеку Appcompat, вы должны вручную настроить эти методы обработчика событий, поскольку подключаемый модуль не может определить связь между байт-кодом и XML-файлом макета. | ||
== Мониторинг веб-запросов == | == Мониторинг веб-запросов == | ||
Плагин | Плагин Astromkey для Android Gradle может автоматически обрабатывать и помечать ваши веб-запросы. Для отслеживания веб-запросов ЕдиныйАгент добавляет <code>x-astromkey</code>в веб-запрос заголовок HTTP с уникальным значением. Это необходимо для сопоставления данных мониторинга на стороне сервера с соответствующим мобильным веб-запросом. | ||
Для HTTP(S)-запросов нельзя комбинировать автоматическое и ручное инструментирование веб-запросов. Однако вы можете использовать автоматическое инструментирование для HTTP(S)-запросов и ручное инструментирование для не-HTTP(S)-запросов, таких как запросы WebSocket или gRPC. | Для HTTP(S)-запросов нельзя комбинировать автоматическое и ручное инструментирование веб-запросов. Однако вы можете использовать автоматическое инструментирование для HTTP(S)-запросов и ручное инструментирование для не-HTTP(S)-запросов, таких как запросы WebSocket или gRPC. | ||
Строка 241: | Строка 240: | ||
=== Настроить мониторинг веб-запросов === | === Настроить мониторинг веб-запросов === | ||
Все свойства, связанные с мониторингом веб-запросов, являются частью WebRequest DSL , поэтому настройте эти свойства с помощью <code>webRequests</code>блока . | Все свойства, связанные с мониторингом веб-запросов, являются частью WebRequest DSL , поэтому настройте эти свойства с помощью <code>webRequests</code>блока . | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 250: | Строка 249: | ||
} | } | ||
}</code> | }</code> | ||
Если веб-запрос инициируется вскоре после отслеживаемого взаимодействия с пользователем, | Если веб-запрос инициируется вскоре после отслеживаемого взаимодействия с пользователем, ЕдиныйАгент добавляет веб-запрос в качестве дочернего события к отслеживаемому действию пользователя. ЕдиныйАгент автоматически усекает запрос из захваченного URL-адреса и сообщает только имя домена и путь ваших веб-запросов. | ||
=== Отключить мониторинг веб-запросов === | === Отключить мониторинг веб-запросов === | ||
Вы можете полностью отключить мониторинг веб-запросов с помощью этого <code>enabled</code>свойства. В этом случае все остальные свойства игнорируются, поэтому <code>enabled</code>во избежание путаницы укажите только свойство. | Вы можете полностью отключить мониторинг веб-запросов с помощью этого <code>enabled</code>свойства. В этом случае все остальные свойства игнорируются, поэтому <code>enabled</code>во избежание путаницы укажите только свойство. | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 276: | Строка 275: | ||
Вы можете деактивировать определенные сенсоры через свойства WebRequest Sensor DSL и настроить их внутри <code>sensors</code>блока . | Вы можете деактивировать определенные сенсоры через свойства WebRequest Sensor DSL и настроить их внутри <code>sensors</code>блока . | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 289: | Строка 288: | ||
== Мониторинг жизненного цикла == | == Мониторинг жизненного цикла == | ||
При мониторинге жизненного цикла | При мониторинге жизненного цикла ЕдиныйАгент собирает следующие данные: | ||
* Событие запуска приложения : измеряет промежуток времени от <code>Application.onCreate()</code>до <code>Activity.onPostResume()</code>первого действия. Событие запуска приложения не фиксируется, если приложение запускается в фоновом режиме и не сразу открывает действие или если автоматическое внедрение отключено . | * Событие запуска приложения : измеряет промежуток времени от <code>Application.onCreate()</code>до <code>Activity.onPostResume()</code>первого действия. Событие запуска приложения не фиксируется, если приложение запускается в фоновом режиме и не сразу открывает действие или если автоматическое внедрение отключено . | ||
Строка 297: | Строка 296: | ||
=== Настройка мониторинга жизненного цикла === | === Настройка мониторинга жизненного цикла === | ||
События жизненного цикла либо являются частью существующих действий пользователя, либо создают новое действие пользователя и присоединяют к нему действие жизненного цикла отображения или повторного отображения. Все свойства, связанные с мониторингом жизненного цикла, являются частью Lifecycle DSL , поэтому настраивайте их с помощью <code>lifecycle</code>блока . | События жизненного цикла либо являются частью существующих действий пользователя, либо создают новое действие пользователя и присоединяют к нему действие жизненного цикла отображения или повторного отображения. Все свойства, связанные с мониторингом жизненного цикла, являются частью Lifecycle DSL , поэтому настраивайте их с помощью <code>lifecycle</code>блока . | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 309: | Строка 308: | ||
=== Отключить мониторинг жизненного цикла === | === Отключить мониторинг жизненного цикла === | ||
Вы можете отключить мониторинг жизненного цикла с помощью <code>enabled</code>свойства. В этом случае все остальные свойства игнорируются, поэтому укажите только свойство <code>enabled</code>. | Вы можете отключить мониторинг жизненного цикла с помощью <code>enabled</code>свойства. В этом случае все остальные свойства игнорируются, поэтому укажите только свойство <code>enabled</code>. | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 319: | Строка 318: | ||
=== Датчики мониторинга жизненного цикла === | === Датчики мониторинга жизненного цикла === | ||
Вы можете деактивировать определенные датчики через свойства DSL Lifecycle Sensor и настроить их внутри <code>sensors</code>блока . | Вы можете деактивировать определенные датчики через свойства DSL Lifecycle Sensor и настроить их внутри <code>sensors</code>блока . | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 332: | Строка 331: | ||
== Отчеты о сбоях == | == Отчеты о сбоях == | ||
ЕдиныйАгент фиксирует все необработанные исключения и ошибки и немедленно отправляет отчет о сбое на сервер. Отчет о сбое Android включает время возникновения и полную трассировку стека исключения. | |||
Если сбой происходит вскоре после отслеживаемого взаимодействия с пользователем, | Если сбой происходит вскоре после отслеживаемого взаимодействия с пользователем, ЕдиныйАгент добавляет сбой как дочернее событие к отслеживаемому действию пользователя. | ||
Вы можете отключить отчеты о сбоях с помощью <code>crashReporting</code>свойства. | Вы можете отключить отчеты о сбоях с помощью <code>crashReporting</code>свойства. | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 346: | Строка 345: | ||
== Обнаружение ярости == | == Обнаружение ярости == | ||
Плагин | Плагин Astromkey для Android Gradle версии 8.231+ | ||
Когда ваше мобильное приложение не отвечает быстро, текстовая метка выглядит как кнопка или переключатель скрыт под другим переключателем, пользователи могут многократно касаться экрана или затронутого элемента управления пользовательского интерфейса в беспомощном разочаровании. | Когда ваше мобильное приложение не отвечает быстро, текстовая метка выглядит как кнопка или переключатель скрыт под другим переключателем, пользователи могут многократно касаться экрана или затронутого элемента управления пользовательского интерфейса в беспомощном разочаровании. ЕдиныйАгент определяет такое поведение как ярость. | ||
ЕдиныйАгент может отслеживать только те события сенсорного экрана, которые обрабатываются компонентом <code>Activity</code>. Например, ЕдиныйАгент не может отслеживать компоненты пользовательского интерфейса Android, которые имеют собственную логику обработки сенсорного экрана <code>Dialog</code>и <code>DreamService</code>. | |||
Вы можете деактивировать обнаружение касания ярости, используя <code>detectRageTaps</code>свойство BehavioralEvents DSL . | Вы можете деактивировать обнаружение касания ярости, используя <code>detectRageTaps</code>свойство BehavioralEvents DSL . | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 364: | Строка 363: | ||
== Мониторинг местоположения == | == Мониторинг местоположения == | ||
Если этот параметр включен, | Если этот параметр включен, ЕдиныйАгент добавляет захваченные позиции конечных пользователей к данным мониторинга. Чтобы защитить конфиденциальность конечного пользователя, ЕдиныйАгент фиксирует только три дробных цифры GPS-координат. | ||
Вы можете активировать функцию мониторинга местоположения с помощью <code>locationMonitoring</code>свойства. | Вы можете активировать функцию мониторинга местоположения с помощью <code>locationMonitoring</code>свойства. | ||
<code> | <code>astromkey { | ||
configurations { | configurations { | ||
sampleConfig { | sampleConfig { | ||
Строка 374: | Строка 373: | ||
} | } | ||
}</code> | }</code> | ||
ЕдиныйАгент собирает только те данные о местоположении, которые уже обработаны в вашем приложении. ЕдиныйАгент не запрашивает дополнительные данные о местоположении из Android SDK. Если ваше приложение не обрабатывает данные о местоположении, эта функция не включена. Когда мониторинг местоположения отключен или информация о местоположении недоступна, Ключ-АСТРОМ использует IP-адреса для определения местоположения пользователя. | |||
Плагин поддерживает следующий прослушиватель местоположения: | Плагин поддерживает следующий прослушиватель местоположения: | ||
* <code>android.location.LocationListener</code> | * <code>android.location.LocationListener</code> |
Текущая версия на 14:11, 12 апреля 2023
С помощью следующих параметров конфигурации вы можете настроить возможности мониторинга ЕдиногоАгента и точно настроить процесс автоинструментирования для этих функций.
Мониторинг действий пользователя
ЕдиныйАгент создает действия пользователя на основе компонентов пользовательского интерфейса, которые инициируют эти действия, и автоматически объединяет данные о действиях пользователя с другими данными мониторинга, такими как информация о веб-запросах и сбоях. ЕдиныйАгент продлевает время жизни действий пользователя, чтобы правильно объединять их с другими событиями, которые выполняются в фоновом потоке или сразу после действия пользователя.
Настроить мониторинг действий пользователя
Вы можете настроить мониторинг действий пользователя с помощью свойств timeout
и maxDuration
. Все свойства, связанные с мониторингом действий пользователя, являются частью UserAction DSL , поэтому настраивайте их с помощью userAction
блока .
astromkey {
configurations {
sampleConfig {
userActions {
// your user action monitoring configuration
}
}
}
}
С помощью этого timeout
свойства вы можете настроить время, в течение которого ЕдиныйАгент может добавлять другие события к вновь созданному действию пользователя. При обнаружении другого взаимодействия с пользователем ЕдиныйАгент прекращает добавлять события к действию пользователя предыдущего взаимодействия, независимо от настроенного timeout
значения. Вместо этого ЕдиныйАгент добавляет события только к действию пользователя из текущего взаимодействия с пользователем.
По timeout
истечении периода времени ЕдиныйАгент проверяет, есть ли открытые события, и ждет завершения этих событий. С помощью maxDuration
свойства вы можете настроить максимальную продолжительность этих действий пользователя. Если открытое событие, например веб-запрос, все еще не завершено по истечении этого периода, ЕдиныйАгент удаляет эти события из действия пользователя и закрывает действие пользователя с соответствующим значением времени окончания.
Укажите значение для обоих свойств в миллисекундах. Значение свойства maxDuration
должно быть равно или больше значения свойства timeout
.
Свойство | Значение по умолчанию | Возможные значения |
---|---|---|
timeout
|
500 | 100 – 5000 |
maxDuration
|
60000 | 100 – 540000 |
timeout
Для каждого свойства и можно настроить только одно значение maxDuration
, и эти значения должны соответствовать всем действиям пользователя на всех устройствах.
ЕдиныйАгент также сообщает о действиях пользователя, которые не содержат дочерних событий. Чтобы отказаться от таких действий пользователя, используйте emptyActions
свойство.
Отключить мониторинг действий пользователя
Вы можете полностью отключить мониторинг действий пользователя с помощью enabled
свойства. В этом случае все остальные свойства игнорируются, поэтому enabled
во избежание путаницы укажите только свойство.
astromkey {
configurations {
sampleConfig {
userActions.enabled false
}
}
}
Датчики контроля действий пользователя
Плагин автоматически обрабатывает следующие слушатели и методы:
- Android
android.view.View$OnClickListener
android.widget.AdapterView$OnItemClickListener
android.widget.AdapterView$OnItemSelectedListener
android.app.Activity.onOptionsItemSelected
android.view.MenuItem$OnMenuItemClickListener
- AndroidX
androidx.viewpager.widget.ViewPager$OnPageChangeListener
androidx.swiperefreshlayout.widget.SwipeRefreshLayout$OnRefreshListener
- Поддержка Android
android.support.v4.view.ViewPager$OnPageChangeListener
android.support.v4.widget.SwipeRefreshLayout$OnRefreshListener
Вы можете деактивировать определенные датчики через свойства DSL UserAction Sensor и настроить их внутри sensors
блока .
astromkey {
configurations {
sampleConfig {
userActions {
sensors {
// fine-tune the sensors if necessary
}
}
}
}
}
Именование действий пользователя
Для создания имен действий пользователя ЕдиныйАгент захватывает заголовок элемента управления из различных атрибутов в зависимости от используемого прослушивателя или метода. Подробнее см. в таблице ниже.
Слушатель или метод | Оцениваемый компонент |
---|---|
android.view.View$OnClickListener
|
Атрибуты оцениваются в следующем порядке:
|
android.app.Activity.onOptionsItemSelected
|
getTitle для пунктов меню
|
androidx.viewpager.widget.ViewPager$OnPageChangeListener
|
Тип действия используется в качестве имени действия, так как компонент пользовательского интерфейса недоступен. |
Маскировать действия пользователя
Плагин Ключ-АСТРОМ для Android Gradle версии 8.249+
По умолчанию имена действий пользователя получаются из заголовков элементов пользовательского интерфейса , например заголовков кнопок или пунктов меню. В редких случаях адреса электронной почты, имена пользователей или другая личная информация могут быть непреднамеренно включены в имена действий пользователя. Это происходит, когда эта информация включена в параметры, используемые для заголовков элементов управления, что приводит к именам действий пользователя, таким как Touch on Account 123456
.
Если такая личная информация появляется в именах действий пользователя вашего приложения, включите маскирование действий пользователя. ЕдиныйАгент заменит все Touch on <control title>
имена действий именем класса элемента управления, к которому прикоснулся пользователь, например:
Touch on Account 123456
>Touch on Button
Touch on Transfer all amount
>Touch on Switch
Touch on Account settings
>Touch on ActionMenuItem
Вы можете включить маскирование действий пользователя с помощью namePrivacy
свойства UserAction DSL .
astromkey {
configurations {
sampleConfig {
userActions {
namePrivacy true
}
}
}
}
Если вы хотите изменить имена только для определенных действий пользователя, используйте одну из следующих настроек:
- Измените автоматически сгенерированные действия , чтобы изменить имена действий пользователя.
- Установите правила именования (Настройки мобильного приложения > Правила именования ), чтобы настроить правила именования действий пользователя или правила извлечения.
Изменить действия пользователя
ЕдиныйАгент для Android создает действия пользователя на основе взаимодействия пользователей вашего приложения. Эти действия отличаются от настраиваемых действий и иногда называются автоматически сгенерированными действиями . Мы также называем их действиями пользователя .
Вы можете изменить или даже отменить действия пользователя.
Если вы хотите избежать захвата личной информации для всех действий пользователя одновременно, см. раздел Маскирование действий пользователя .
Изменить конкретное действие пользователя
С помощью Astromkey.modifyUserAction
вы можете изменить текущее действие пользователя. Вы можете изменить имя действия пользователя и сообщить о событиях, значениях и ошибках. Вы также можете отменить действие пользователя.
Метод Astromkey.modifyUserAction
принимает реализацию в UserActionModifier
качестве параметра, который предоставляет вам текущий изменяемый ModifiableUserAction
объект.
Разрешенные операции над этим объектом действий пользователя:
getActionName
setActionName
reportEvent
reportValue
reportError
- ЕдиныйАгент для Android версии 8.241+
cancel
Вы можете изменить действие пользователя, только пока оно еще открыто. Если время действия действия пользователя истекло до того, как оно было изменено, изменение не имеет никакого эффекта. Мы рекомендуем вызывать Astromkey.modifyUserAction
внутри инструментированного метода прослушивателя и не вызывать этот метод из другого потока.
В следующем примере мы используем приложение-калькулятор, чтобы показать вам, как изменить имя действия пользователя, созданного для нажатия кнопки, и как передать значение действию.
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int result = calc();
// we use Java 8 language features here. You can also use anonymous classes instead of lambdas
Astromkey.modifyUserAction(userAction -> {
userAction.setActionName("Click on Calculate");
userAction.reportValue("Calculated result", result);
});
showResult(result);
}
});
Для пользовательского мобильного действия или мобильного действия пользователя, сгенерированного автоматически, максимальная длина имени составляет 250 символов.
Изменить любое действие пользователя
ЕдиныйАгент для Android версии 8.241+
Вы можете изменить действия пользователя через Astromkey.modifyUserAction
. Однако вы можете сделать это только для определенного действия пользователя, и обычно вы должны знать, открыто ли это действие пользователя или нет.
Чтобы преодолеть эти ограничения, мы представили функцию, которая позволяет вам получать обратный вызов для каждого вновь созданного действия пользователя. При таком подходе вы получаете уведомление о каждом новом автоматически сгенерированном действии пользователя, поэтому у вас есть возможность обновить имя действия пользователя, а также сообщить о событиях, значениях и ошибках. Вы также можете отменить действие пользователя.
Вы можете зарегистрировать обратный вызов, который вызывается для каждого действия пользователя. UserActionModifier
устанавливается один раз при запуске ЕдиныйАгент с помощью AstromkeyConfigurationBuilder#withAutoUserActionModifier
метода. После этого он вызывается каждый раз, когда ЕдиныйАгент создает действие пользователя. Он не вызывается для пользовательских действий .
Вы можете зарегистрировать обратный вызов только при запуске ЕдиныйАгент, поэтому вам нужно запускать ЕдиныйАгент вручную .
Разрешены следующие операции:
getActionName
setName
reportEvent
reportValue
reportError
cancel
Astromkey.startup(this, new AstromkeyConfigurationBuilder("<YourApplicationID>", "<ProvidedBeaconUrl>")
.withAutoUserActionModifier(modifiableAction -> {
if (modifiableAction.getActionName().contains("account ID")) {
// remove personal information from the user action name
modifiableAction.setActionName("Touch on Account");
}
})
.buildConfiguration());
Для пользовательского мобильного действия или мобильного действия пользователя, сгенерированного автоматически, максимальная длина имени составляет 250 символов.
Библиотека привязки данных Android
Плагин Astromkey для Android Gradle может управлять логикой событий и прослушивателями, которые определяются с помощью функции привязки данных . Если ваше приложение содержит код, аналогичный официальному примеру привязки прослушивателя , подключаемый модуль может определить правильный байт-код и обработать его.
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="task" type="com.android.example.Task" />
<variable name="presenter" type="com.android.example.Presenter" />
</data>
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent">
<Button android:layout_width="wrap_content" android:layout_height="wrap_content"
android:onClick="@{() -> presenter.onSaveClick(task)}" />
</LinearLayout>
</layout>
Определить обработчик событий через XML-атрибут
В следующем примере из документации Android показано, как можно определить обработчик событий с помощью XML-атрибутов.
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage" />
/** Called when the user touches the button */
public void sendMessage(View view) {
// Do something in response to button click
}
Плагин Astromkey для Android Gradle не может определить взаимосвязь между кнопкой в XML-файле макета и методом sendMessage
в действии. Однако, когда ваше приложение использует библиотеку Appcompat и ваши действия получены из androidx.appcompat.app.AppCompatActivity
, подключаемый модуль автоматически использует логику делегирования библиотеки Appcompat. Если вы не используете библиотеку Appcompat, вы должны вручную настроить эти методы обработчика событий, поскольку подключаемый модуль не может определить связь между байт-кодом и XML-файлом макета.
Мониторинг веб-запросов
Плагин Astromkey для Android Gradle может автоматически обрабатывать и помечать ваши веб-запросы. Для отслеживания веб-запросов ЕдиныйАгент добавляет x-astromkey
в веб-запрос заголовок HTTP с уникальным значением. Это необходимо для сопоставления данных мониторинга на стороне сервера с соответствующим мобильным веб-запросом.
Для HTTP(S)-запросов нельзя комбинировать автоматическое и ручное инструментирование веб-запросов. Однако вы можете использовать автоматическое инструментирование для HTTP(S)-запросов и ручное инструментирование для не-HTTP(S)-запросов, таких как запросы WebSocket или gRPC.
Настроить мониторинг веб-запросов
Все свойства, связанные с мониторингом веб-запросов, являются частью WebRequest DSL , поэтому настройте эти свойства с помощью webRequests
блока .
astromkey {
configurations {
sampleConfig {
webRequests {
// your web request monitoring configuration
}
}
}
}
Если веб-запрос инициируется вскоре после отслеживаемого взаимодействия с пользователем, ЕдиныйАгент добавляет веб-запрос в качестве дочернего события к отслеживаемому действию пользователя. ЕдиныйАгент автоматически усекает запрос из захваченного URL-адреса и сообщает только имя домена и путь ваших веб-запросов.
Отключить мониторинг веб-запросов
Вы можете полностью отключить мониторинг веб-запросов с помощью этого enabled
свойства. В этом случае все остальные свойства игнорируются, поэтому enabled
во избежание путаницы укажите только свойство.
astromkey {
configurations {
sampleConfig {
webRequests.enabled false
}
}
}
Датчики мониторинга веб-запросов
Поддерживаются следующие платформы HTTP:
- HttpURLConnection
- OkHttp : только версии 3 и 4
- HTTP-клиент Apache: только встроенный в Android HTTP-клиент версии 1.
1
В Android устарела клиентская библиотека Apache HTTP (см. раздел Изменения в Android 6.0 и Изменения в Android 9.0 ), поэтому используйте другую структуру HTTP. Новый HTTP-клиент Apache версии 5 не поддерживается. Поддерживаются старые версии HTTP-клиента Apache, поскольку они предоставляют тот же интерфейс.
Если ваша библиотека веб-запросов основана на одной из этих поддерживаемых платформ, внутренние классы библиотеки инструментируются автоматически. Например, Retrofit версии 2 основан на OkHttp, поэтому все веб-запросы Retrofit обрабатываются автоматически.
Вы можете деактивировать определенные сенсоры через свойства WebRequest Sensor DSL и настроить их внутри sensors
блока .
astromkey {
configurations {
sampleConfig {
webRequests {
sensors {
// fine-tune the sensors if necessary
}
}
}
}
}
Мониторинг жизненного цикла
При мониторинге жизненного цикла ЕдиныйАгент собирает следующие данные:
- Событие запуска приложения : измеряет промежуток времени от
Application.onCreate()
доActivity.onPostResume()
первого действия. Событие запуска приложения не фиксируется, если приложение запускается в фоновом режиме и не сразу открывает действие или если автоматическое внедрение отключено . - Отображение активности : измеряет временной интервал от
Activity.onCreate(Bundle)
доActivity.onPostResume()
и сообщает время каждого введенного состояния жизненного цикла активности. - Повторное отображение действия : измеряет время, необходимое для повторного отображения ранее созданного действия, и сообщает время каждого состояния жизненного цикла действия, которое было введено до тех пор, пока действие снова не станет видимым.
Настройка мониторинга жизненного цикла
События жизненного цикла либо являются частью существующих действий пользователя, либо создают новое действие пользователя и присоединяют к нему действие жизненного цикла отображения или повторного отображения. Все свойства, связанные с мониторингом жизненного цикла, являются частью Lifecycle DSL , поэтому настраивайте их с помощью lifecycle
блока .
astromkey {
configurations {
sampleConfig {
lifecycle {
// your lifecycle monitoring configuration
}
}
}
}
Отключить мониторинг жизненного цикла
Вы можете отключить мониторинг жизненного цикла с помощью enabled
свойства. В этом случае все остальные свойства игнорируются, поэтому укажите только свойство enabled
.
astromkey {
configurations {
sampleConfig {
lifecycle.enabled false
}
}
}
Датчики мониторинга жизненного цикла
Вы можете деактивировать определенные датчики через свойства DSL Lifecycle Sensor и настроить их внутри sensors
блока .
astromkey {
configurations {
sampleConfig {
lifecycle {
sensors {
// fine-tune the sensors if necessary
}
}
}
}
}
Отчеты о сбоях
ЕдиныйАгент фиксирует все необработанные исключения и ошибки и немедленно отправляет отчет о сбое на сервер. Отчет о сбое Android включает время возникновения и полную трассировку стека исключения.
Если сбой происходит вскоре после отслеживаемого взаимодействия с пользователем, ЕдиныйАгент добавляет сбой как дочернее событие к отслеживаемому действию пользователя.
Вы можете отключить отчеты о сбоях с помощью crashReporting
свойства.
astromkey {
configurations {
sampleConfig {
crashReporting false
}
}
}
Обнаружение ярости
Плагин Astromkey для Android Gradle версии 8.231+
Когда ваше мобильное приложение не отвечает быстро, текстовая метка выглядит как кнопка или переключатель скрыт под другим переключателем, пользователи могут многократно касаться экрана или затронутого элемента управления пользовательского интерфейса в беспомощном разочаровании. ЕдиныйАгент определяет такое поведение как ярость.
ЕдиныйАгент может отслеживать только те события сенсорного экрана, которые обрабатываются компонентом Activity
. Например, ЕдиныйАгент не может отслеживать компоненты пользовательского интерфейса Android, которые имеют собственную логику обработки сенсорного экрана Dialog
и DreamService
.
Вы можете деактивировать обнаружение касания ярости, используя detectRageTaps
свойство BehavioralEvents DSL .
astromkey {
configurations {
sampleConfig {
behavioralEvents {
detectRageTaps false
}
}
}
}
Мониторинг местоположения
Если этот параметр включен, ЕдиныйАгент добавляет захваченные позиции конечных пользователей к данным мониторинга. Чтобы защитить конфиденциальность конечного пользователя, ЕдиныйАгент фиксирует только три дробных цифры GPS-координат.
Вы можете активировать функцию мониторинга местоположения с помощью locationMonitoring
свойства.
astromkey {
configurations {
sampleConfig {
locationMonitoring true
}
}
}
ЕдиныйАгент собирает только те данные о местоположении, которые уже обработаны в вашем приложении. ЕдиныйАгент не запрашивает дополнительные данные о местоположении из Android SDK. Если ваше приложение не обрабатывает данные о местоположении, эта функция не включена. Когда мониторинг местоположения отключен или информация о местоположении недоступна, Ключ-АСТРОМ использует IP-адреса для определения местоположения пользователя.
Плагин поддерживает следующий прослушиватель местоположения:
android.location.LocationListener