如何在安卓应用中实现谷歌分析?[英] How to implement Google Analytics in android application?

本文是小编为大家收集整理的关于如何在安卓应用中实现谷歌分析?的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。

问题描述

我想在Android中为我的示例应用程序实现Google Analytics(分析).如何查看服务器中的数据或分析更改以及如何将自定义变量发送到服务器端.之后我该怎么办?

public class TestActivity extends Activity {

  GoogleAnalyticsTracker tracker;

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

    tracker = GoogleAnalyticsTracker.getInstance();

    // Start the tracker in manual dispatch mode...
    tracker.startNewSession("UA-34709489-1", this);
    tracker.trackPageView("/HomeScreen"); 
    // ...alternatively, the tracker can be started with a dispatch interval (in seconds).
    //tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", 20, this);

    setContentView(R.layout.main);
    Button createEventButton = (Button)findViewById(R.id.NewEventButton);
    createEventButton.setOnClickListener(new OnClickListener() {
      @Override
      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() {
      @Override
      public void onClick(View v) {
        // Add a Custom Variable to this pageview, with name of "Medium" and value "MobileApp"
        tracker.setCustomVar(1, "Navigation Type", "Button click",2);
        tracker.trackPageView("/testApplicationHomeScreen");
      }
    });

    Button quitButton = (Button)findViewById(R.id.QuitButton);
    quitButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        finish();
      }
    });

    Button dispatchButton = (Button)findViewById(R.id.DispatchButton);
    dispatchButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Manually start a dispatch, not needed if the tracker was started with a dispatch
        // interval.
        tracker.dispatch();
      }
    });
  }

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

推荐答案

请参考以下内容: google for Android

详细信息,除了包括上述链接的分析罐外,您还需要使用以下代码:

import android.content.Context;
import com.google.android.apps.analytics.GoogleAnalyticsTracker;

/**
 * @description Google analytics This class is used to create Google Analytics
 *              tracker instance. This will track actions performed in the
 *              application.
 */
 public final class GoogleAnalytics {

private static GoogleAnalyticsTracker tracker;
private static GoogleAnalytics googleAnalytics = null;
private final static int VALUE = -1;
private final static String CATEGORY = "Application Name";

/**
 * 
 * @param context
 * @return
 */
public static GoogleAnalytics getGoogleAnalyticsInstance(Context context) {
    if (googleAnalytics == null) {
        googleAnalytics = new GoogleAnalytics(context);
        tracker = GoogleAnalyticsTracker.getInstance();
        tracker.startNewSession(--enter your reg number here--, 10, context);
    }
    return googleAnalytics;

}

private GoogleAnalytics(Context context) {
}

/**
 * Stop current session
 */
public void stopSession() {
    tracker.stopSession();
    googleAnalytics = null;
}

/**
 * Tracks Event of actions performed
 * 
 * @param action
 * @param label
 */
public void trackEvent(String action, String label) {
    tracker.trackEvent(CATEGORY, // Category
            action, // Action
            label, // Label
            VALUE);
}
   }

现在您需要跟踪事件的任何地方只需致电:

GoogleAnalytics.getGoogleAnalyticsInstance(this).trackEvent("Event Name", "Event Desc");

要获取您的申请注册号,请参阅以下内容: 注册Google Analytics(分析)

当您想要一个会话结束时,还需要记录以下内容:

GoogleAnalytics.getGoogleAnalyticsInstance(this).stopSession();

本文地址:https://www.itbaoku.cn/post/102307.html

问题描述

I want to implement Google Analytics for my sample app in Android. How can I view the data or analytic changes in server & how can I send the custom variables to server side. What should I do after that?

public class TestActivity extends Activity {

  GoogleAnalyticsTracker tracker;

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

    tracker = GoogleAnalyticsTracker.getInstance();

    // Start the tracker in manual dispatch mode...
    tracker.startNewSession("UA-34709489-1", this);
    tracker.trackPageView("/HomeScreen"); 
    // ...alternatively, the tracker can be started with a dispatch interval (in seconds).
    //tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", 20, this);

    setContentView(R.layout.main);
    Button createEventButton = (Button)findViewById(R.id.NewEventButton);
    createEventButton.setOnClickListener(new OnClickListener() {
      @Override
      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() {
      @Override
      public void onClick(View v) {
        // Add a Custom Variable to this pageview, with name of "Medium" and value "MobileApp"
        tracker.setCustomVar(1, "Navigation Type", "Button click",2);
        tracker.trackPageView("/testApplicationHomeScreen");
      }
    });

    Button quitButton = (Button)findViewById(R.id.QuitButton);
    quitButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        finish();
      }
    });

    Button dispatchButton = (Button)findViewById(R.id.DispatchButton);
    dispatchButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Manually start a dispatch, not needed if the tracker was started with a dispatch
        // interval.
        tracker.dispatch();
      }
    });
  }

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

推荐答案

Refer this: Google Analytics For Android

In details, apart from including the analytic jar from the above link, you need to use the following code:

import android.content.Context;
import com.google.android.apps.analytics.GoogleAnalyticsTracker;

/**
 * @description Google analytics This class is used to create Google Analytics
 *              tracker instance. This will track actions performed in the
 *              application.
 */
 public final class GoogleAnalytics {

private static GoogleAnalyticsTracker tracker;
private static GoogleAnalytics googleAnalytics = null;
private final static int VALUE = -1;
private final static String CATEGORY = "Application Name";

/**
 * 
 * @param context
 * @return
 */
public static GoogleAnalytics getGoogleAnalyticsInstance(Context context) {
    if (googleAnalytics == null) {
        googleAnalytics = new GoogleAnalytics(context);
        tracker = GoogleAnalyticsTracker.getInstance();
        tracker.startNewSession(--enter your reg number here--, 10, context);
    }
    return googleAnalytics;

}

private GoogleAnalytics(Context context) {
}

/**
 * Stop current session
 */
public void stopSession() {
    tracker.stopSession();
    googleAnalytics = null;
}

/**
 * Tracks Event of actions performed
 * 
 * @param action
 * @param label
 */
public void trackEvent(String action, String label) {
    tracker.trackEvent(CATEGORY, // Category
            action, // Action
            label, // Label
            VALUE);
}
   }

Now anywhere you need to track an event just call:

GoogleAnalytics.getGoogleAnalyticsInstance(this).trackEvent("Event Name", "Event Desc");

To get your application registraion number see this: Register for Google Analytics

Also remeber to call following when you want a single session to end:

GoogleAnalytics.getGoogleAnalyticsInstance(this).stopSession();