Сколько времени пользователи активно тратят на мою программу?

#c# #.net #analytics

#c# #.net #аналитика

Вопрос:

Один из аналитических показателей, который я должен был иметь в своей программе, заключался в том, сколько времени пользователи тратят на мою программу? По сути, то, насколько пользователи находят мою программу полезной, является показателем того, насколько активно они продолжают ее использовать. и используется для поощрения пользователей к активному использованию приложения.

Изначально я думал использовать промежуток времени между запуском приложения и его закрытием, но проблема заключалась в том, что пользователи могли просто оставить приложение открытым и не использовать его.

В настоящее время я использую TotalProcessorTime (C # / VB .Net), чтобы сообщить руководству, сколько времени пользователи активно тратят на приложение. TotalProcessorTime укажите количество, которое приложение использует процессор, но это плохо отражается на управлении, потому что даже когда пользователь активно использует приложение в течение нескольких минут, общее время обработки будет намного меньше.

Есть нестандартные мысли / предложения?

Комментарии:

1. оффтопик: IMHO приложения, которые сообщают мне бесполезную информацию (продвижение) и беспокоят меня, что я должен использовать их приложение, быстро удаляются из моей системы. Я решаю, когда я хочу или не хочу использовать приложение. Не создатель.

2. Это приложение было разработано собственными силами для пользователей, которые являются частью одной компании. Пользователи не видят никакой аналитической статистики из этого приложения, но их менеджеры видят. Они хотят, чтобы они использовали это, а не полагались на свои электронные таблицы.

3. Тогда ах, nvm 🙂 Кажется, это веская причина. Если бы это было для обычных пользователей, это другой случай

Ответ №1:

Поскольку вы хотите знать, сколько людей использует ваше программное обеспечение в отличие от того, как долго ваше программное обеспечение использует процессор (это не всегда одно и то же), способ, которым я бы это сделал (и я действительно использовал это раньше), — использовать GetLastInputInfo.

У вас может быть таймер в вашем приложении и проверять каждое высказывание .. 500 мс, если ваше приложение является активным приложением, и GetLastInputInfo возвращает, что система простаивала менее некоторого порога (5-10 секунд в зависимости от того, что делает ваше приложение). Пока выполняются оба этих условия, вы можете добавить 500 мс к активному использованию вашего приложения.

Конечно, вы все еще можете отслеживать общее использование ЦП в виде отдельной статистики, но я думаю, что my way предоставляет более … целенаправленный счетчик использования для вашего приложения.

Комментарии:

1. Я думаю, это сработало бы. Хотя вызывать функцию каждые несколько секунд нежелательно…

2. Если вы имеете в виду с точки зрения производительности, это действительно незаметно.