ga_autoActivityTracking 什么时候触发?

When is the ga_autoActivityTracking fired?

可以使用 Google Analytics 自动跟踪所有活动, 当您在跟踪器配置中启用 ga_autoActivityTracking 属性时。

所以我问自己什么时候触发这个动作,因为我想在一个特殊的时间排除它。

它是否在 onCreateonResume 或 Activity 的其他方法被调用时触发?

我将在 MyApplication 秒后开始跟踪 onCreate() 方法:

@Override
    public void onCreate(){
        if (GooglePlayServicesUtil.isGooglePlayServicesAvailable(this)== ConnectionResult.SUCCESS) {
            // Get tracker.
            Tracker t = getTracker(
                    MyApplication.TrackerName.APP_TRACKER);

            // Send screen view.
            t.send(new HitBuilders.AppViewBuilder().build());
        }
    }

并使用以下文件初始化跟踪器:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- Enable automatic Activity measurement -->
    <bool name="ga_autoActivityTracking">true</bool>

    <!-- The screen names that will appear in reports -->
    <screenName name="de.example.app.MainActivity">
        MainActivity
    </screenName>
    ...
    <string name="ga_trackingId">UA-59000000-1</string>
</resources>

在您的跟踪器配置中将 ga_autoActivityTracking 设置为 true xml 等同于调用 tracker.enableAutoActivityTracking(true) when you are initializing your tracker. When auto activity tracking is enabled an screen view event will be send on activity start (when the Application.ActivityLifecycleCallbacks.onActivityStarted is called)。默认情况下,屏幕视图名称将派生自 activity class 名称。您可以通过将 Activity class 名称映射到您首选的屏幕名称,在您的跟踪器 xml 配置中定义自定义屏幕视图名称。启用自动 activity 跟踪所有活动后,您的应用将发送屏幕视图点击 Activity onStart 回调。

在您的代码中,您正在检查 Google Play 服务可用性。通常你不需要这样做。 Google Analytics 可以在设备上没有 Google Play 服务的情况下正常运行(例如在 Amazon Fire phone 设备上)。虽然 Google Analytics SDK 是 Google Play 库的一部分,但设备上是否存在 Google Play 服务是可选的。

在您的代码中,您还在创建应用程序时发送屏幕视图(应用视图与屏幕视图相同)。 Android 可以出于非交互式原因(例如接收广播请求)创建应用程序。当您从 Applicaion.onCreate 发送屏幕视图时,任何应用程序创建都将显示为用户启动了您的应用程序。这包括在您的活跃用户数中启动的非交互式应用程序,并将夸大报告的值。相反,您应该在应用程序 onCreate 中创建和配置您的跟踪,但仅在您的 activity 可见时发送屏幕视图(onStart 回调是一个很好的地方,或者启用自动 activity 跟踪)。如果启用 exception reporting,尽早创建和配置跟踪器尤为重要,因为只有在创建跟踪器后发生的异常才会被报告。您应该注意,启用自动 activity 跟踪只会自动跟踪活动,而不是片段。如果需要跟踪,您将需要从片段中手动发送屏幕浏览点击。