2013-10-20 37 views
2

我已將Google Analytics(分析)添加到我的應用程序中,以獲取有關屏幕的信息併發送自定義事件。Google Analytics版本3 - 如何正確應用它?

我得到重複的內容... 此外,我得到不同的結果: 「com.package.app.MainScreen」 - 300個意見 和 「主屏幕」 - 200意見

我有興趣只跟進活動的自定義名稱而不是包。無論如何,因爲兩者都表現出不同的結果?

public class MainScreen extends Activity { 
private static final String GA_PROPERTY_ID = "UA-12345678-9"; 
private static final String SCREEN_LABEL = "Main Screen"; 
Tracker mTracker; 
EasyTracker easyTracker; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_screen); 

    mTracker = GoogleAnalytics.getInstance(this).getTracker(GA_PROPERTY_ID); 
    mTracker.set(Fields.SCREEN_NAME, SCREEN_LABEL); // For Custom Name from activity 
    mTracker.send(MapBuilder.createAppView().build()); 

    easyTracker = EasyTracker.getInstance(this); // Analytics Events 
    ... 
    easyTracker.send(MapBuilder.createEvent("MainScreen", "Play", category.get(1), null).build()); //AnalyticsEvents 
    ... 


} 

@Override 
public void onStart() { 
    super.onStart(); 
    EasyTracker.getInstance(this).activityStart(this); 
} 

@Override 
public void onStop() { 
    super.onStop(); 
    EasyTracker.getInstance(this).activityStop(this); 
} 

}

而且analytics.xml

<?xml version="1.0" encoding="utf-8" ?> 
    <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes"> 
     <!--Replace placeholder ID with your tracking ID--> 
     <string name="ga_trackingId">UA-12345678-9</string> 
     <!--Enable automatic activity tracking--> 
     <bool name="ga_autoActivityTracking">true</bool> 
     <!--Enable automatic exception tracking--> 
     <bool name="ga_reportUncaughtExceptions">true</bool> 
    </resources> 

Google Analytics Dev Guide

回答

1

您有3分獨立的跟蹤的情況下,2在OnCreate()和一個也在調用onStart()/的onStop()。我建議從onCreate()中刪除它們,並將EasyTracker保存在onStart()/ noNstop()中,這樣您將不會獲得冗餘數據,但仍可獲得會話長度。

要具有自定義名稱爲的EasyTracker跟蹤的活動,您可以通過添加以下字段這樣設置他們在您的analytics.xml:用的EasyTracker

<-- Enable automatic Activity measurement --> 
<bool name="ga_autoActivityTracking">true</bool> 

<-- The screen names that will appear in reports --> 
<string name="com.example.app.BaseActivity">Home</string> 
<string name="com.example.app.PrefsActivity">Preferences</string> 

這是一個onClick(視圖)發送的UI事件:

@Override 
public void onClick(View view) { 
    String action = ""; 
    switch(view.getId()) { 
    case R.id.btnWeb: 
     getSherlockActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(sponsor.getWebsite()))); 
     action = "Website"; 
     break; 
    case R.id.btnPhone: 
     getSherlockActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("tel:" + PhoneNumberUtils.stripSeparators(sponsor.getPhone())))); 
     action = "Phone"; 
     break; 
    } 

     EasyTracker easyTracker = EasyTracker.getInstance(getSherlockActivity()); 
     if (easyTracker != null) { 
      easyTracker.send(MapBuilder 
       .createEvent("ui_action", 
          "sponsor_page", 
          title + ": " + sponsor.getName() + " - " + action, 
          null) 
       .build() 
     ); 
     } 
} 
+0

但是,這樣,我不能發送事件,甚至不能獲取活動的自定義名稱。 – ephramd

+0

@ephramd然後你不想使用EasyTracker,但你仍然想在onStart()/ onStop()中有一個Tracker。您可以使用不同的跟蹤器來進行個別事件。我會發布一些代碼... – Tonithy

+0

@ephramd檢查編輯。 – Tonithy

相關問題