且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用谷歌Analytics(分析)来跟踪片段

更新时间:2023-02-03 11:49:46

Mochini的答案使用谷歌Analytics(分析)V2。娄你可以看到如何做到这一点的V4和V3:

Mochini's answer uses Google Analytics V2. Bellow you can see how to do it on V4 and V3:

  • V4

应用:

public class YourApplication extends Application
{
    public synchronized Tracker getTracker() {

        try {
            final GoogleAnalytics googleAnalytics = GoogleAnalytics.getInstance(this);
            return googleAnalytics.newTracker(R.xml.analytics);

        }catch(final Exception e){
            Log.e(TAG, "Failed to initialize Google Analytics V4");
        }

        return null;
    }
}

RES / XML / analytics.xml (你可以使用任何名字,它不需要被称为分析)

res/xml/analytics.xml (you can name it anything, it does not need to be called "analytics")

<?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-XXXXXXXX-X</string>

  <!--Enable automatic activity tracking-->
  <bool name="ga_autoActivityTracking">true</bool>

  <!--Disable automatic exception tracking-->
  <bool name="ga_reportUncaughtExceptions">false</bool>

</resources>

build.gradle:

compile 'com.google.android.gms:play-services:7.3.0'

片段超:

public abstract class TrackedFragment extends Fragment{

    @Override
    public void onResume() {

        super.onResume();

        final Tracker tracker = yourApplicationInstance.getTracker();
        if(tracker != null){

            tracker.setScreenName(getClass().getSimpleName());
            tracker.send(new HitBuilders.ScreenViewBuilder().build());
        }
    }
}

  • V3

    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    
    import com.google.analytics.tracking.android.EasyTracker;
    import com.google.analytics.tracking.android.Fields;
    import com.google.analytics.tracking.android.MapBuilder;
    import com.google.analytics.tracking.android.Tracker;
    
    public abstract class TrackedFragment extends Fragment{
    
         private Tracker tracker;
    
         @Override
         public void onActivityCreated(final Bundle savedInstanceState) {
    
             super.onActivityCreated(savedInstanceState);
    
             this.tracker = EasyTracker.getInstance(getActivity());
         }
    
         @Override
         public void onResume() {
    
             super.onResume();
    
             this.tracker.set(Fields.SCREEN_NAME, getClass().getSimpleName());
             this.tracker.send( MapBuilder.createAppView().build() );
         }
    }
    

  • 来源:https://developers.google.com/analytics/devguides/collection/android/v3/migration