Sauvegarder les données de Google Analytics dans Piwik

Mars 2013

Google Analytics est un service de mesure d'audience de site internet (web analytics) proposé gratuitement par Google.

Ce service est vraiment d'excellente qualité et fait partie des meilleurs outils du marché des solutions web analytics (avec d'autres, payantes, comme Adobe Omniture). Le seul souci, c'est que les données collectées sont stockées sur les serveurs de Google, et les utilisateurs de Google Analytics ne peuvent que consulter ces données via l'interface utilisateur, sur le site officiel. En plus Google ne s'engage pas à conserver les données de façon indéfinie, ils s'engagent à conserver les données uniquement pour les 25 derniers mois :

Google Analytics maintains at least 25 months of historical data for each site it tracks.
Source: http://support.google.com/analytics/bin/answer.py?hl=en&answer=1010052

C'est entre autres pour cette raison qu'un projet a vu le jour : Piwik (qui s'appelait phpMyVisits auparavant). Piwik est une application écrite en PHP/MySQL dont l'objectif est de proposer une alternative open source à Google Analytics. En gros, il implémente des fonctionnalités similaires.

En pratique, Piwik est beaucoup moins élaboré que Google Analytics, mais il repose sur une base solide (structure de la base de données, partitionnement, archivage) et sur un code de qualité avec une API bien écrite et bien documentée. Le projet Piwik a même été récompensé en août 2009 aux InfoWorld's Bossie Awards.

Bref, tout ça pour dire qu'il existe une script écrit en Python qui permet d'importer les données de Google Analtyics (en utilisant la Core Reporting API) dans Piwik : Google2Piwik.

Malheureusement, ce script n'utilise pas la toute dernière version de l'API (Core Reporting v3), il utilise la v2 qui est basée sur GData (maintenant obsolète et déprécié). Mais ça n'est pas si gênant, ça ne limite pas ses possibilités pour le moment.

J'ai utilisé ce script pour récupérer plusieurs années de données depuis Google Analytics. Dans l'ensemble ça marche plutôt bien au niveau des informations principales, comme :

  • les pages vues
  • les visites
  • le nombre de pages vues par visite
  • le taux de rebond

Par contre certaines données ne peuvent pas être importées, car l'API de Google ne fournit pas assez d'information pour ça. Il faut bien comprendre que normalement, la Core Reporting est une API de consultation des données, et non d'exportation.

Les développeurs de Google2Piwik ont du recourir à des "bidouilles" pour reconstruire ces informations, ainsi les visites sont générées artificiellement de manière à obtenir les mêmes moyennes que sur Google Analytics. Mais en dehors de ces moyennes, les données importées ne sont pas fiables. La raison principale est que dans les données accessibles via l'API, il n'y a pas de champ qui permette de faire le lien entre les visites et les pages vues (comme une adresse IP par exemple), du coup Google2Piwik génère de fausses visites et pages vues de manière à obtenir les valeurs "globales" (moyenne journalière).

Tout ceci est expliqué sur le site officiel :

Known NOT trustworthy statistics are:

  • Visitors -> Visitor Log statistics are not reliable.
    This one is generated semi-randomly to supply information about Actions (Page views, Bouncy Rate etc.)
  • Sometimes page `Bouncy Rate` and `Average time on page` may be slightly off to Google Analytics data
  • Providers are unknown (because Google Analytics does not supply this information)
  • Actions -> Unique Page views
  • Visitors -> Settings -> Plugins Google provides only information just about Flash Player and Java enabled.

Si vous voulez en savoir plus c'est par ici : changer l'ordre des colonnes excel.

Utiliser Google2Piwik sur Windows

Normalement le script est plutôt conçu pour être exécuté sur un environnement UNIX. Mais on peut aussi l'utiliser sur Windows.

Pour cela, il faut d'abord installer plusieurs choses :

Correction de bugs

Si vous utilisez google2piwik, il se peut que vous rencontriez quelques bugs, comme cette erreur : IndexError: list index out of range, qui se produit lorsque l'API retourne plus de 10000 résultats.

J'ai reussi à corriger ce bug en modifiant le code source du script python :

def create_action_manager(fetcher, start, end):
	action_manager = ActionManager()
	VERBOSE("Fetching paths and titles of pages.")
	##	fetcher.FeedFetchSpecial("ga:pagePath,ga:pageTitle", "ga:pageviews", start, end)
	##	for act in fetcher.FeedToDict():
	##		action_manager.add_action(act["ga:pagePath"], act["ga:pageTitle"])

	# BEGIN 2012-12-26 - fix erreur 10000+
	# Nombre de résultats retournés par l'API
	max_results_count = 10000

	# Nombre de résultats retournés par la dernière requête.
	# Si il est égal à max_results_count, il faut envoyer une autre requête avec un offset pour éventuellement récupérer la "page" suivante.
	last_result_len = max_results_count

	# Boucle effectuant autant de requêtes que nécessaire pour récupérer tous les résultats de la période
	while_i = 0
	while last_result_len == max_results_count:
		start_index = (while_i * max_results_count) + 1 # Calcul offset (par défaut : 1, à la première itération, comme dit la doc)

		fetcher.FeedFetchSpecial("ga:pagePath,ga:pageTitle", "ga:pageviews", start, end, start_index)
		for act in fetcher.FeedToDict():
			action_manager.add_action(act["ga:pagePath"], act["ga:pageTitle"])

		last_result_len = len(fetcher.feed.entry) # Mise à jour nombre de résultats de la dernière requête

		while_i += 1
		VERBOSE("Wave " + str(while_i) + " done")

	# Test reset feed (pr voir si ça pose problème)
	fetcher.feed = None
	# END

Découvrez ce tutoriel photoshop : fond d'écran écolo à lire tout de suite !

0 commentaire
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré