Google Analytics para Flex

Para aqueles como eu, amantes dos produtos Google, e querem utilizar o Google Analytics em todos os sistemas, segue aqui uma forma fácil de integra-lo com o Flex.

O Exemplo abaixo, comentado possui um TabNavigator que possui sua navegaçaõ integrada com uma conta minha do Google Analytics.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    creationComplete="init()">
  <mx:Script>
    <![CDATA[
      import com.google.analytics.components.FlexTracker;
      /**
       * váriavel global para o Analytics
       */
      private var tracker:FlexTracker
      /**
       * Executa quando a aplicação é carregado
       *
       * Nesta função criamos uma nova instancia,
       * passamos as configurações
       * e chamamos o registro inicial
       */
      private function init():void
      {
        // Nova instancia do Analytics para o Flex
        tracker=new FlexTracker()
        // passando a conta que você deve ter criado
        // para o prjeto
        tracker.account='UA-4869081-3'
        // Define que o modo é para AS3
        tracker.mode="AS3"
        /*
        * Visualizar o debug no projeto,
        * para saber se esta funcionando
        *
        * Em projeto em produção, definir
        * tracker.visualDebug=false
        */
        tracker.visualDebug=true

        // Registra o acesso inicial
        tabnavigatorChange();
      }
      /**
       * Executa quando uma aba é alterada
       *
       * Neste método é chamado quando iniciamos a aplicação
       * e quando a alteramos entre as abas.
       */
      private function tabnavigatorChange():void
      {
        /*
         * O método trackPageview recebe uma String contendo a url acessada
         * Esta url deve começar com "/" e seguido do endereço a ser registrado
         *
         * Neste caso estou enviando o valor do label da aba selecionada,
         * substituindo o espaço por underline
         */
        var itemView:String='/' + tabnavigator1.selectedChild.label.replace( ' ', '_' )
        tracker.trackPageview( itemView )
      }
    ]]>
  </mx:Script>

  <mx:TabNavigator id="tabnavigator1"
           x="31" y="43" width="380" height="423"
           change="tabnavigatorChange()">
    <mx:HBox label="Aba 1" width="100%" height="100%"
         horizontalAlign="center">
      <mx:Text text="Esta é a aba 1."/>
    </mx:HBox>
    <mx:HBox label="Aba 2" width="100%" height="100%"
         horizontalAlign="center">
      <mx:Text text="Esta é a aba 2."/>
    </mx:HBox>
    <mx:HBox label="Aba 3" width="100%" height="100%"
         horizontalAlign="center">
      <mx:Text text="Esta é a aba 3."/>
    </mx:HBox>
    <mx:HBox label="Aba 4" width="100%" height="100%"
         horizontalAlign="center">
      <mx:Text text="Esta é a aba 4."/>
    </mx:HBox>
  </mx:TabNavigator>
</mx:Application>

Veja o exemplo funcionando abaixo. Veja que ele possui diversos itens que foram adicionados devido a termos definido tracker.visualDebug=true.

Código fonte disponível aqui.

Fique por dentro de nossas novidades, ideias e atualizações