GAFF : Premiers pas en ActionScript

Je vous ai déjà présenté le projet GAFF (Google Analytics for Flex/Flash) et expliqué comment créer un compte Google Analytics.
Nous allons maintenant utiliser le GATC depuis Flex...
1. Le GATC plus en détails
Pour rappel : le GATC (Google Analytics Tracker Code) est l'objet JavaScript qui permet de communiquer avec les serveurs de Google Analytics. Il est instancié dans le script que vous avez copié-collé dans vos pages à analyser :
![]()
- Dans la première ligne du script, on récupère une instance du GATC associé au compte UA-xxxxxxx-x.
- La seconde ligne "initialise l'objet" (durant cette phase il va rajouter dynamiquement à vos liens externes HTML une fonction associée à l'évènement onclick... on reviendra là-dessus dans un prochain article).
- La troisième et dernière ligne, va servir à comptabiliser la visite de la page grâce à la méthode _trackPageView.
C'est cette dernière ligne qui nous intéresse tout particulièrement. En allant consulter la documentation du PageTracker :

On comprends que cette méthode permet de comptabiliser la visite d'une page. Et que le paramètre opt_pageURL étant optionnel, on peut soit :
- Le laisser vide et l'url de la page visitée sera définie par le script.
- Ou envoyer une adresse personnalisée. C'est ceci qui va nous permettre de comptabiliser des pages "abstraites" dans notre application Flex.
2. Utiliser la classe AS3 ExternalInterface
Pour communiquer avec des méthodes et objets JavaScript depuis ActionScript, la meilleure solution est d'utiliser la classe ExternalInterface.
Par exemple, nous pouvons comptabiliser la visite d'une page comme ceci :
-
var pageURL:String = "/GAFFDemo01/category2/page1";
-
ExternalInterface.call("pageTracker._trackPageview",pageURL);
3. La librairie AS3 GAFF
Pour simplifier ces communications, j'ai donc créé une classe AS3 PageTracker (doc de PageTracker.as). Au final, elle reprendra toutes les méthodes JavaScript du GATC utilisables en ActionScript.
Voici un nouvel exemple de code pour tracker une visite de page :
-
var pageTracker:PageTracker = PageTracker.getPageTracker();
-
var pageURL:String = "/GAFFDemo01/category2/page1";
-
pageTracker._trackPageview(pageURL);
J'essaierai de coller au maximum avec la syntaxe JavaScript. Tout en ajoutant quelques fonctionnalités spécifiques pour l'AS3 comme :
- La méthode statique getPageTracker elle permets de gérer plusieurs instances de PageTracker JavaScript sur une même page (c'est au final un semblant de multiton... il faut que je révise mes patterns) . Il suffit d'indiquer le nom de la variable JavaScript. Celui par défaut donné durant la création d'un compte ou d'un profil est "pageTracker", si vous ne renseignez pas de nom c'est celui ci qui sera utilisé.
4. Ressources
Vous trouverez sur la page Google Code de GAFF plusieurs fichiers comme les sources complètes du projet et une librairie SWC. J'ai aussi créé une documentation au format asdoc pour vous aider :
5. A suivre...
On se retrouve rapidement pour la présentation d'une démonstration d'application Flex.

Pretty nice site, wants to see much more on it!