
Bonjour, Habr! Je m'appelle Ivan Kizimenko, je suis responsable des analyses chez Outside. Dans cet article, je voudrais expliquer comment et pourquoi nous avons développé notre propre système d'analyse personnalisé au lieu de Google Analytics. En fait, nous avons travaillé non seulement avec les analyses de Google, mais également avec d'autres entreprises, y compris, par exemple, Adobe.
Mais un bon jour (et ce n'était vraiment pas mal) nous avons décidé: «Assez pour supporter ça! Il est temps de créer votre propre système. " Sous la coupe - sur les raisons de cette décision, les fonctionnalités du système personnalisé et un certain nombre d'autres choses intéressantes pour de nombreux lecteurs de Habr.
Pourquoi avons-nous besoin de tout cela?
Nous travaillons avec des clients assez importants avec des solutions globales dotées de systèmes d'analyse très différents. Quelqu'un a Adobe, quelqu'un a une version de base de Google Analytics, quelqu'un a 360.
Mais les solutions globales posent un certain nombre de problèmes:
- Ce sont des systèmes fermés avec un certain nombre de restrictions d'accès aux fonctionnalités.
- Ils ont des options de personnalisation minimales.
- Si quelque chose peut être amélioré, cela coûte très cher et, de plus, prend du temps.
- L'analytique couvre ses propres solutions sans tenir compte des développements locaux.
Étant donné que Google Analytics est peut-être le système d'analyse le plus populaire, énumérons d'abord ses inconvénients:
- La création de rapports et de tableaux de bord personnalisés demande beaucoup d'efforts.
- Dans les rapports du système, les données sont toujours agrégées et ce processus est complètement ou presque hors de contrôle.
- , , , -. .
- .
- API.
- — 24-48 , , .
- Google Analytics 20. — 200.
- — . , , IP .
En général, nous ne grondons pas Google Analytics - pas du tout. C'est un excellent système, mais il convient à une gamme limitée, quoique plutôt volumineuse, de tâches. Mais dès qu'une tâche spécifique se présente, comme le calcul des indicateurs pour un an et la comparaison avec la période passée, les problèmes commencent. Quelque part, le balisage ne couvre pas du tout la demande, quelque part il est tombé. Eh bien, ou la façon d'écrire l'événement a changé, vous devez donc "démarrer" Python, trier les données par jours et semaines et générer au moins des données proches de la réalité.
D'autres systèmes ont également des problèmes, notamment Adobe Analytics. Donc, si vous avez besoin de connecter des outils qui ne sont pas disponibles dans Adobe, cela est long et coûteux. Dans ce cas, il ne sera pas rentable sur le plan économique de créer un système basé sur Adobe qui couvrira tous les besoins de l'analyse Web de l'entreprise. Un inconvénient majeur du système est qu'il ne couvre que les projets mondiaux.
Des problèmes surviennent parfois là où vous ne les attendez pas. Par exemple, nous avions besoin d'un rapport pour l'année dernière, nous voulions les "retirer" de Google Analytics, mais cela n'a pas fonctionné. Il s'est avéré que quelqu'un des responsables du siège est entré dans les paramètres du compteur et a modifié les paramètres, de sorte que toutes les données historiques dont nous avions besoin étaient simplement supprimées.
En fin de compte, nous obtenons des éléments de base dans des systèmes assez complexes. Ce sont le trafic, les prospects, le taux de rebond (BR).
Le jour où tout a changé

Tout irait bien, mais il y a un gros problème - le taux de rebond, un indicateur auquel la plupart des spécialistes prêtent attention. Bien sûr, tout le monde veut l'abaisser. Si vous le souhaitez, il est très simple de le faire - une minuterie est «suspendue» pendant 25 secondes, l'événement disparaît et nous obtenons une diminution du pourcentage d'échec. Mais ce n'est que formellement, en réalité tout reste comme avant.
Si vous modifiez la méthode de comptage, par exemple, ajoutez 2 événements de défilement du navigateur aux secondes, puis BR augmente et les sources douteuses de CPA et de programmatique commencent à afficher un taux d'échec de 80%. Après avoir changé la méthodologie, il est presque impossible de calculer le pourcentage de refus pour une année au cours de laquelle plusieurs méthodes ont été utilisées.
Il existe d'autres problèmes, notamment une grande quantité de travail, une augmentation du nombre de scripts Python et de tâches CRON, des rapports complexes sont difficiles à créer et des analyses de bout en bout ne sont pas disponibles. En général, nous avons décidé de réviser l'approche de l'analyse et du balisage. Pour commencer, nous avons décidé des besoins critiques:
- Accéder aux données brutes.
- La possibilité de transférer n'importe quelle quantité d'informations supplémentaires.
- La possibilité de faire une sauvegarde.
- Utilisation du balisage automatique.
- La possibilité de connecter la base de données aux outils BI.
La meilleure option est d'assembler votre propre système de collecte de données, qui peut être facilement modifié et personnalisé dès que possible. Eh bien, nous avons utilisé Clickhouse comme stockage de données. Il est clair que votre propre système d'analyse doit répondre à un certain nombre de critères que nous avons formulés au tout début:
- La possibilité de stocker n'importe quelle quantité de données sur vos propres serveurs. Vous pouvez également restreindre l'accès aux données si nécessaire.
- Collectez n'importe quel nombre d'événements et de paramètres, ce qui fournit beaucoup plus de données pour l'analyse.
- La capacité à s'intégrer à des services tels que CRM, CAllTracking, BI, messageries instantanées, systèmes publicitaires, etc.
- Suivi des utilisateurs multiplateformes par cookie et identifiant.
- Créez vos propres modèles d'attribution.
- Travailler avec Open Source et aucun problème de sécurité.
- Commentaires en temps opportun du site, envoi d'événements de l'analyse au site directement pendant la session de l'utilisateur
- Adaptation d'une solution analytique aux exigences d'une entreprise spécifique.
Selon ces critères, nous avons assemblé notre propre système d'analyse, que nous utilisons maintenant. Quant aux données, elles sont stockées sous leur forme brute dans ClickHouse. À propos, un autre avantage du système d'analyse personnalisé est qu'il n'y a aucune restriction sur le nombre de paramètres. Cela a immédiatement ouvert la possibilité, par exemple, d'obtenir plus d'informations. Nous savons maintenant, par exemple, quelles couleurs, options, moteurs et autres paramètres sont très appréciés dans les configurateurs de voitures.
Et la visualisation?
En tant qu'outil de BI, nous avons d'abord essayé la métabase, qui n'a pas fonctionné, car elle fonctionne étrangement avec les caches et est difficile à personnaliser. Nous avons choisi Apache Superset et voici pourquoi:
- Il se développe rapidement. Chaque mois, de nouvelles améliorations et mises à jour.
- Vous pouvez créer vos propres graphiques et visualisations, par exemple, Echarts, qui a un grand nombre de possibilités dans son arsenal.
- Personnalisation de l'apparence des tableaux de bord en CSS - il est assez facile de créer un tableau de bord pour l'identité d'entreprise de la marque.
- Bon outil de recherche. Vous pouvez rapidement esquisser une requête SQL, obtenir une réponse.
- Il est possible d'envoyer des rapports à Email et Slack
- Contrôle d'accès prêt à l'emploi. Pour chaque graphique, ensemble de données, peu importe, vous pouvez configurer l'accès à des utilisateurs spécifiques.
Plusieurs dizaines de tableaux de bord sont désormais disponibles avec différents niveaux d'accès pour différentes tâches. Cela comprend des tableaux de bord pour les mesures de trafic de base, des tableaux de bord pour l'équipe / les équipes produit et pour d'autres agences.
Après l'adoption du système, la vitesse de traitement des questions non standard a considérablement augmenté. Il s'agit désormais d'un ensemble de requêtes SQL via SQLab dans Superset. Et aussi - attention - vous pouvez connecter d'autres, des bases de données, que partiellement utilisées dans l'analyse Web.
N'oublions pas l'automatisation
Pour résoudre les tâches de routine, nous avons utilisé Apache Airflow 2. Cela nous a permis de télécharger des données et de générer des rapports dans un seul outil. En fin de compte, il a été possible d'agréger des données provenant d'autres sources et d'autres agences pour former les rapports finaux.

Après un certain temps, il a été possible de développer un système d'analyse qui permet non seulement de créer des services qui répondent aux événements en temps réel, mais également d'empoisonner les e-mails et le Push, ainsi que d'envoyer des Webhooks ou d'envoyer des signaux directement au navigateur.
Le système personnalisé, entre autres avantages, vous permet de vous connecter facilement à n'importe quelle adresse IP tierce.
Sous le capot, le système dispose de sa propre structure d'analyse pour Python et Type / JavaScript, qui simplifie et accélère le processus de développement. Il existe également un système de lancement et de contrôle, ainsi qu'un environnement de développement intégré basé sur Theia IDE, ainsi qu'un Jupiter Lab pour une recherche et un prototypage rapides. Enfin, Grafana est un outil de visualisation et des tableaux de bord simples.
A titre d'exemple du travail du système résultant, nous pouvons citer son utilisation pour le calcul du test AB de l'AVN de la société Skoda. L'analyse personnalisée a permis de:
- Obtenez des données de Clickhouse.
- Traiter les informations chez Pythone + Clickhouse.
- Stockez les données calculées au format CSV.
- Réglez une minuterie pour démarrer toutes les 6 heures.
- La possibilité d'arrêter, de reconstruire ou de personnaliser le service, car il fonctionne indépendamment des autres systèmes.
Cela semble un peu compliqué, mais cela peut être expliqué par un exemple. Auparavant, lorsqu'un utilisateur laissait une demande d'achat d'une voiture, seul le numéro de téléphone de l'acheteur atteignait le directeur des ventes. Le spécialiste doit donc appeler à nouveau le client et lui demander tout ce qui a déjà été rempli auparavant.
Désormais, le gestionnaire, en plus de l'application, reçoit des informations récapitulatives sur le visiteur, y compris l'intérêt de ce dernier pour une certaine marque de voiture, configuration, etc. Et, en passant, le gestionnaire reçoit des informations personnalisées. De plus, le gestionnaire comprend mieux ce dont une personne a besoin et ce qu'elle peut offrir.
En conclusion, il faut dire qu'en fin de compte, tout a fonctionné - un système d'analyse personnalisé fonctionne au profit des clients sans risquer de perdre des données en six mois, voire un an. L'analyse des données avec visualisation ultérieure prend un minimum de temps. Eh bien, si vous avez besoin d'ajouter et de supprimer quelque chose, vous pouvez le faire très rapidement avec des coûts minimes.