1

モバイルアプリケーションで分析をしようとしています。アプリケーションは Flex で記述されています。公式の例に従って、Google Analytics に Google のライブラリを使用しようとしています。イベント ハンドラー内のすべての画面から呼び出す静的メソッドを持つクラスを作成しました。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 に送信されますが、暗号化された接続を経由するため、それが何であるかはわかりません。しかし、Google アナリティクスのダッシュボードにデータが表示されません。(はい、データが表示されるまで 1 日待たなければならないことはわかっています。待ったのですが、2 日経ってもまだ表示されません。)

何か不足していますか?Flex アプリケーションで Google Analytics を動作させるにはどうすればよいですか?

4

2 に答える 2

2

数日間試した後、ようやく問題が何であるかがわかりました。やや似た質問に対する回答のアドバイスに従い、モバイルの代わりにウェブサイトのデータ追跡を使用して Google Analytics を試したところ、うまくいきました。gaforflash ライブラリは 2008 年のものなので、やはり古い Google Analytics API を使用していると思います。

于 2013-08-21T06:38:54.070 に答える
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 に答える