こんばんわ

もうすぐ、アプリリリースとなったのでアプリの操作履歴が取れるようにしてみました。
GoogleAnalyticsを使用して「/hoge/fuga」みたいな物を沢山埋め込みました。
普通のWebページと同じような感じでページの識別が出来それぞれのアクセス数が記録出来ます。

埋め込んだのは以下の物です。

アプリが実行された時に1回実行されるメソッド
アクティビティのonCreate()


Build.xxx の情報
実行した、機種やSDKのバージョンを記録


UUIDを生成してユーザの識別
e.putString(tag, uuid);を使って初回起動時にUUIDを保存します。


onCreate()のソース

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    	Log.v(TAG, "onCreate");

//途中省略

	//uuid
	String uuid;
	uuid = get_uuid(); //get
	if(uuid==null){
		Log.v(TAG, "uuid null");
		UUID id = UUID.randomUUID();
		uuid = id.toString();
		put_uuid(uuid);	//put
	}
		
	//Analytics
        m_tracker = GoogleAnalyticsTracker.getInstance();  
        m_tracker.start("UA-xxxxxx-1", 60, this); 

       	m_tracker.trackPageView("onCreate");
        m_tracker.trackPageView(m_app_name);
       	
       	String trk;
       	trk = String.format("/brand/%s", Build.BRAND);
       	m_tracker.trackPageView(trk);	

       	trk = String.format("/manufacture/%s", Build.MANUFACTURER);
       	m_tracker.trackPageView(trk);	
       	
       	trk = String.format("/model/%s", Build.MODEL);
       	m_tracker.trackPageView(trk);	

       	trk = String.format("/sdk_int/%s", Build.VERSION.SDK_INT);
       	m_tracker.trackPageView(trk);	
       	
       	trk = String.format("/uuid/%s", uuid);
       	m_tracker.trackPageView(trk);	


UUIDの保存と読み出し

    //put_uuid
    private void put_uuid(String uuid){
        Log.v(TAG, "put_uuid " + uuid ); 
    	SharedPreferences pref = getPreferences(MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE);
    	Editor e = pref.edit();
    	String tag = "uuid+m_app_name";
    	e.putString(tag, uuid);	//put
    	e.commit();
    }
    
    //get_uuid
    private String get_uuid(){
    SharedPreferences pref =getPreferences(MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE);
	String tag = "uuid+m_app_name";
    	String uuuid = pref.getString(tag, null);	//get
    	
        Log.v(TAG, "get_uuid " + uuuid ); 
    	return uuuid;
    }

こんな感じでユーザが操作したものの回数が記録出来ます。
機種名やSDKのバージョンは今後の開発の参考になりますし、
あまり操作していない機能はいらないということにもなります。


GoogleAnalyticsの情報