Flex移动应用程序中的谷歌分析



我正在尝试用我的移动应用程序进行一些分析。该应用程序是用Flex编写的。我正在尝试使用谷歌的图书馆,谷歌分析有点像官方的例子。我创建了一个带有静态方法的类,我从它们的creationComplete事件处理程序中的所有屏幕调用该方法。

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 Analytics与我的Flex应用程序协同工作?

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并不重要,只要它是DisplayObject(这样分析就可以连接到事件中)。我不确定,但每次运行swf时,您可能需要传递相同的DisplayObject,所以使用root之类的东西来保持它的一致性。

经过几天的尝试,我终于发现了问题所在。对于一个有点类似的问题,我听从了答案的建议,并尝试了谷歌分析(Google Analytics)的网站数据跟踪,而不是移动数据跟踪,结果奏效了。我想,由于gaforflash库是2008年的,它仍然使用旧的谷歌分析API。

最新更新