使用谷歌分析跟踪片段

2022-09-01 11:30:53

只需要知道实现Google分析的正确方法,以实时跟踪用户何时在片段上,这就是现在要做的事情

@Override
public void onResume() {
    super.onResume();
    Tracker myTracker = parentActivity.getTracker();
    myTracker.setCustomMetric(1, (long) 1);               
    myTracker.sendView("Music View"); 
}

getTracker 类在我的主要活动中,只是在主活动中返回跟踪器的实例

任何帮助将不胜感激!


答案 1

Mochini的答案使用Google Analytics V2。在下面,您可以看到如何在V4和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(你可以给它起任何名字,它不需要被称为“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


答案 2

这是一个使用和片段的示例:FragmentActivity

  1. 在值文件夹 () 中创建 XML 文件:values/analytics.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <!-- Replace placeholder ID with your tracking ID -->
        <string name="ga_trackingId">XX-xxxxxxxx-x</string>
    
        <!-- Enable Activity tracking -->
        <bool name="ga_autoActivityTracking">true</bool>
    
        <!-- Enable debug -->
        <bool name="ga_debug">true</bool>
    
        <!-- The screen names that will appear in your reporting -->
        <string name="com.example.myapp.FragmentActivity">Fragment activity</string>
    
        <!--
            The inverval of time after all the collected data
            should be sent to the server, in seconds.
        -->
        <integer name="ga_dispatchPeriod">20</integer>
    
    </resources>
    
  2. 在您的课程中,添加以下内容:FragmentActivity

    @Override
    protected void onStart() {
        super.onStart();
        EasyTracker.getInstance().setContext(this.getBaseContext());
        EasyTracker.getInstance().activityStart(this); // Add this method
    }
    
    @Override
    protected void onStop() {
        super.onStop();
        EasyTracker.getInstance().activityStop(this); // Add this method
    }
    
  3. 在包中创建新类:TrackedFragment.java

    public class TrackedFragment extends Fragment {
        private Tracker tracker;
        private String activityId;
        private String fragmentId;
    
        @Override
        public void onCreate(final Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            EasyTracker.getInstance().setContext(getActivity().getApplicationContext());
            this.tracker = EasyTracker.getTracker();
            this.fragmentId = getClass().getSimpleName();
            this.activityId = getActivity().getClass().getSimpleName();
        }
    
        @Override
        public void onResume() {
            super.onResume();
            this.tracker.sendView("/" + this.activityId + "/" + this.fragmentId);
        }
    }
    
  4. 最后,您的片段应从以下位置扩展:TrackedFragment

    public class NewFragment extends TrackedFragment {
    
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            return inflater.inflate(R.layout.newfragment, null);
        }
    
    }
    

推荐