与调度Android的问题()谷歌Analytics(分析)
在使用谷歌分析为Android,如果我使用与调度Android的问题()谷歌Analytics(分析)
tracker.start("UA-YOUR-ACCOUNT-HERE", 20, this)
然后每20秒,事件将被自动分派即使我不它使用手动
做tracker.dispatch()
我的问题是,如果用户在20秒内退出我的应用程序会发生什么? 它会被派遣?
或者我是否必须在用户试图退出时手动调度所有未决事件?
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
这真的是最好的方法吗?在用户离开时执行操作,但在后台执行操作?对我来说,停止呼叫属于那里,而不是派遣呼叫似乎更符合逻辑。 – olamotte 2011-05-20 16:05:11
建议您在使用以下方式销毁应用程序时停止跟踪器;
@Override
protected void onDestroy() {
super.onDestroy();
// Stop the tracker when it is no longer needed.
tracker.stop();
}
我会认为这会派遣任何等待事件。
你不必做任何东西 - 事件得到保存,将被集中在一起与您的应用程序中发生的下一次调度(大概是下次用户启动应用程序时)。
请注意,Analytics服务器根据收到数据的时间来标记点击时间,而不是基于事件实际发生的时间 - 所以如果您的用户每天使用该应用几分钟,则第10点发生的访问可能会显示起来分析11号等
更新: 要在行为时澄清tracker.stop()被调用,它不调度挂起的事件在这一点上。他们留在一个内部的sqlite数据库中,并且是在应用程序的下一次运行中调用调度时第一个出去。当跟踪器停止时,他们没有被解雇的原因是它会给被销毁的Activity增加时间,使得应用程序在退出时感觉不太“活泼”。这也是在派发onDestroy方法之前应该仔细考虑的原因。
此代码可以帮助您.....
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();
}
}
进行任何的答案是否足够?如果是这样,请标记为已接受:) – 2011-11-29 00:13:34