Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 活动中是否需要任何代码,以便ga_autoActivityTracking=true适用于Google Analytics V4_Android_Google Analytics - Fatal编程技术网

Android 活动中是否需要任何代码,以便ga_autoActivityTracking=true适用于Google Analytics V4

Android 活动中是否需要任何代码,以便ga_autoActivityTracking=true适用于Google Analytics V4,android,google-analytics,Android,Google Analytics,在Google Analytics v3中,要自动跟踪活动,我们需要 ga_autoActivityTrackingmanifest.xml中的标志 在onStart和onStop Android v3的谷歌分析SDK 但是,经过测试后,似乎没有跟踪信息从活动自动发送出去 Google Analytics V4的文档缺少什么吗 您需要在活动/片段代码中添加您发布的链接步骤4中提到的以下代码: // Get tracker. Tracker t = ((AnalyticsSample

在Google Analytics v3中,要自动跟踪
活动
,我们需要

  • ga_autoActivityTracking
    manifest.xml中的标志
  • onStart
    onStop
  • Android v3的谷歌分析SDK 但是,经过测试后,似乎没有跟踪信息从
    活动
    自动发送出去


    Google Analytics V4的文档缺少什么吗

    您需要在活动/片段代码中添加您发布的链接步骤4中提到的以下代码:

       // Get tracker.
        Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
            TrackerName.APP_TRACKER);
    
        // Set screen name.
        // Where path is a String representing the screen name.
        t.setScreenName(path);
    
        // Send a screen view.
        t.send(new HitBuilders.AppViewBuilder().build());
    

    如果您查看链接:,这里还提供了一个示例片段片段


    编辑
    抱歉,以上信息是用于手动跟踪的。
    根据此链接:, 如果在配置XML中启用自动屏幕视图跟踪,则只需执行两个步骤:

    • 在XML配置中设置ga_autoActivityTracking参数 文件
    • 在XML配置文件中为每个活动指定一个屏幕名称

    是的,GAV4中似乎存在错误。请参阅答案和

    对于运行API v14(冰淇淋三明治)或更高版本的设备,除了在跟踪器配置文件中将
    ga_autoActivityTracking
    设置为true外,还需要调用。我已经证实了这一点(也就是说,屏幕视图确实会在我的谷歌分析控制台中报告)在后v14设备上有效

    如果您希望应用程序支持运行API 14之前版本的设备,您还必须在
    onStart
    onStop
    中为所有要跟踪的活动添加调用和
    reportActivityStop
    。我已经确认这在v14之前的设备上有效

    我只对活动而不是片段进行了尝试,从上面的一个链接来看,自动屏幕跟踪似乎无法处理片段。

    步骤1 添加
    app\u tracker.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <!--  The following value should be replaced with correct property id. -->
        <string name="ga_trackingId">UA-00000000-1</string>
    
        <!-- catch and report uncaught exceptions from the app -->
        <bool name="ga_reportUncaughtExceptions">true</bool>
    
        <integer name="ga_sessionTimeout">300</integer>
    
        <!-- Enable automatic Activity measurement -->
        <bool name="ga_autoActivityTracking">true</bool>
    
        <!-- The screen names that will appear in reports -->
        <screenName name="com.mypackage.NameActivity">Name Activity</screenName>
    
    </resources>
    
    public static Tracker getTracker() {
        if (false == isGooglePlayServicesAvailable()) {
            return null;
        }
    
        if (tracker == null) {
            GoogleAnalytics analytics = GoogleAnalytics.getInstance(MyApplication.instance());
            tracker = analytics.newTracker(R.xml.app_tracker);
        }
        return tracker;
    }
    
    步骤3 在活动启动期间打开GA

    public class MyFragmentActivity extends SherlockFragmentActivity {
        @Override
        public void onCreate(Bundle savedInstanceState) {        
            super.onCreate(savedInstanceState);
    
            Utils.getTracker();
    

    但是我需要实例化一个跟踪器对象吗?否则跟踪器将永远不会加载配置xml文件?(如果是的话,我想我必须在我想要跟踪的每个活动中实例化它吗?)是的,你确实需要实例化一个跟踪器对象来加载它的配置文件。我以Google为例,在从应用程序继承的类的getTracker方法中创建了一个singleton tracker对象。然后我调用getTracker方法一次,在用户看到的第一个屏幕“我的主屏幕的活动”的onCreate方法中。我不需要在代码中的任何其他地方调用getTracker方法来跟踪所有活动。您好,我可以问一下,我是否只需要为我的活动执行一次
    getTracker()
    ,并且如果我的跟踪器xml中存在
    screenName
    ,则会跟踪活动中的任何片段交换?谢谢!:)您好,You Qi,如果我没有记错的话,只需要执行至少一次,其余的就可以正常工作了。我应该把app_tracker.xml放在哪里?我只需要把它放在
    src/main/res/xml/app_tracker.xml
    public static Tracker getTracker() {
        if (false == isGooglePlayServicesAvailable()) {
            return null;
        }
    
        if (tracker == null) {
            GoogleAnalytics analytics = GoogleAnalytics.getInstance(MyApplication.instance());
            tracker = analytics.newTracker(R.xml.app_tracker);
        }
        return tracker;
    }
    
    public class MyFragmentActivity extends SherlockFragmentActivity {
        @Override
        public void onCreate(Bundle savedInstanceState) {        
            super.onCreate(savedInstanceState);
    
            Utils.getTracker();