2010-03-12 7 views
1

J'utilise une classe d'API Google Analytics en PHP créée par Doug Tan pour extraire des données Analytics à partir d'un profil spécifique.Accélération d'authentification API Google Analytics

Vérifiez l'URL ici: http://code.google.com/intl/nl/apis/analytics/docs/gdata/gdataArticlesCode.html

Lorsque vous créez une nouvelle instance de la classe, vous pouvez ajouter l'ID de profil, votre compte Google + mot de passe, un daterange et quelles que soient les dimensions et les mesures que vous voulez prendre de l'analyse .

Par exemple, je veux voir combien de personnes ont visité mon site Web de différents pays de 2009.

//make a new instance from the class 
$ga = new GoogleAnalytics($email,$password); 

//website profile example id 
$ga->setProfile('ga:4329539'); 

//date range 
$ga->setDateRange('2010-02-01','2010-03-08'); 

//array to receive data from metrics and dimensions 
$array = $ga->getReport(
     array('dimensions'=>('ga:country'), 
     'metrics'=>('ga:visits'), 
     'sort'=>'-ga:visits' 
     ) 
); 

Maintenant, vous savez comment cela fonctionne classe API, je voudrais adresse mon problème.

Vitesse. Il faut beaucoup de temps pour extraire plusieurs types de données de la base de données d'analyse, en particulier si vous construisez différents tableaux avec des mesures/dimensions différentes. Comment puis-je accélérer ce processus?

Est-il possible de stocker toutes les données possibles dans un cache afin que je puisse récupérer les données sans les charger encore et encore?

+0

Bonjour @PaulH, puis-je savoir si vous pensez que l'obtention de données de Google 1) est lente ou 2) ralentit votre site Web? Pour moi 2) est plus important et il semble que Google cache déjà les résultats, la seule question maintenant est de savoir comment contrôler ce processus de mise en cache – ericn

Répondre

2

Vous pouvez charger les données dans un cache en sachant exactement comment/où les données sont mises en cache. Vous pouvez utiliser n'importe quoi de la mise en cache par requête (qui sera plutôt inutile pour ce problème particulier) à des choses comme APC, memcached, une base de données locale ou même simplement enregistrer les résultats bruts dans des fichiers. Ceux-ci ne permettront pas de récupérer plus rapidement les données de Google.

Sur cette note, il est probable (n'ayant pas vu le code) que les requêtes à Google soient probablement exécutées séquentiellement. Il est probablement possible d'étendre la classe PHP pour autoriser la demande de plusieurs ensembles de données de Google en parallèle (par exemple avec cURL Multi).

+0

Merci, en utilisant cURL est en effet une bonne idée! Je vérifierai. – Paul