L'histoire de Yandex.Metrika ReachGoal, la fille Lida et qu'il n'y a pas de problèmes insolubles
Le monde est imparfait, le World Wide Web est encore plus imparfait. Parfois, vous pouvez fermer les yeux sur cela. Mais pas seulement quand une belle fille nommée Lida du «département marketing» se tient devant vous, vous regarde dans les yeux et pose la question: «Pour une raison quelconque, dans Y. Metrica, les données que je vois dans l'entonnoir de commande sont différentes de celles que je vois dans notre système comptable. Et nous avons plus de commandes. "
Étant donné que les filles avec de beaux yeux doivent être aimées et chéries de toutes les manières possibles, il a été décidé de connecter la journalisation des événements qui se produisent avec les clients au cours de leur processus de commande.
N'espérant surtout aucun effet intéressant et donc pas sagement astucieux, un service a été ajouté rapidement qui enregistre les événements qui se produisent sur le frontend dans les navigateurs des visiteurs de notre site.
Tout d'abord, nous nous sommes intéressés aux événements pouvant survenir lors de l'exécution du code Y. Metrica, à savoir yaCounterXXXXXX.reachGoal ().
Donc, nous avons installé partout où nous devons intercepter l'exception et envoyer ces événements au serveur:
try { yaCounterXXXXXX.reachGoal("EVENT_XXX"); } catch(e) { $.get("/front/service/event", {event: "YM-warning", goal: " EVENT_XXX ", message: e.message}); }
Le temps passe, nous rappelons que nous avons jeté une canne à pêche, mais n'avons pas vérifié la prise.
Nous allons regarder les journaux, et à notre grande surprise, nous y voyons approximativement les éléments suivants:
[2018-04-17 09:04:51.431] [BASKET_LOAD] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36] [2018-04-17 09:09:18.082] [BASKET_LOAD] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] [2018-04-17 09:09:21.369] [BASKET_LOAD] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] [2018-04-17 09:09:24.990] [BASKET_LOAD] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] [2018-04-17 09:09:27.001] [] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] [2018-04-17 09:12:44.778] [ORDER_CREATED] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] ...
Un calcul rapide a montré qu'environ 3..4..5% des événements du panier passent par Y. Metrika. Lida avait raison. Et comme la fille a raison, il faut faire quelque chose. Bien que lorsque la fille a tort, vous devez toujours faire quelque chose.
Nous commençons à chercher une raison. Le compteur est correctement réglé, la grande majorité des événements sont correctement enregistrés par eux. Nous essayons de rechercher sur Google la présence de problèmes similaires parmi les collègues de l'atelier. Rien de tel n'a été trouvé.
Yandex TechSupport a répondu avec une lettre contenant un lien vers la documentation pour l'installation du compteur métrique, pour laquelle, bien sûr, un merci séparé et chaleureux à eux!
Je ne décrirai pas toutes les hypothèses que nous avons essayées. L'essentiel, c'est qu'au moment où la page a été chargée, le code du compteur Yandex.Metrica n'était pas chargé dans le navigateur du client et n'y était pas initialisé. Il peut s'agir d'un bloqueur de publicités et / ou de trackers de suivi, il peut y avoir des problèmes de réseau entre le client et le serveur Yandex (cela est peu probable).
J'ai dû prendre Lida par les mains, regarder dans ses yeux sans fond et dire à contrecœur la dure vérité: "Lida, nous devrons accepter le fait que certains visiteurs de notre site n'obtiendront pas d'événements de" commande / refus de passer une commande "dans Y. Metrika. Mais nous trouverons certainement quelque chose. "
L'été passa et l'automne touchait à sa fin, lorsque Lida réapparut sur le seuil du bureau. Dans ses yeux pleins de larmes, il est devenu clair que ces intérêts malheureux passant l'empêchaient de montrer de beaux rapports à ses supérieurs et ainsi d'obtenir une prime annuelle, qu'elle incluait déjà dans son budget pour des voyages en Thaïlande pour les vacances du Nouvel An.
Le cœur tremblait. Toute l'équipe du groupe frontal a été rassemblée et,
dans une forme difficile, a reçu l'ordre de "creuser d'ici jusqu'au déjeuner!" la tâche était de résoudre ce problème par tous les moyens! Pas ça !!! Sinon, Lida ne pourra pas se rendre en Thaïlande ...
Frontend ne voulait pas creuser depuis longtemps et une solution rapide a été proposée presque immédiatement:
Le résultat de cette décision peut être vu sur le graphique, ceci est une analyse du journal des événements Comme vous pouvez le voir, le nombre d'erreurs a chuté à presque 0
Si vous n'avez pas encore vérifié le succès du téléchargement des scripts Yandex.Metrica sur votre site, assurez-vous de vérifier. Des découvertes intéressantes peuvent également vous attendre.
Avertissement: je comprends que la solution ci-dessus est loin d'être optimale. Je serais heureux d'entendre des réflexions et des opinions à ce sujet.