1

我正在尝试使用我的移动应用程序进行一些分析。该应用程序是用 Flex 编写的。我正在尝试根据官方示例将Google 的库用于 Google Analytics。我创建了一个带有静态方法的类,我从它们的事件处理程序中的所有屏幕调用该方法。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(分析)仪表板上没有显示任何数据。(是的,我知道我必须等待一天才能出现数据。我等了。两天后它仍然没有出现。)

我错过了什么吗?如何让 Google Analytics 与我的 Flex 应用程序一起工作?

4

2 回答 2

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 并不重要——只要它是一个 DisplayObject(因此分析可以挂钩到事件中)。我不确定,但您可能需要在每次 swf 运行时传递相同的 DisplayObject,因此请使用 root 之类的东西来保持一致。

于 2013-08-18T15:57:42.220 回答
2

经过几天的尝试,我终于找到了问题所在。对于一个有点类似的问题,我遵循了答案的建议,并尝试了使用网站数据跟踪而不是移动设备的谷歌分析,它奏效了。我猜由于 gaforflash 库是从 2008 年开始的,它毕竟仍然使用旧的 Google Analytics API。

于 2013-08-21T06:38:54.070 回答