{"id":1742,"date":"2013-04-10T14:14:18","date_gmt":"2013-04-10T12:14:18","guid":{"rendered":"https:\/\/juliencoquet.com\/?p=1742"},"modified":"2019-03-29T15:09:34","modified_gmt":"2019-03-29T14:09:34","slug":"mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics","status":"publish","type":"post","link":"https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/","title":{"rendered":"Mesurer l&rsquo;activit\u00e9 d&rsquo;un magasin classique avec Google Universal Analytics"},"content":{"rendered":"<p><a href=\"https:\/\/www.youtube.com\/watch?v=hBD8l5rOa8Q\">Salut les kids<\/a>,<\/p>\n<p>Voici un autre billet sur <a href=\"https:\/\/juliencoquet.com\/tag\/universal-analytics\/\">Google Analytics Universal<\/a>, vu que <a href=\"https:\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/trafic-google-analytics-universal.png\">vous avez l&rsquo;air de les appr\u00e9cier<\/a>\u00a0<img decoding=\"async\" alt=\";-)\" src=\"\/\/juliencoquet.com\/wp-includes\/images\/smilies\/icon_wink.gif\" \/><\/p>\n<p>Aujourd&rsquo;hui, nous allons\u00a0<strong>mesurer la performance d&rsquo;un magasin classique (hors-ligne\/offline)<\/strong>\u00a0en testant 2 concepts:<\/p>\n<ul>\n<li><strong>la mesure des entr\u00e9es\/sorties des clients du magasin<\/strong><\/li>\n<li><strong>mesure des op\u00e9rations de caisse enregistreuse (achats)<\/strong><\/li>\n<\/ul>\n<p>Encore une fois, il s&rsquo;agit d&rsquo;une preuve de concept avec <a href=\"https:\/\/juliencoquet.com\/tag\/universal-analytics\/\">Google Analytics Universal<\/a>, mais n&rsquo;h\u00e9sitez pas \u00e0 l&rsquo;imiter dans votre propre magasin.<\/p>\n<p>Pr\u00eat(e) pour la suite?\u00a0(oui je sais, vous \u00eates en train de tr\u00e9pigner de curiosit\u00e9\u00a0<img decoding=\"async\" alt=\": D\" src=\"\/\/juliencoquet.com\/wp-includes\/images\/smilies\/icon_biggrin.gif\" \/>\u00a0)<\/p>\n<p><!--more--><\/p>\n<h2>Concept et m\u00e9thodologie<\/h2>\n<h3>Mesure des clients entrants\/sortants<\/h3>\n<p><a href=\"https:\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/raspberry_pi_sprite.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1727 alignright\" style=\"margin: 10px; border: 0px;\" alt=\"raspberry pi sprite logo\" src=\"\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/raspberry_pi_sprite.png\" width=\"225\" height=\"52\" \/><\/a>Dans cet exemple, nous allons utiliser la reconnaissance visuelle avec des webcams de base \/ cam\u00e9ras IP pilot\u00e9es par des\u00a0<a href=\"https:\/\/www.raspberrypi.org\/\">mini-ordinateurs Raspberry Pi<\/a>\u00a0(le mod\u00e8le B a plus de RAM et un port USB suppl\u00e9mentaire, entre autres). Ils sont peu co\u00fbteux (25\u20ac pi\u00e8ce) et sont assez puissants pour un ordinateur de poche &#8211; ils sont de la taille d&rsquo;une carte de cr\u00e9dit!<\/p>\n<p>Oui, je sais: c&rsquo;est plus dr\u00f4le en anglais &#8211; Raspberry Pi ressemble phon\u00e9tiquement en anglais \u00e0 \u00ab\u00a0tarte \u00e0 la framboise\u00a0\u00bb \ud83d\ude00<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/RPI_pi-1s.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-1736\" alt=\"Raspberry Pi\" src=\"\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/RPI_pi-1s.jpg\" width=\"480\" height=\"325\" srcset=\"https:\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/RPI_pi-1s.jpg 600w, https:\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/RPI_pi-1s-300x203.jpg 300w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a><\/p>\n<p>Nous allons donc utiliser 2 \u00ab\u00a0tartes\u00a0\u00bb \u00a0\u00e9quip\u00e9es de webcams: une pour d\u00e9tecter les visiteurs entrants et une pour les visiteurs sortants. Une d\u00e9tection de mouvement se d\u00e9clenche d\u00e8s qu&rsquo;un client passe devant la webcam.<\/p>\n<figure id=\"attachment_1734\" aria-describedby=\"caption-attachment-1734\" style=\"width: 250px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/webcam-universal-analytics-blank.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1734 aligncenter\" alt=\"webcam universal analytics blank\" src=\"\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/webcam-universal-analytics-blank.png\" width=\"250\" height=\"188\" \/><\/a><figcaption id=\"caption-attachment-1734\" class=\"wp-caption-text\">Fig 1. La webcam fixe toujours le m\u00eame endroit (le lieu de passage).<br \/>Elle s&rsquo;ennuie beaucoup \ud83d\ude41<\/figcaption><\/figure>\n<figure id=\"attachment_1735\" aria-describedby=\"caption-attachment-1735\" style=\"width: 250px\" class=\"wp-caption aligncenter\"><a style=\"line-height: 1.714285714; font-size: 1rem;\" href=\"https:\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/webcam-universal-analytics-shopper.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-1735 \" alt=\"webcam universal analytics shopper\" src=\"\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/webcam-universal-analytics-shopper.png\" width=\"250\" height=\"195\" \/><\/a><figcaption id=\"caption-attachment-1735\" class=\"wp-caption-text\">Fig. 2. Une cliente appara\u00eet! Le magasin utilise la \u00ab\u00a0Promo -20% sur tout.\u00a0\u00bb<br \/>C&rsquo;EST SUPER EFFICACE!<\/figcaption><\/figure>\n<p>Si on r\u00e9capitule:\u00a0<strong>d\u00e8s que l&rsquo;image change pour la webcam, signalant le passage d&rsquo;un client, on d\u00e9clenche un appel (endpoint) Google Analytics Universal <\/strong>qui contient une \u00e9x\u00e9cution d&rsquo;\u00e9v\u00e9nement Google Analytics.<\/p>\n<h3>Mesure des achats en caisse<\/h3>\n<p>Avant de commencer \u00e0 hurler parce que votre caisse enregistreuse peut pas se connecter \u00e0 l&rsquo;Internet, encore une fois il s&rsquo;agit ici d&rsquo;un \u00ab\u00a0proof of concept\u00a0\u00bb. Il est probable que vous ne puissiez pas l&rsquo;appliquer dans votre propre magasin ; dans ce billet, je ne fais que valider un concept. On va le r\u00e9p\u00e9ter ensemble: <strong>un concept<\/strong>. Mais je vous rassure, c&rsquo;est dans le domaine du faisable.<\/p>\n<p>Dans notre exemple, nous allons utiliser le logiciel <em>open source<\/em> de caisse enregistreuse. Utiliser un logiciel libre signifie que nous pouvons modifier (d\u00e9tails plus bas) son code et ses fonctionnalit\u00e9s pour les besoins de l&rsquo;exp\u00e9rience.<\/p>\n<p>Notre objectif ici est d&rsquo;envoyer un appel Google Analytics Universal qui enregistre une transaction de commerce \u00e9lectronique (et les articles du panier, inch&rsquo;Allah). Selon que nous voulons voir un joli \u00a0flux de transactions dans les <a title=\"Nouveaut\u00e9s rapports et tableaux de bord temps r\u00e9el Google Analytics\" href=\"https:\/\/juliencoquet.com\/2013\/03\/27\/nouveautes-rapports-et-tableaux-de-bord-temps-reel-google-analytics\/\">rapports en temps r\u00e9el Google Analytics<\/a> (pas encore dispo), nous pouvons envoyer les appels e-commerce d\u00e8s le passage en caisse, ou de fa\u00e7on asynchrone en fin de journ\u00e9e, lors du traitement de la caisse et de l&rsquo;\u00e9tablissement du rapport quotidien de ventes.<\/p>\n<h2>Votre liste de courses<\/h2>\n<p>Pour vous livrer vous aussi \u00e0 cette exp\u00e9rience, vous aurez besoin de:<\/p>\n<ul>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Un minimum de connaissances de programmation \ud83d\ude42<\/span><\/li>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Au moins 2 mini-ordinateurs Raspberry Pi avec leurs chargeurs.<br \/>\nChaque Raspberry Pi B co\u00fbte environ 25\u20ac et les chargeurs co\u00fbtent environ 7\u20ac. En fait, vous pourriez utiliser un troisi\u00e8me Raspberry Pi pour g\u00e9rer la caisse, avec un moniteur bas de gamme et un clavier USB.<\/span><\/li>\n<li>2 webcams\u00a0USB<\/li>\n<li>Des adaptateurs USB WiFi ou des cables r\u00e9seau\u00a0Ethernet<\/li>\n<li>Du RedBull. Beaucoup de RedBull.<\/li>\n<\/ul>\n<p>Au bout du compte, vous devriez vous en sortir pour moins de 200\u20ac. Piquez la CB de quelqu&rsquo;un et bon shopping!<\/p>\n<h2>Installation<\/h2>\n<p><a href=\"https:\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/raspberry-pi-nano-wifi-dongle-3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright\" alt=\"raspberry-pi-nano-wifi-dongle-3\" src=\"\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/raspberry-pi-nano-wifi-dongle-3-150x150.jpg\" width=\"150\" height=\"150\" \/><\/a>La complexit\u00e9 de l&rsquo;installation peut varier sauf si vous utilisez des\u00a0<a href=\"https:\/\/www.raspberrypi.org\/wp-content\/uploads\/2012\/12\/quick-start-guide-v1.1.pdf\">Rasperry Pi fra\u00eechement install\u00e9s<\/a>. Attention, ce guide ne parle pas des d\u00e9pendances entre l&rsquo;OS et les diff\u00e9rents modules. Vous \u00eates grand(e)s, regardez la documentation.<\/p>\n<p>Vos Raspberry Pis vont devoir communiquer avec le \u00ab\u00a0vaisseau-m\u00e8re\u00a0\u00bb \u00a0Google Analytics. suivant votre acc\u00e8s \u00e0 Internet, vous devrez vous servir de bons vieux cables Ethernet ou des \u00a0<a href=\"https:\/\/pingbin.com\/2012\/12\/setup-wifi-raspberry-pi\/\">dongles USB WiFi pour Rasperry Pi<\/a>.<\/p>\n<h3>D\u00e9tection de mouvement avec Motion<\/h3>\n<p>Pour la d\u00e9tection de mouvement, je me suis largement inspir\u00e9 de ce\u00a0<a href=\"https:\/\/pingbin.com\/2012\/12\/raspberry-pi-web-cam-server-motion\/\">tutoriel sur la d\u00e9tection de mouvement avec Raspberry Pi<\/a>, qui utilise le module open-source\u00a0<a href=\"https:\/\/www.lavrsen.dk\/foswiki\/bin\/view\/Motion\/\">Motion<\/a>.<\/p>\n<p><strong>ASTUCE<\/strong>: pour de meilleurs r\u00e9sultats lors de la d\u00e9tection, placez une couleur unie comme image de fond pour la webcam pour chacun des points de passage des clients que vous voulez traquer. On parle ici de l&rsquo;entr\u00e9e et de la sortie (en l&rsquo;occurence, la porte de mon bureau :P) mais vous avez maintenant devin\u00e9 qu&rsquo;on peut \u00e9tendre le principe \u00e0 un nombre important de webcams pour diff\u00e9rents endroits du magasin.<\/p>\n<p>Notez bien qu&rsquo;avec Motion, vous n&rsquo;avez pas forc\u00e9ment besoin de stocker l&rsquo;image captur\u00e9e par la webcam (\/dev\/null, mon amour). Le plus important c&rsquo;est que Motion permet l&rsquo;\u00e9x\u00e9cution de commandes et de script d\u00e8s qu&rsquo;il d\u00e9tecte un mouvement. Il s&rsquo;agit de commandes externes (External Commands)\u00a0<a href=\"https:\/\/www.lavrsen.dk\/foswiki\/bin\/view\/Motion\/MotionGuide3x1x20#External_Commands\">et elles sont r\u00e9f\u00e9renc\u00e9es dans la documentation<\/a>.<\/p>\n<p><strong>Ressources Raspberry Pi sur les webcams et la d\u00e9tection de mouvement:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/pingbin.com\/2012\/12\/raspberry-pi-web-cam-server-motion\/\">https:\/\/pingbin.com\/2012\/12\/raspberry-pi-web-cam-server-motion\/<\/a><\/li>\n<li><a href=\"https:\/\/www.raspberrypi.org\/phpBB3\/viewtopic.php?t=18314\">https:\/\/www.raspberrypi.org\/phpBB3\/viewtopic.php?t=18314<\/a><\/li>\n<\/ul>\n<p>En supposant que nous avons d\u00e9fini notre <em>endpoint<\/em> Universal Analytics (l&rsquo;URL de l&rsquo;appel de pixel), la commande externe \u00e0 d\u00e9clencher \u00e0 chaque d\u00e9tection de mouvement peut \u00eatre d\u00e9finie dans le fichier de configuration de Motion:<\/p>\n<p>[code lang=\u00a0\u00bbshell\u00a0\u00bb]#External command to be executed when detecting motion (default: none)<br \/>\n execute wget %ENDPOINT%[\/code]<\/p>\n<p>Apparemment ce fichier de config ne g\u00e8re pas de cas diff\u00e9rents donc on aura bien un fichier de configuration par webcam, avec un <em>endpoint<\/em> <strong>en dur<\/strong>.<\/p>\n<p>[code]https:\/\/www.google-analytics.com\/collect<br \/>\n ?v=1<br \/>\n &amp;t=event \/\/ Type d&rsquo;appel GA, ici un \u00e9v\u00e9nement<br \/>\n &amp;tid=UA-7634164-5 \/\/ ID de profil GA<br \/>\n &amp;cid=555 \/\/ Num\u00e9ro client anonyme (fixe)<br \/>\n &amp;dh=monmagasin.com \/\/ mon &quot;nom de domaine&quot; =)<br \/>\n &amp;ec=D\u00e9tection%20Mouvement \/\/ Cat\u00e9gorie d&rsquo;\u00e9v\u00e9nement<br \/>\n &amp;ea=Entr\u00e9e \/\/ Action: Le client entre ou sort?<br \/>\n &amp;ev=1 \/\/ Valeur arbitraire d&rsquo;\u00e9v\u00e9nement de 1<br \/>\n &amp;cm5=1 \/\/ Statistique perso (compteur +1)[\/code]<\/p>\n<p>L&rsquo;appel Google Analytics Universal ci-dessus est d\u00e9fini pour la webcam qui surveille l&rsquo;entr\u00e9e. Il vous suffit de changer cet appel pour l&rsquo;autre webcam en rempla\u00e7ant &lsquo;Entr\u00e9e&rsquo; par &lsquo;Sortie&rsquo; dans la variable &lsquo;ea&rsquo;.\u00a0Remarquez que je me sers de ma <strong>variable personnalis\u00e9e\u00a0Google Universal Analytics<\/strong>\u00a0(#5) pour compte le nombre total de clients. Id\u00e9alement, mes rapports me montreront un chiffre \u00e0 peu pr\u00e8s \u00e9gal entre clients entrants et sortants.<\/p>\n<p>Et c&rsquo;est tout! Il suffit de lancer le serveur Motion sur vos Raspberry Pis et les webcams feront le reste en d\u00e9clenchant un appel GA lors de l&rsquo;entr\u00e9e\/sortie de clients. Evidemment, si deux clients rentrent en marchant c\u00f4te \u00e0 c\u00f4te, on ne comptera qu&rsquo;un appel.<\/p>\n<p><strong>BONUS POUR LES FOUS FURIEUX<\/strong>: if votre magasin a un tourniquet, oubliez la webcam! A la place, branchez un acc\u00e9l\u00e9rom\u00e8tre sur votre Raspberry Pi, attachez le tout au tourniquet et comptez une entr\u00e9e \u00e0 chaque tour complet.<\/p>\n<p>Comme \u00e0 chaque fois, et comme j&rsquo;aime le r\u00e9p\u00e9ter, ce n&rsquo;est pas de la physique quantique \ud83d\ude09<\/p>\n<h3>Mesure des achats en caisse<\/h3>\n<p>Maintenant, passons \u00e0 la partie int\u00e9ressante : les achats!<\/p>\n<p><span style=\"font-size: 1rem; line-height: 1.714285714;\">Pour les besoins de l&rsquo;exp\u00e9rience, je vais utiliser\u00a0<a href=\"https:\/\/sourceforge.net\/projects\/lemonpos\/\">LemonPOS<\/a>, une solution <em>open source<\/em> de caisse enregistreuse \/ point de vente en C++. C&rsquo;est moins sexy c&rsquo;est sur, mais bon, j&rsquo;essaie juste de valider un concept \ud83d\ude09<\/span><\/p>\n<p><strong><span style=\"font-size: 1rem; line-height: 1.714285714;\">En fait, cette partie ressemble \u00e0 s&rsquo;y m\u00e9prendre \u00e0 une mise en place classique du code eCommerce<\/span><\/strong><em id=\"__mceDel\"><span style=\"font-size: 1rem; line-height: 1.714285714;\">.<\/span><\/em><\/p>\n<p>Pour traquer les transactions, vous devrez \u00e9videmment modifier des fichiers pour d\u00e9clencher les appels eCommerce Google Analytics. Dans LemonPOS, le fichier \u00e0 modifier est\u00a0<em>dataAccess\/azahar.cpp<\/em>\u00a0o\u00f9 deux fonctions doivent \u00eatre chang\u00e9es ; il s&rsquo;agit de <em>Azahar::insertTransaction<\/em> et\u00a0<em>Azahar::insertTransactionItem<\/em>. Vous pouvez modifier ces fonctions pour qu&rsquo;elles fassent des appels d&rsquo;URL avec <a title=\"Gmail activity in Google Universal Analytics\" href=\"https:\/\/juliencoquet.com\/en\/2013\/04\/06\/gmail-activity-in-google-universal-analytics\/\">cURL, comme pour le billet pr\u00e9c\u00e9dent sur Google Universal Analytics [EN]<\/a>.<\/p>\n<p>Voici \u00e0 quoi vos <em>endpoints<\/em> devraient ressembler:<\/p>\n<p><strong>Transaction<\/strong><\/p>\n<p>[code]https:\/\/www.google-analytics.com\/collect<br \/>\n ?v=1<br \/>\n &amp;t=transaction \/\/ Type d&rsquo;appel GA<br \/>\n &amp;tid=UA-7634164-5 \/\/ ID de profil<br \/>\n &amp;cid=555 \/\/ num\u00e9ro de client anonyme, g\u00e9n\u00e9r\u00e9 par LemonPOS dans info.clientid<br \/>\n &amp;dh=monmagasin.com \/\/ &quot;nom de domaine&quot;<br \/>\n &amp;ta=Mon%20Magasin%20Classique  \/\/ nom de boutique<br \/>\n &amp;ti=123456789 \/\/ num\u00e9ro de transaction , g\u00e9n\u00e9r\u00e9 \u00e0 la cr\u00e9ation, cf billet<br \/>\n &amp;tr=2000 \/\/ total, dans LemonPOS: info.amount<br \/>\n &amp;tt=100 \/\/ montant TVA, dans LemonPOS: info.totalTax<br \/>\n &amp;ts=0 \/\/ Frais de livraison, inexistant dans LemonPOS (boutique physique)<br \/>\n &amp;cm2= \/\/ Variable perso pour mesurer le montant, dans LemonPOS: info.amount[\/code]<\/p>\n<p><span style=\"line-height: 1.714285714; font-size: 1rem;\">Notez bien que le num\u00e9ro de transaction est g\u00e9n\u00e9r\u00e9 d\u00e8s que la requ\u00eate INSERT est \u00e9x\u00e9cut\u00e9e, l&rsquo;appel au endpoint doit donc avoir lieu <strong>apr\u00e8s<\/strong> <em>query2.exec()<\/em>. Vous pouvez maintenant stocker ce num\u00e9ro de transaction dans une variable globale: nous en aurons besoin ci-dessous pour le suivi des articles achet\u00e9s.<br \/>\n<\/span><\/p>\n<p><strong>Articles achet\u00e9s<\/strong><\/p>\n<p>[code]https:\/\/www.google-analytics.com\/collect<br \/>\n ?v=1<br \/>\n &amp;t=item \/\/ Type d&rsquo;appel GA<br \/>\n &amp;tid=UA-7634164-5 \/\/ ID de profil GA<br \/>\n &amp;cid=555 \/\/ num\u00e9ro de client g\u00e9n\u00e9r\u00e9 par LemonPOS<br \/>\n &amp;dh=monmagasin.com<br \/>\n &amp;ti=123456789 \/\/ num\u00e9ro de transaction g\u00e9n\u00e9r\u00e9 par LemonPOS<br \/>\n &amp;ic=W001234 \/\/ Num\u00e9ro de produit<br \/>\n &amp;in=Widget%20%2D%20XL%20White \/\/ Nom de produit<br \/>\n &amp;ip=100 \/\/ prix unitaire<br \/>\n &amp;iq=20 \/\/ Quantit\u00e9<br \/>\n &amp;iv=Widgets \/\/ Cat\u00e9gorie de produit<\/p>\n<p>[\/code]<\/p>\n<p><a href=\"https:\/\/sourceforge.net\/projects\/lemonpos\/\">LemonPOS<\/a>, est \u00e9crit en C++, vous devrez donc recompiler votre projet d\u00e8s que vous effectuez un changement dans le code. Pas tr\u00e8s compliqu\u00e9 mais faites attention \ud83d\ude09<\/p>\n<p>Si tout se passe comme pr\u00e9vu, vous devriez voir les donn\u00e9es remonter dans votre compte Google Analytics. F\u00e9licitations!<\/p>\n<p><a href=\"https:\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/webcam-google-universal-analytics-transactions-real-time.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright  wp-image-1740\" alt=\"webcam google universal analytics transactions real time\" src=\"\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/webcam-google-universal-analytics-transactions-real-time.png\" width=\"596\" height=\"315\" srcset=\"https:\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/webcam-google-universal-analytics-transactions-real-time.png 852w, https:\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/webcam-google-universal-analytics-transactions-real-time-300x158.png 300w, https:\/\/juliencoquet.com\/wp-content\/uploads\/2013\/04\/webcam-google-universal-analytics-transactions-real-time-624x329.png 624w\" sizes=\"auto, (max-width: 596px) 100vw, 596px\" \/><\/a><\/p>\n<h2>Pour conclure<\/h2>\n<p>Nous avons progress\u00e9 sur notre chemin vers le Nerdvana nous pouvons maintenant mesurer l&rsquo;activit\u00e9 de notre magasin \u00ab\u00a0classique\u00a0\u00bb \u00ab\u00a0offline\u00a0\u00bb \u00ab\u00a0brick and mortar\u00a0\u00bb \u00ab\u00a0traditionnel\u00a0\u00bb (rayez la mention inutile avec Google Analytics. Avec la bonne combinaison de dimensions et variables personnalis\u00e9es, ce test de concept montrent que <strong>les commer\u00e7ants classiques pourraient avoir rapidement acc\u00e8s au m\u00eame reporting \u00ab\u00a0sexy\u00a0\u00bb<\/strong> pour leur magasin que les rapports de performance eCommerce des outils digital analytics.<\/p>\n<p>Cela dit, Google Analytics ne remplacera sans doute pas le reporting fourni par les solutions de \u00a0back-office et autres progiciels (sic). Je fais confiance \u00e0 ces derniers pour qu&rsquo;ils continuent de s&rsquo;alourdir et d&rsquo;enlaidir &#8211; m\u00eame si paradoxalement, ils accomplissent la t\u00e2che demand\u00e9e. Mais quand m\u00eame, ces outils pourraient \u00eatre rendus plus sexy et intuitifs \ud83d\ude09<\/p>\n<p>Ce genre de r\u00e9flexion illustre le bien-fond\u00e9 de solutions comme\u00a0<a href=\"https:\/\/euclidanalytics.com\/\">Euclid<\/a>, qui mesure la performance des magasins classiques.<\/p>\n<p>Comme les autres billets de cette s\u00e9rie, ceci fait partie de la R&amp;D analytics que j&rsquo;effectue pour <a href=\"https:\/\/www.hub-sales.fr\/\">Hub\u2019Sales<\/a>\u00a0et\u00a0<a href=\"https:\/\/www.hub-scan.fr\/\">Hub\u2019Scan<\/a>, notre\u00a0<a href=\"https:\/\/www.hub-scan.fr\/\">solution assurance qualit\u00e9 Google Analytics<\/a>. Pour info, comme je me sers de mes Raspberry Pis \u00e0 titre personnel, Hub&rsquo;Sales n&rsquo;a pas particip\u00e9 \u00e0 mes frais \ud83d\ude09<\/p>\n<p>Comme d&rsquo;habitude, vos commentaires constructifs sont les bienvenus!\u00a0<img decoding=\"async\" alt=\":-)\" src=\"\/\/juliencoquet.com\/wp-includes\/images\/smilies\/icon_smile.gif\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Salut les kids, Voici un autre billet sur Google Analytics Universal, vu que vous avez l&rsquo;air de les appr\u00e9cier\u00a0 Aujourd&rsquo;hui, nous allons\u00a0mesurer la performance d&rsquo;un magasin classique (hors-ligne\/offline)\u00a0en testant 2 concepts: la mesure des entr\u00e9es\/sorties des clients du magasin mesure des op\u00e9rations de caisse enregistreuse (achats) Encore une fois, il s&rsquo;agit d&rsquo;une preuve de concept [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"fr_FR","_original_post":"1742","footnotes":""},"categories":[],"tags":[],"class_list":["post-1742","post","type-post","status-publish","format-standard","hentry","fr-FR"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mesurer l&#039;activit\u00e9 d&#039;un magasin classique avec Google Universal Analytics - Julien Coquet<\/title>\n<meta name=\"description\" content=\"Ce billet d\u00e9crit comment mesurer les visiteurs entrant et sortant d&#039;un magasin physique et mesurer les achats en caisse avec Google Analytics Universal.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mesurer l&#039;activit\u00e9 d&#039;un magasin classique avec Google Universal Analytics - Julien Coquet\" \/>\n<meta property=\"og:description\" content=\"Ce billet d\u00e9crit comment mesurer les visiteurs entrant et sortant d&#039;un magasin physique et mesurer les achats en caisse avec Google Analytics Universal.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/\" \/>\n<meta property=\"og:site_name\" content=\"Julien Coquet\" \/>\n<meta property=\"article:published_time\" content=\"2013-04-10T12:14:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-03-29T14:09:34+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/fr\\\/2013\\\/04\\\/10\\\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/fr\\\/2013\\\/04\\\/10\\\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Mesurer l&rsquo;activit\u00e9 d&rsquo;un magasin classique avec Google Universal Analytics\",\"datePublished\":\"2013-04-10T12:14:18+00:00\",\"dateModified\":\"2019-03-29T14:09:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/fr\\\/2013\\\/04\\\/10\\\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\\\/\"},\"wordCount\":1933,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/#\\\/schema\\\/person\\\/16345764b7c7529e428e37fd635ed8ea\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/juliencoquet.com\\\/fr\\\/2013\\\/04\\\/10\\\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/fr\\\/2013\\\/04\\\/10\\\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\\\/\",\"url\":\"https:\\\/\\\/juliencoquet.com\\\/fr\\\/2013\\\/04\\\/10\\\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\\\/\",\"name\":\"Mesurer l'activit\u00e9 d'un magasin classique avec Google Universal Analytics - Julien Coquet\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/#website\"},\"datePublished\":\"2013-04-10T12:14:18+00:00\",\"dateModified\":\"2019-03-29T14:09:34+00:00\",\"description\":\"Ce billet d\u00e9crit comment mesurer les visiteurs entrant et sortant d'un magasin physique et mesurer les achats en caisse avec Google Analytics Universal.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/fr\\\/2013\\\/04\\\/10\\\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/juliencoquet.com\\\/fr\\\/2013\\\/04\\\/10\\\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/fr\\\/2013\\\/04\\\/10\\\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/juliencoquet.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mesurer l&#8217;activit\u00e9 d&#8217;un magasin classique avec Google Universal Analytics\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/#website\",\"url\":\"https:\\\/\\\/juliencoquet.com\\\/\",\"name\":\"Julien Coquet\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/#\\\/schema\\\/person\\\/16345764b7c7529e428e37fd635ed8ea\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/juliencoquet.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/#\\\/schema\\\/person\\\/16345764b7c7529e428e37fd635ed8ea\",\"name\":\"julien\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/julien-coquet-expert-analytics-consultant.jpg\",\"url\":\"https:\\\/\\\/juliencoquet.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/julien-coquet-expert-analytics-consultant.jpg\",\"contentUrl\":\"https:\\\/\\\/juliencoquet.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/julien-coquet-expert-analytics-consultant.jpg\",\"width\":576,\"height\":576,\"caption\":\"julien\"},\"logo\":{\"@id\":\"https:\\\/\\\/juliencoquet.com\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/julien-coquet-expert-analytics-consultant.jpg\"},\"sameAs\":[\"https:\\\/\\\/juliencoquet.com\"]},{\"@type\":\"Person\",\"@id\":\"\",\"url\":\"https:\\\/\\\/juliencoquet.com\\\/author\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mesurer l'activit\u00e9 d'un magasin classique avec Google Universal Analytics - Julien Coquet","description":"Ce billet d\u00e9crit comment mesurer les visiteurs entrant et sortant d'un magasin physique et mesurer les achats en caisse avec Google Analytics Universal.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/","og_locale":"fr_FR","og_type":"article","og_title":"Mesurer l'activit\u00e9 d'un magasin classique avec Google Universal Analytics - Julien Coquet","og_description":"Ce billet d\u00e9crit comment mesurer les visiteurs entrant et sortant d'un magasin physique et mesurer les achats en caisse avec Google Analytics Universal.","og_url":"https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/","og_site_name":"Julien Coquet","article_published_time":"2013-04-10T12:14:18+00:00","article_modified_time":"2019-03-29T14:09:34+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"","Dur\u00e9e de lecture estim\u00e9e":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/#article","isPartOf":{"@id":"https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/"},"author":{"name":"","@id":""},"headline":"Mesurer l&rsquo;activit\u00e9 d&rsquo;un magasin classique avec Google Universal Analytics","datePublished":"2013-04-10T12:14:18+00:00","dateModified":"2019-03-29T14:09:34+00:00","mainEntityOfPage":{"@id":"https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/"},"wordCount":1933,"commentCount":4,"publisher":{"@id":"https:\/\/juliencoquet.com\/#\/schema\/person\/16345764b7c7529e428e37fd635ed8ea"},"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/","url":"https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/","name":"Mesurer l'activit\u00e9 d'un magasin classique avec Google Universal Analytics - Julien Coquet","isPartOf":{"@id":"https:\/\/juliencoquet.com\/#website"},"datePublished":"2013-04-10T12:14:18+00:00","dateModified":"2019-03-29T14:09:34+00:00","description":"Ce billet d\u00e9crit comment mesurer les visiteurs entrant et sortant d'un magasin physique et mesurer les achats en caisse avec Google Analytics Universal.","breadcrumb":{"@id":"https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/juliencoquet.com\/fr\/2013\/04\/10\/mesurer-lactivite-dun-magasin-classique-avec-google-universal-analytics\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/juliencoquet.com\/"},{"@type":"ListItem","position":2,"name":"Mesurer l&#8217;activit\u00e9 d&#8217;un magasin classique avec Google Universal Analytics"}]},{"@type":"WebSite","@id":"https:\/\/juliencoquet.com\/#website","url":"https:\/\/juliencoquet.com\/","name":"Julien Coquet","description":"","publisher":{"@id":"https:\/\/juliencoquet.com\/#\/schema\/person\/16345764b7c7529e428e37fd635ed8ea"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/juliencoquet.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/juliencoquet.com\/#\/schema\/person\/16345764b7c7529e428e37fd635ed8ea","name":"julien","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/juliencoquet.com\/wp-content\/uploads\/2026\/02\/julien-coquet-expert-analytics-consultant.jpg","url":"https:\/\/juliencoquet.com\/wp-content\/uploads\/2026\/02\/julien-coquet-expert-analytics-consultant.jpg","contentUrl":"https:\/\/juliencoquet.com\/wp-content\/uploads\/2026\/02\/julien-coquet-expert-analytics-consultant.jpg","width":576,"height":576,"caption":"julien"},"logo":{"@id":"https:\/\/juliencoquet.com\/wp-content\/uploads\/2026\/02\/julien-coquet-expert-analytics-consultant.jpg"},"sameAs":["https:\/\/juliencoquet.com"]},{"@type":"Person","@id":"","url":"https:\/\/juliencoquet.com\/author\/"}]}},"_links":{"self":[{"href":"https:\/\/juliencoquet.com\/wp-json\/wp\/v2\/posts\/1742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/juliencoquet.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/juliencoquet.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/juliencoquet.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/juliencoquet.com\/wp-json\/wp\/v2\/comments?post=1742"}],"version-history":[{"count":0,"href":"https:\/\/juliencoquet.com\/wp-json\/wp\/v2\/posts\/1742\/revisions"}],"wp:attachment":[{"href":"https:\/\/juliencoquet.com\/wp-json\/wp\/v2\/media?parent=1742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/juliencoquet.com\/wp-json\/wp\/v2\/categories?post=1742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/juliencoquet.com\/wp-json\/wp\/v2\/tags?post=1742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}