7


2

dispatch()に関するAndroid向けGoogleアナリティクスの問題

Android向けGoogleアナリティクスの使用中に、使用する場合

tracker.start(" UA-YOUR-ACCOUNT-HERE "、20、this)

その後、20秒ごとに、手動で実行しなくてもイベントが自動的にディスパッチされます

tracker.dispatch()

私の質問は、ユーザーが20秒以内にアプリケーションを終了するとどうなりますか? 発送されますか?

または、ユーザーが終了しようとしているときにすべての保留中のイベントを手動でディスパッチする必要がありますか?

4 Answer


6


何もする必要はありません。イベントは保存され、アプリで発生する次のディスパッチと一緒にまとめられます(おそらくユーザーが次にアプリケーションを起動するときに)。

Analyticsサーバーは、イベントが実際に発生したタイミングではなく、データを受信したタイミングに基づいてヒットにタイムスタンプを付けることに注意してください。したがって、ユーザーが1日に数分間アプリを使用すると、10日に発生した訪問が11日など

更新:tracker.stop()が呼び出されたときの動作を明確にするため、その時点で保留中のイベントを*ディスパッチ*しません。 これらは内部のsqliteデータベースにとどまり、アプリケーションの次の実行でディスパッチが呼び出されたときに最初に外に出ます。 トラッカーが停止しても起動されないのは、破棄されるアクティビティに時間が追加され、終了時にアプリの「スナッピー」が少なくなるためです。 これは、onDestroyメソッドでディスパッチする前に慎重に検討する必要がある理由でもあります。


4


tracker.stop()はデータをディスパッチしません。 私のアドバイスは、tracker.dispatch()をonDestroy()メソッドに入れることです。

  @Override
  protected void onDestroy() {
    super.onDestroy();
    tracker.dispatch();
    // Stop the tracker when it is no longer needed.
    tracker.stop();
  }

出典:http://www.google.com/support/forum/p/Google%20Analytics/thread?tid=70a919f5b097f5dc&hl=en


2


次の方法を使用して、アプリが破棄されたときにトラッカーを停止することをお勧めします。

  @Override
  protected void onDestroy() {
    super.onDestroy();
    // Stop the tracker when it is no longer needed.
    tracker.stop();
  }

これは、待機中のイベントをディスパッチすると仮定します。


1


このコードはあなたを助けます…​..

public class TestActivity extends Activity {

   GoogleAnalyticsTracker tracker;


      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        tracker = GoogleAnalyticsTracker.getInstance();

        // Start the tracker in manual dispatch mode...
        tracker.startNewSession("UA-33332745-1", this);

        setContentView(R.layout.main);
        Button createEventButton = (Button)findViewById(R.id.NewEventButton);
        createEventButton.setOnClickListener(new OnClickListener() {

          public void onClick(View v) {
            tracker.trackEvent(
                "Clicks",  // Category
                "Button",  // Action
                "clicked", // Label
                77);       // Value
          }
        });

        Button createPageButton = (Button)findViewById(R.id.NewPageButton);
        createPageButton.setOnClickListener(new OnClickListener() {

          public void onClick(View v) {
            // Add a Custom Variable to this pageview, with name of "Medium" and value "MobileApp"
            tracker.setCustomVar(1, "Medium", "Mobile App");
            tracker.trackPageView("/testApplicationHomeScreen");
          }
        });

        Button quitButton = (Button)findViewById(R.id.QuitButton);
        quitButton.setOnClickListener(new OnClickListener() {

          public void onClick(View v) {
            finish();
          }
        });

        Button dispatchButton = (Button)findViewById(R.id.DispatchButton);
        dispatchButton.setOnClickListener(new OnClickListener() {

          public void onClick(View v) {
            tracker.dispatch();
          }
        });
      }


      protected void onDestroy() {
        super.onDestroy();
        // Stop the tracker when it is no longer needed.
        tracker.stopSession();
      }
    }