Казус от практиката Как да проследявате изтеглянията на файлове и програми на сайта с помощта на Google Analytics
За да подобрим нашата услуга (drp.su), ние използваме Google Analytics и Yandex.Metrica за проследяване на потребителските реализации във фунии от следния тип.
- Посетих сайта.
- Щракнах върху бутона „изтегляне на приложение“.
- Стартира приложението.
- Приложението инсталира всички драйвери.
Това е стандартна задача за уеб и мобилни анализатори, но малко хора работят с преходи от изтегляне на програма на уебсайт до стартирането й на компютър. Това се дължи на факта, че в цикъла на използване има само едно изтегляне на файл или програма и загубите там са малки, или защото има много повече проблеми на други нива на фунията.
Няколко милиона драйвери (статични .exe и .zip файлове) се изтеглят от нашите сървъри за изтегляне всеки ден. За да проследим и коригираме проблеми, когато потребител изтегли приложение от сайта и приложението изтегли драйвери от сървъра, трябваше да отговорим на следните въпроси: кой, кога, колко често и колко драйвери се изтеглят и не на последно място дали тези изтегляния са успешни.
Най-очевидното решение е да се анализират регистрационните файлове на Nginx. За да направите това, човек може да използва инструменти като AWstat, GoAccess, ELK stack или Splunk или поне да събира регистрационни файлове някъде у дома. Използването на всеки от изброените инструменти има своите недостатъци: неудобен интерфейс, недостиг на получени данни, сложност на настройките, необходимост от „завършване“ и т.н., тоест всички горепосочени решения не са подходящи по една или друга причина.
В допълнение към несъответствието на съществуващите решения с изискванията, не е достатъчно да се отговори на въпросите кой, кога, колко често и колко драйвери се изтеглят. Тези данни са необходимикомбинирани с данни, съхранявани в Google Analytics. Само тогава ще бъде възможно да се види пълната картина чрез изграждане на потребителски сегменти, фунии и отчети.
Тогава решихме да накараме уеб сървъра на Nginx да изпраща събития до Google Analytics веднага след приключване на изтеглянето на файла. Като бонус добавихме IP изпращане, начален час на изтегляне, брой прехвърлени байтове и дори Google ClientID към събитието за завършване на изтеглянето.
Чрез интегрирането на Nginx и Google Analytics успяхме да анализираме изтеглянията на статични файлове, към които преди беше невъзможно да се свърже броячът на Google Analytics.
Информацията за изтеглянията на статични файлове на нашите сървъри за изтегляне идва в Google Анализ в реално време.
Спечелени
Грешки 404 и 500 също се проследяват чрез събития в Google Analytics.
Тъй като истинският клиентски идентификатор на Google Анализ на потребителя се препраща, можете да се доверите на отчетите за:
- броя на новите и завръщащите се потребители;
- честотата на посещенията на потребителя и времето от последното му посещение;
- ангажираност на потребителите;
- ключови думи, за които потребителят е дошъл на нашия сайт от самото начало.
Самият Nginx предава правилния потребителски агент, което прави възможно създаването на отчети за браузъри и операционна система. В отчета можете да намерите wget, с който нашият DriverPack Online изтегля драйвери, истински браузъри, както и роботи и парсери.
За някои информацията за изтеглянията от мобилни устройства ще бъде много ценна.
За съжаление все още не можем да предадем препращащия източник към Google Analytics, тъй като Nginx не поддържа urlencode(). В тази връзка отчетите по канали няма да работят (подробности в раздела „Недостатъци“).
Какво ни едаде и какво може да ви даде
Изпращайки регистрационни файлове на Nginx до Google Analytics, успяхме да добавим ново ниво към фунията за използване на продукта.
- Посетих сайта.
- Щракнах върху бутона „изтегляне на приложение“.
- Изтеглете приложението (изтеглянето е завършено).
- Стартира приложението.
- Приложението инсталира всички драйвери.
Новото ниво ни позволи да оценим загубата на потребители, свързана с фактори като прекъснато изтегляне, приложението, което не се стартира след успешно изтегляне (например, ако приложението се изтегля по-дълго от приемливото време и потребителят забрави за него), бавно изтегляне или големи размери на приложението.
В същото време възможността за препращане на Google Analytics ClientID ви позволява да свързвате събития от Nginx с всички данни в Google Analytics: версия на браузъра, час от деня, география, демографски данни на аудиторията и дори персонализирани събития.
Ние успешно използваме цялата тази информация, за да увеличим броя на стартиранията. Например, чрез увеличаване на скоростта на доставка на съдържание до определени региони, успяхме да намалим загубата на потребители между второто и четвъртото ниво с повече от два пъти.
Бонус ефектът от внедряването на модула беше улавянето на възникващи грешки 404, което даде възможност за бърза реакция при появата им и подобряване на качеството на предоставяната услуга. Според груби оценки оперативната работа с 404 грешки намали загубата на потребители на месец с 40 000.
Повтарящите се изтегляния в рамките на една и съща сесия също показват проблеми, като неуспешно изтегляне или че потребителят не е намерил изтегленото приложение.
Нашият модул ви позволява да прехвърляте данни за проблеми с качването на файлове към познат и мощен инструмент за анализ (Google Analytics). Това ви позволява да работите във фунията за използванепродукт с ново ниво, което обикновено се пропуска.
Всички онлайн проекти, които изискват изтегляне на продукт от уебсайт или файлове в мобилно приложение, могат да се възползват значително от приложението на нашето решение, работещо точно с преобразуването от щракване върху бутона „Изтегляне“ до отваряне на изтегления файл.
Как ще използвате възможностите, които са се отворили, зависи от вас. Ще се радваме да получим вашите приложения и предложения за подобрение.
Лъжица катран
Скриптът работи отлично и 100% отговаря на нашите изисквания, но има няколко подобрения, които могат да бъдат добавени към него.
- Скриптът натоварва малко сървъра. В нашия случай това не е страшно, но за вас може да бъде от голямо значение.
- Nginx не поддържа urlencode(), така че връзки като example.com/?SomeOptions ще прекъснат. Един от начините за решаване на този проблем е използването на lua скрипт.
- Referrer не се предава на параметъра на Google Analytics (трябва също да използвате urlencode()).
- В Nginx 1.8 променливата $content_length не работи, така че не можем да предадем размера на файла на Google Analytics. Ако това бъде коригирано, ще могат да се правят отчети, съдържащи информация за процента на недостатъчно изтеглени файлове.
- Изпращане на служебна информация от Nginx, например за броя на връзките и т.н.
- Би било възможно да изпратите времето за качване директно до Google Analytics с помощта на параметъра &plt, но Nginx връща времето в секунди, а Google Analytics не харесва този формат (очакват се милисекунди). Следователно трябва да добавим тези данни към измерение2.
- Скриптът използва недокументираната функция post_action. Има риск тази функция да бъде премахната в новите версии.
Направи го сам
1. Създаваме отделен брояч на Google Analytics, с койтовсички сървъри за изтегляне ще работят. Или използвайте номера на съществуващ брояч.
2. В настройките на брояча "Потребителски параметри" добавете специални параметри:
- измерение1. Име “ClientID”, ниво “Потребител”;
- измерение2. Име “request_time”, ниво “Hit”;
- измерение3. Име „body_bytes_sent“, ниво „Hit“.
Това ще ни помогне да изчислим скоростта на изтегляне и дори процента на неуспешните изтегляния.
3. Създайте конфигурация, наречена google-analytics в директорията /etc/nginx/.
4. Вземете конфигурационния файл /etc/nginx/conf.d/default.config.
5. Рестартирайте Nginx.
6. Настройте брояч на сайта, така че ClientID да се съхранява в бисквитка.
7. Сега в Google Analytics можете да видите данни за изтегляния, посещения на URL адреси, HTTP състояния и др. Всичко това се свързва с всички други данни в Google Analytics чрез ClientID.
Една последна дума за точността
Точност на статистиката до 99%. Анализирахме няколко файла и сравнихме данните от Google Analytics с данните от регистрационните файлове.
Сравнението показва, че Google Analytics отчита уникалните изтегляния дори по-точно, отколкото можем да го направим ръчно.
Изпратете свои собствени случаи, в резултат на които сте успели значително да подобрите (или, обратно, да влошите) изпълнението на проекта. Интересни експерименти определено ще попаднат на страниците на секцията Growth Hacks.