APIs pour solutions Analytics: une introduction

Vous avez besoin d'utiliser les données de votre solution de web analytics mais vous n'avez pas le temps (ou l'envie) d'aller fouiller dans l'interface de consultation des rapports ? Vous voudriez intégrer ces données directement dans votre outil de travail de tous les jours (Excel, PowerPoint, etc.) ?

Nous allons parler dans ce billet de l'utilisation d'APIs pour extraire les données de votre solution de mesure préférée et les utiliser en exploitation.

Le constat: pas de temps et pas d'intérêt

Votre entreprise utilise une solution de web analytics. Gratuite, payante, hébergée par votre DSI ou disponible en mode SaaS - peu importe en fin de compte. Le plus important est l'utilisation qui est faite de l'interface de reporting pour accéder aux données et en tirer la substantifique moëlle afin de prendre des décisions et sauver le monde (c'est un but louable en tous cas).
Cette interface a beau être la plus ergonomique, 'user-friendly', AJAX, 2.0, [insérez votre techno qui buzze ici], le constat reste le même: les décideurs ne consultent pas cette interface.

Ces décideurs ont besoin de chiffres. Mieux, d'indicateurs clé de performance. Ils veulent ces chiffres dans un tableur Excel, dans PowerPoint, voire en présentation punchy/visuel/dynamique/olé-olé [déjà entendu en réunion client] sur écran géant en comité de direction. Difficile donc de les faire manipuler une console Google Analytics, Webtrends, Omniture etc.

Que faire?

Heureusement, la plupart des éditeurs de solution ont prévu des APIs (Application Programming Interface), des passerelles applicatives qui permettent d'"attaquer" les données (je me refuse à dire "la data") directement auprès de la base de données du service analytics désiré. Ces APIs permettent d'envoyer des requêtes de données et de récupérer des flux de données qui seront exploitables ailleurs (Excel, PowerPoint, Tableau, QlikView, autres applications DSI).
Dans ce billet qui va vite devenir technique, nous allons explorer les différents types d'API, comment s'y connecter ainsi que des exemples d'intégration avec Google Analytics et Webtrends.

Webservice, mon amour

Petit rappel: une API est généralement basée sur un webservice, c'est à dire un service accessible grâce à l'échange de données via des URLs ou des flux XML. Pour faire simple, on peut classifier ces webservices en deux familles: SOAP et REST.

- SOAP : on échange des flux XML qui décrivent la requête de données et les données reçues

Exemple:

<demande>
   <login>abc1234</login>
   <password>passepasse</password>
   <compteAnalytics>MonCompteStatsWeb</compteAnalytics>
   <rapportDemande>
           <rapport
           id="sourcesTrafic"
           periodeDebut="01/03/2012"
           periodeFin="31/03/2012"
   />
   </rapportDemande>
</demande>

- REST : on envoie une URL contenant la requête de données sous forme de paramètres d'URL

Exemple:

http://abc1234:passepasse@api.monanalytics.com/
?compte=MonCompteStatsWeb
&rapport=sourcesTrafic
&periodeDebut=20120301
&periodeFin=20120331

Dans les milieux "autorisés", on s'accorde à dire que REST est nettement plus souple que SOAP, c'est pourquoi les exemples que nous verrons par la suite utilisent REST.

A noter que pour des raisons de sécurité, on ne passe plus d'information de login/mot de passe en clair dans l'URL; on les passe désormais par en-têtes HTTP ou par "token".

De quoi ai-je besoin pour me servir d'une API analytics?

Pour utiliser une API, vous avez généralement besoin d'un compte utilisateur de la solution analytics avec suffisamment de privilèges pour utiliser l'API. Dans certains cas, vous devez vous inscrire au programme API de l'éditeur en question. De plus, il est possible que l'utilisation de l'API ne soit pas incluse dans votre contrat (pour les solutions payantes) - renseignez-vous auprès de votre éditeur.

Enfin, si l'API est inclus dans votre contrat, vous avez peut-être un nombre limité de requêtes mensuelles à l'API. Si c'est le cas, attention à ne pas épuiser votre quota!

OK et maintenant?

Suivant le type d'API, vous pourrez soit faire appel à un rapport existant soit créer le vôtre "from scratch"
Pour les rapports existants, votre interface de reporting contiendra dans certains cas un identifiant pour chaque rapport que vous pourrez utiliser dans vos requêtes REST.

Une fois la requête de données aboutie, vous récupérerez un flux XML, CSV, HTML, JSON ou autre suivant la solution utilisée. Félicitations, vous pouvez désormais utiliser ce fichier pour alimenter Excel, PowerPoint, Tableau, QlikView ou toute application ayant besoin de vos données analytics autrement que par l'interface classique.
Vous allez pouvoir utiliser la requête REST dans un navigateur evidemment mais l'utilisation la plus utile des requêtes REST est via un langage de programmation comme Java, PHP, Perl, ASP.Net et consorts. Ceci permettra une approche programmatique et industrialisée des appels à l'API pour de l'extraction récurrente de données par exemple.

Je n'y arrive pas, j'ai besoin d'aide!

Comme tout le monde n'a pas un Bac+5 en informatique, certains éditeurs ont mis à disposition une interface de construction des requêtes. C'est le cas de Webtrends avec Generator et Google avec Data Feed Explorer qui vous permettent de simuler la sélection de rapports, de dimensions, de métriques et autres paramètres Ces interfaces aident vos développeurs en proposant des données de test et surtout l'URL REST qui vous permettra de récupérer les données.

Generator de Webtrends

Google Analytics Data Feed Explorer

Exemple avec l'API Webtrends

  • Dans l'administration Webtrends, repérez l'identifiant de votre rapport ou utilisez Generator
  • Dans votre langage de script, définissez vos identifiants: votre login est une concaténation de compte et login
    Exemple: si mon compte Webtrends est "MonCompteWT" et que mon login est normalement "jcoquet", mon login pour l'API sera "MonCompteWTjcoquet"
  • Construisez votre URL: https://ws.webtrends.com/v2/ReportService/profiles/YAZPzbpQyU6/reports/cotI87vpBs6/?totals=none&period=current_day-1&format=csv&suppress_error_codes=true
    Vous aurez noté les identifiants de profils et de rapports ainsi que la date et le format (CSV). Pour la liste des paramètres, reportez vous à la documentation de l'API Webtrends dans Generator
  • Exécutez la requête avec une méthode d'extraction par URL comme cURL (ou autre)
  • Récupérez un fichier ou un flux XML

Dans Excel (et certains tableurs libres), cette manipulation peut être effectuée sans plug-in grâce aux fonctions natives. Dans le cas d'Excel, en utilisant la fonction Import Données Web (Web Query) vous récupérerez directement un tableau de données.

Dans l'onglet Données, choisissez Donnees du Web:

Dans le dialogue suivant, saisissez votre URL:

Validez et saisissez vos identifiants Webtrends:

Excel vous propose alors un tableau de données correspondant à la requête REST:

Valider et les données seront insérées dans Excel:

Un peu de macro, d'espiéglerie et vous pourrez automatiser cette extraction!

Bonne exploitation de données web analytics sous Excel!

Des questions? Contactez-nous!

Pas de commentaire.

Ajouter un commentaire