SondesPiwik » Historique » Version 4
Christophe Deseure, 11/10/2011 14:31
| 1 | 2 | Christophe Deseure | h1. Mise en place d'une sonde dans une application |
|---|---|---|---|
| 2 | 1 | Christophe Deseure | |
| 3 | 1 | Christophe Deseure | __document de travail__ |
| 4 | 1 | Christophe Deseure | |
| 5 | 1 | Christophe Deseure | Une application doit être enregistrée sur le serveur piwik comme un site. |
| 6 | 1 | Christophe Deseure | On renseigne un nom d'application et une url d'accès (ou plus). |
| 7 | 1 | Christophe Deseure | En échange, on obtient l'identifiant piwik de l'application. |
| 8 | 1 | Christophe Deseure | |
| 9 | 3 | Christophe Deseure | Il existe plusieurs moyens de remonter des statistiques côté client : |
| 10 | 3 | Christophe Deseure | - en javascript : http://piwik.org/docs/javascript-tracking/ |
| 11 | 3 | Christophe Deseure | - à l'aide d'une API PHP : http://piwik.org/docs/tracking-api/ |
| 12 | 3 | Christophe Deseure | |
| 13 | 3 | Christophe Deseure | h2. Utilisation du javascript |
| 14 | 3 | Christophe Deseure | |
| 15 | 1 | Christophe Deseure | Côté application, la sonde a besoin de 2 paramètres afin d'identifier le serveur piwik à utiliser : |
| 16 | 1 | Christophe Deseure | - son url sans le protocole "http" |
| 17 | 1 | Christophe Deseure | - l'identifiant de l'application |
| 18 | 1 | Christophe Deseure | Et, il faut pouvoir en désactiver l'utilisation. |
| 19 | 1 | Christophe Deseure | |
| 20 | 1 | Christophe Deseure | Pour une sonde simple, consistant à enregistrer tout accès à une page spécifique, il suffit d'ajouter un bloc de javascript. |
| 21 | 1 | Christophe Deseure | Le client piwik va notamment envoyer l'url de la page et son titre qui sont comptabilisés dans l'onglet "Actions". |
| 22 | 1 | Christophe Deseure | Pour une sonde donnée, la page peut varier car les paramètres fournis en GET sont présents. |
| 23 | 1 | Christophe Deseure | De plus, le titre de la page peut ne pas être représentatif. |
| 24 | 1 | Christophe Deseure | Je propose donc qu'une sonde redéfinisse ces valeurs afin d'avoir des remontées parlantes. |
| 25 | 1 | Christophe Deseure | |
| 26 | 1 | Christophe Deseure | Cela donnerait (PIWIK_URL et ID_SITE étant des variables à gérer) : |
| 27 | 1 | Christophe Deseure | |
| 28 | 1 | Christophe Deseure | <pre> |
| 29 | 3 | Christophe Deseure | <!-- Piwik --> |
| 30 | 3 | Christophe Deseure | <script type="text/javascript"> |
| 31 | 3 | Christophe Deseure | var pkBaseURL = ("https:" == document.location.protocol) ? "https://" : "http://"; |
| 32 | 3 | Christophe Deseure | pkBaseURL += PIWIK_URL; |
| 33 | 3 | Christophe Deseure | document.write(unescape("%3Cscript src=\'" + pkBaseURL + "piwik.js\' type=\'text/javascript\'%3E%3C/script%3E")); |
| 34 | 3 | Christophe Deseure | </script><script type="text/javascript"> |
| 35 | 3 | Christophe Deseure | try { |
| 36 | 3 | Christophe Deseure | var piwikTracker = Piwik.getTracker(pkBaseURL+"piwik.php",ID_SITE); |
| 37 | 3 | Christophe Deseure | piwikTracker.setDocumentTitle("..."); |
| 38 | 3 | Christophe Deseure | piwikTracker.setCustomUrl("..."); |
| 39 | 3 | Christophe Deseure | piwikTracker.trackPageView(); |
| 40 | 3 | Christophe Deseure | } catch( err ) {} |
| 41 | 3 | Christophe Deseure | </script> |
| 42 | 3 | Christophe Deseure | <!-- End Piwik Code --> |
| 43 | 1 | Christophe Deseure | </pre> |
| 44 | 1 | Christophe Deseure | |
| 45 | 1 | Christophe Deseure | Pour prendre l'exemple de la procédure adoptée dans le cahier de textes (cdt), les 2 variables sont à enregistrer dans la table "cdt_params". |
| 46 | 1 | Christophe Deseure | Si elles ne sont pas fournies ou sont vides, les sondes sont inactives. |
| 47 | 1 | Christophe Deseure | Celles-ci sont récupérées ensuite en session par le script "inc/sessions_params.php" : |
| 48 | 1 | Christophe Deseure | |
| 49 | 1 | Christophe Deseure | <pre> |
| 50 | 1 | Christophe Deseure | if(mysql_num_rows($piwik_url_db)>0) |
| 51 | 1 | Christophe Deseure | { |
| 52 | 1 | Christophe Deseure | $row_piwik_url_db = mysql_fetch_assoc($piwik_url_db); |
| 53 | 1 | Christophe Deseure | $_SESSION['piwik_url'] = trim($row_piwik_url_db['param_val']); |
| 54 | 1 | Christophe Deseure | if(!empty($_SESSION['piwik_url']) && substr($_SESSION['piwik_url'], -1)!="/") $_SESSION['piwik_url'] .= "/"; //précaution |
| 55 | 1 | Christophe Deseure | } |
| 56 | 1 | Christophe Deseure | else $_SESSION['piwik_url'] = ''; |
| 57 | 1 | Christophe Deseure | if(mysql_num_rows($piwik_idsite_db)>0) |
| 58 | 1 | Christophe Deseure | { |
| 59 | 1 | Christophe Deseure | $row_piwik_idsite_db = mysql_fetch_assoc($piwik_idsite_db); |
| 60 | 1 | Christophe Deseure | $_SESSION['piwik_idsite'] = intval($row_piwik_idsite_db['param_val']); |
| 61 | 1 | Christophe Deseure | } |
| 62 | 1 | Christophe Deseure | else $_SESSION['piwik_idsite'] = 0; |
| 63 | 1 | Christophe Deseure | </pre> |
| 64 | 1 | Christophe Deseure | |
| 65 | 1 | Christophe Deseure | Puis, la sonde ressemble à ceci dans le cas d'une consultation : |
| 66 | 1 | Christophe Deseure | |
| 67 | 1 | Christophe Deseure | <pre> |
| 68 | 1 | Christophe Deseure | if(!empty($_SESSION['piwik_url']) && !empty($_SESSION['piwik_idsite'])) //sonde active dès que les 2 paramètres sont valides |
| 69 | 1 | Christophe Deseure | { |
| 70 | 1 | Christophe Deseure | echo ' |
| 71 | 1 | Christophe Deseure | <!-- Piwik --> |
| 72 | 1 | Christophe Deseure | <script type="text/javascript"> |
| 73 | 1 | Christophe Deseure | var pkBaseURL = ("https:" == document.location.protocol) ? "https://" : "http://"; |
| 74 | 1 | Christophe Deseure | pkBaseURL += "'.$_SESSION['piwik_url'].'"; |
| 75 | 1 | Christophe Deseure | document.write(unescape("%3Cscript src=\'" + pkBaseURL + "piwik.js\' type=\'text/javascript\'%3E%3C/script%3E")); |
| 76 | 1 | Christophe Deseure | </script><script type="text/javascript"> |
| 77 | 1 | Christophe Deseure | try { |
| 78 | 1 | Christophe Deseure | var piwikTracker = Piwik.getTracker(pkBaseURL+"piwik.php",'.$_SESSION['piwik_idsite'].'); |
| 79 | 3 | Christophe Deseure | piwikTracker.setDocumentTitle("consultation/'.$row_RsClasse['nom_classe'].'"); |
| 80 | 1 | Christophe Deseure | piwikTracker.setCustomUrl("cdt/consulter.php"); |
| 81 | 1 | Christophe Deseure | piwikTracker.trackPageView(); |
| 82 | 1 | Christophe Deseure | } catch( err ) {} |
| 83 | 1 | Christophe Deseure | </script> |
| 84 | 1 | Christophe Deseure | <!-- End Piwik Code -->'; |
| 85 | 1 | Christophe Deseure | } |
| 86 | 3 | Christophe Deseure | </pre> |
| 87 | 3 | Christophe Deseure | |
| 88 | 3 | Christophe Deseure | L'utilisation du "/" dans le nom du titre ou de la page permet une catégorisation dans piwik et l'affichage d'une arborescence. |
| 89 | 3 | Christophe Deseure | |
| 90 | 4 | Christophe Deseure | Pour aller plus loin, on peut enregistrer aussi l'utilisation de liens externes et le chargement de fichiers mais dans ce cas, il faut veiller à priori à ce que le code javascript s'exécute après le chargement de la page. |
| 91 | 4 | Christophe Deseure | Il faut alors ajouter ceci : |
| 92 | 4 | Christophe Deseure | |
| 93 | 3 | Christophe Deseure | <pre> |
| 94 | 3 | Christophe Deseure | piwikTracker.enableLinkTracking(); |
| 95 | 1 | Christophe Deseure | </pre> |