Артур Кузяков, генеральный директор компании Решение DriverPack , поделился с редакцией рубрики Growth Hacks нестандартным подходом к получению и анализу статистики загрузок файлов и программ на сайте.
Чтобы улучшить наш сервис ( drp.su ) Мы используем Google Analytics и Яндекс.
Метрику для отслеживания конверсий пользователей в следующих типах воронок.
- Посетил сайт.
- Нажал кнопку «загрузить приложение».
- Запустил приложение.
- Приложение установило все драйвера.
Это связано с тем, что в цикле использования происходит только одна загрузка файла или программы и потери там небольшие, либо потому, что на других уровнях воронки проблем гораздо больше.
Ежедневно с наших серверов загрузки загружается несколько миллионов драйверов (статические файлы .
exe и .
zip).
Для того, чтобы отслеживать и устранять проблемы на этапе загрузки пользователем приложения с сайта и драйверов приложения с сервера, нам пришлось ответить на следующие вопросы: кто, когда, как часто и сколько скачивает драйверы, и просто не менее важно, были ли эти загрузки завершены успешно.
Самое очевидное решение — проанализировать логи Nginx. Для этого можно использовать такие инструменты, как AWstat, GoAccess, ELK stack или Splunk, или, в крайнем случае, собирать логи где-нибудь дома.
Использование каждого из перечисленных инструментов имеет свои недостатки: неудобный интерфейс, скудность получаемых данных, сложность настройки, необходимость «допиливания» и так далее, то есть все вышеперечисленные решения по тем или иным причинам не подходят. .
Помимо того, что существующие решения не соответствуют требованиям, недостаточно ответить на вопросы, кто, когда, как часто и сколько скачивает драйверы.
Эти данные необходимо объединить с данными, хранящимися в Google Analytics. Только тогда можно будет увидеть полную картину, построив пользовательские сегменты, воронки и отчеты.
Именно тогда мы решили заставить веб-сервер Nginx отправлять события в Google Analytics сразу после завершения загрузки файла.
В качестве бонуса мы добавили отправку IP-адреса, время начала загрузки, количество переданных байт и даже Google ClientID в событие завершения загрузки.
Интегрировав Nginx и Google Analytics, мы смогли проанализировать загрузки статических файлов, к которым раньше было невозможно привязать счетчик Google Analytics. Информация о загрузках статических файлов на наших серверах загрузки поступает в Google Analytics в режиме реального времени.
Заработано
Теперь вы можете отслеживать, сколько фактических загрузок нашего продукта происходит. При этом подсчет уникальных загрузок происходит во много раз точнее, чем если бы это было сделано по IP-адресу, поскольку с каждым пользователем связан уникальный идентификатор — ID клиента .Ошибки 404 и 500 также отслеживаются через события ( события ) в Google Analytics. Благодаря тому, что в мероприятии мы передаем реальный IP-адрес пользователя, вы можете увидеть распределение загрузок по гео.
Поскольку передается реальный ClientID пользователя Google Analytics, вы можете доверять отчетам о:
- количество новых и вернувшихся пользователей;
- частота посещений пользователя и время с момента его последнего посещения;
- вовлечение пользователей;
- ключевые слова, по которым пользователь пришел на наш сайт с самого начала.
В отчете вы можете найти wget, который наш DriverPack Online использует для загрузки драйверов, реальных браузеров, а также роботов и парсеров.
Для некоторых информация о загрузках с мобильных устройств будет очень ценной.
К сожалению, мы пока не можем перенести Referrer в Google Analytics, так как Nginx не поддерживает урленкод() .
В связи с этим отчеты по каналам работать не будут (подробности в разделе «Недостатки»).
Что это дало нам и что может дать вам?
Отправив журналы Nginx в Google Analytics, мы смогли добавить новый уровень воронки использования продукта.
- Посетил сайт.
- Нажал кнопку «загрузить приложение».
- Скачал приложение (загрузка завершена).
- Запустил приложение.
- Приложение установило все драйвера.
При этом возможность пересылки Google Analytics ClientID позволяет связать события из Nginx со всеми данными в Google Analytics: версией браузера, временем суток, географией, демографией аудитории и даже пользовательскими событиями.
Всю эту информацию мы успешно используем для увеличения количества запусков.
Например, увеличив скорость доставки контента в определенные регионы, мы смогли сократить потери пользователей между вторым и четвертым уровнями более чем вдвое.
Бонусным эффектом от внедрения модуля стал перехват возникающих ошибок 404, что позволило оперативно реагировать на их появление и повысить качество предоставляемого сервиса.
По приблизительным подсчетам, оперативная работа с 404 ошибками снизила потери пользователей в месяц на 40 тысяч.
Повторные загрузки в рамках одного сеанса также указывают на проблемы, например, загрузка была прервана или пользователь не нашел загруженное приложение.
Наш модуль позволяет передавать данные о проблемах с загрузкой файлов в привычный и мощный инструмент аналитики (Google Analytics).
Это позволяет работать в воронке использования продукта с новым уровнем, который обычно пропускают. Все онлайн-проекты, требующие загрузки продукта с сайта или файлов в мобильном приложении, могут получить большую выгоду от использования нашего решения, работающего именно с конверсией от нажатия кнопки «Скачать» до открытия загруженного файла.
Как вы воспользуетесь открывшимися возможностями, зависит от вас.
Будем рады вашим вариантам применения и предложениям по улучшению.
Ложка дегтя
Скрипт отлично работает и на 100% соответствует нашим требованиям, но мы можем добавить в него несколько улучшений.
- Скрипт немного нагружает сервер.
В нашем случае это не имеет большого значения, но для вас это может иметь большое значение.
- Нгинкс не поддерживает урленкод() , поэтому ссылки типа example.com/ЭSomeOptions будет бороться.
Один из способов решения этой проблемы — использовать скрипт lua.
- Реферер не передается в параметр Google Analytics (необходимо также использовать урленкод() ).
- Переменная не работает в Nginx 1.8 $content_length , поэтому мы не можем передать размер файла в Google Analytics. Если это исправить, можно будет составлять отчеты, содержащие информацию о проценте незагруженных файлов.
- Отправлять служебную информацию от Nginx, например о количестве подключений и т.п.
- Можно было бы отправлять время загрузки непосредственно в Google Analytics, используя параметр &плт , но Nginx возвращает время в секундах, а Google Analytics не любит такой формат (ожидаются миллисекунды).
Поэтому нам необходимо добавить эти данные в измерение 2 .
- В скрипте используется недокументированная функция post_action .
Существует риск, что в новых версиях эта функция будет удалена.
Сделай сам
1. Создаем отдельный счетчик Google Analytics, с которым будут работать все серверы загрузки.Либо используем номер существующего счетчика.
2. В настройках счетчика «Пользовательские параметры» добавьте специальные параметры:
- измерение1 .
Имя " ID клиента ", уровень "Пользователь";
- измерение 2 .
Имя " запрос_время «, уровень «Хит»;
- измерение3 .
Имя " body_bytes_sent ", уровень "Хит".
3. Создаём конфиг с названием Гугл Аналитика в каталоге /etc/nginx/.
4. Получите файл конфигурации /etc/nginx/conf.d/default.config .
5. Перезапустите Nginx. 6. Настройте счетчик на сайте, чтобы ClientID сохранялся в Cookie. 7. Теперь в Google Analytics можно увидеть данные о загрузках, обращениях по URL-адресам, HTTP-статусах и т. д. Все это связано со всеми остальными данными в Google Analytics с помощью ClientID.
Наконец о точности
Точность статистики до 99%.Мы проанализировали несколько файлов и сравнили данные Google Analytics с данными журнала.
Сравнение показывает, что Google Analytics подсчитывает уникальные загрузки даже точнее, чем мы можем это сделать вручную.
Отправлять собственные кейсы, в результате которых вам удалось существенно улучшить (или, наоборот, ухудшить) производительность проекта.
Интересные эксперименты обязательно попадут на страницы раздела Growth Hacks.
-
Лучший Очиститель Mac, Доступный Сегодня
19 Oct, 24