5

私は自分の Android アプリケーションにフラリー分析を統合したいと思っています。とてもシンプルに見えます。しかし、私は突風とそれがどのように機能するかについてよく知りません。

コードを追加する必要があります:

public void onStart()
{
super.onStart();
FlurryAgent.onStartSession(sample, “APIXXXXXXXXXXXX”);

}

すべての活動で?

私のアプリケーションは多くのアクティビティを使用していますが、どのアクティビティが使用されているかを追跡することはあまり気にせず、インストール数、セッション、およびセッションの長さだけを追跡します。しかし、スタートアップ アクティビティにのみコードが追加されている場合、セッションの長さは利用できますか?

必要な情報のほとんどはすでに Play ストアで入手できることはわかっていますが、これを試して、さまざまなプラットフォームでのアプリケーションの概要を把握したいと考えています。

4

2 に答える 2

16

ここに素晴らしい答えがあります: https://stackoverflow.com/a/8062568/1635817

「BaseActivity」を作成し、すべてのアクティビティにそれを拡張するように指示して、すべてのアクティビティ クラスでこれらの行をコピー/貼り付けする必要がないようにすることをお勧めします。

このようなもの :

public class BaseActivity extends Activity
{
    public void onStart()
    {
       super.onStart();
       FlurryAgent.onStartSession(this, "YOUR_KEY");
       // your code
    }

    public void onStop()
    {
       super.onStop();
       FlurryAgent.onEndSession(this);
       // your code
    }
}

@conor コメントへの応答:

Flurryのドキュメントから

onStartSession(Context, String) を呼び出したが onEndSession(Context) を呼び出していない Context がある限り、セッションは継続されます。また、最後の Context が onEndSession を呼び出してから 10 秒以内 (デフォルトのセッション タイムアウト時間) に、新しい Context が onStartSession(Context, String) を呼び出した場合、新しいセッションが作成される代わりに、セッションが再開されます。セッションの長さ、使用頻度、イベント、およびエラーは、同じセッションの一部として引き続き追跡されます。これにより、ユーザーがアプリケーション内で 1 つのアクティビティから別のアクティビティに移行するときに、アクティビティごとに個別のセッションが追跡されるのではなく、多くのアクティビティにまたがる単一のセッションが存在することが保証されます。

于 2012-09-06T20:21:40.867 に答える
4

florianmski からの回答は理にかなっていますが、アプリケーションで FragmentActivity、TabActivity、ListActivity などのさまざまな種類のアクティビティを使用する必要がある場合、いくつかの問題があります。この場合、単一の BaseActivity からすべてのアクティビティを拡張することはできません。個人的には、各アクティビティの onStart メソッドと onStop メソッドに onStartSession と onEndSession の呼び出しを配置することを好みますが、それらをいくつかのクラスにラップする前に、たとえば次のようにします。

public class Analytics {
    public static void startSession(Context context) {
        FlurryAgent.onStartSession(context, Config.FLURRY_KEY);
        // here could be some other analytics calls (google analytics, etc)
    }
    public static void stopSession(Context context) {
        FlurryAgent.onEndSession(context);
        // other analytics calls
    }
}

各アクティビティ内:

public void onStart() {
    super.onStart();
    Analytics.startSession(this);
}

public void onStop() {
    super.onStop()
    Analytics.stopSession(this);
}
于 2014-05-29T08:52:01.020 に答える