5

我正在使用谷歌分析,我看到云测试实验室中的所有设备都被检测为“活跃用户”和“新用户”(这是有道理的)。有没有办法检测到这一点并且不计算它们?

我发现它们不计入 Google Play 中的安装量,因此我希望 Analytics 的行为相同。

可以通过将具有不同跟踪 ID 的不同版本上传到 Alpha/Beta 和 Production 来避免这种情况,但是如果将相同的 Apk 从 Alpha/Beta 提升到 Production,则 Cloud Test Lab 功能会更加强大。

4

3 回答 3

1

根据这个答案,您可以检查"firebase.test.lab"系统变量是否设置为"true"指示您是否在测试实验室设备上运行。

于 2020-10-04T07:29:51.680 回答
0

取决于您所说的“不计算它们”是什么意思。如果这些云访问可以通过来源/媒介或其他独特参数来识别,我认为最佳做法是创建另一个视图,在其中过滤掉这些访问。否则,您可以将细分应用到排除这些访问的标准视图。

于 2016-03-25T01:24:15.357 回答
0

如前所述,您可以通过页面https://firebase.google.com/docs/test-lab/android/overview#and_mobile_advertising中列出的 IP 地址排除分析

这是一些处理此问题的代码(需要 apache commons-net) 这应该涵盖所有当前情况。

注意:您只需要在应用启动时调用一次,因为测试实验室设备不会更改 IP 地址,而非测试实验室设备不会变成一个。我想这有点假设wifi连接也建立了......

private static boolean isTestLabIpAddress(Context context) {
    WifiManager wm = (WifiManager) context.getApplicationContext().getSystemService(WIFI_SERVICE);
    String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());

    // Log.i(TAG, "isTestLabIpAddress: ip: " + ip); for diagnosis, you may want this temporarily to be able to check the TestLab device logcat logs

    // https://firebase.google.com/docs/test-lab/android/overview#and_mobile_advertising
    List<String> cidrAddrs = new ArrayList<>();

    //Physical devices
    cidrAddrs.add("108.177.6.0/23");

    //Virtual devices
    cidrAddrs.add("35.192.160.56/29");
    cidrAddrs.add("35.196.166.80/29");
    cidrAddrs.add("35.196.169.240/29");
    cidrAddrs.add("35.203.128.0/28");
    cidrAddrs.add("35.234.176.160/28");
    cidrAddrs.add("199.192.115.0/30");
    cidrAddrs.add("199.192.115.8/30");
    cidrAddrs.add("199.192.115.16/29");

    for (String cidrRange : cidrAddrs) {
        SubnetUtils utils = new SubnetUtils(cidrRange); // build.gradle - implementation 'commons-net:commons-net:3.6'
        boolean isInRange = utils.getInfo().isInRange(ip);
        if (isInRange) {
            //Log.d(TAG, "isTestLabIpAddress: true: " + ip);
            return true;
        }

    }
    return false;
}
于 2019-03-02T01:01:54.843 回答