2013-08-17 49 views
1

我正在嘗試使用我的移動應用程序進行一些分析。該應用程序是用Flex編寫的。我試圖根據official example有點使用Google's library for Google Analytics。我使用靜態方法創建了一個類,我從其creationComplete事件處理程序中的所有屏幕調用該方法。Flex應用程序中的Google Analytics(分析)

import com.google.analytics.GATracker; 
import com.google.analytics.AnalyticsTracker; 

import flash.display.DisplayObject; 

public class AnalyticsHelper 
{ 
    public static function trackScreenView(screen: DisplayObject, name: String): void { 
     var tracker:AnalyticsTracker = new GATracker(screen, "UA-XXXXXXXX-1", "AS3", false);   
     tracker.trackPageview("/screen/" + name); 
    } 
} 

經過一番調試,我的結果是:函數被調用。 trackPageview()被調用。根據Wireshark,一些數據會傳給Google,但由於它通過加密連接,我看不到它是什麼。但是,我的Google Analytics信息中心沒有顯示任何數據。 (是的,我知道我必須等待一天才能顯示數據,我等了兩天,但仍然沒有。)

我錯過了什麼嗎?我如何讓Google Analytics能夠使用我的Flex應用程序?

+0

我在幾個項目上使用了_gaforflash_,並且您的設置看起來很正確。有時統計數據已經停止,但後來又出現了,我想這是GA的一些滯後。我只能建議檢查GA跟蹤鍵,並且應該有_html page_和js腳本,以便GA開始跟蹤,您應該在網站上的GA設置過程中進行設置。 – fsbmain

回答

2

經過幾天的努力,我終於找到了問題所在。我遵循answer for a somewhat similar question的建議,嘗試使用網站數據跟蹤代替移動版的Google Analytics,並且運行良好。我想gaforflash庫是從2008年開始的,畢竟它仍然使用舊的Google Analytics API。

2

tracker屬性只存在於函數的範圍內,因此每次調用該函數時都會重新創建它;並可能與不同的DisplayObject傳入 - 這可能是一個問題。

試試這個:

public class AnalyticsHelper 
{ 
    private static var tracker:AnalyticsTracker; 

    public static function trackScreenView(screen:DisplayObject, name:String):void 
    { 
     //only create tracker once 
     if (!tracker) 
      tracker = new GATracker(screen, "UA-XXXXXXXX-1", "AS3", false);   
     tracker.trackPageview("/screen/" + name); 
    } 
} 

它並不真正的問題是什麼傳遞的DisplayObject - 只是,只要它是一個顯示對象(這樣的分析可以掛接到事件)。我不確定,但是您可能需要每次swf運行時都傳遞相同的DisplayObject,所以使用類似root的東西來保持它一致。

+0

顯然這不是我的問題,但無論如何,我總是重新創建跟蹤器扭曲了實時統計信息,所以我將其添加到了我的代碼中。謝謝。 – ytg

相關問題