Google Analytics detects Google Cloud Test Lab tests as Active Users and New Users

前端 未结 3 1471
攒了一身酷
攒了一身酷 2021-01-06 01:22

I am using Google Analytics and I have seen that all the devices in the Cloud Test Lab are detected as \"active users\" and \"new users\" (which makes sense). Is there any w

相关标签:
3条回答
  • 2021-01-06 01:56

    According to this answer, you can check if "firebase.test.lab" system variable is set to "true" which indicates if you're running on a test lab device.

    0 讨论(0)
  • 2021-01-06 02:09

    As mentioned, you can exclude analytics by the IP addresses listed in the page https://firebase.google.com/docs/test-lab/android/overview#and_mobile_advertising

    Here is some code to handle this (requires apache commons-net) This should cover all the current cases.

    NOTE: You'll only need to call this once at app start, since a Test Lab device won't change IP addresses and a NON Test Lab Device will not become one. I guess this kinda assumes that the wifi connection is established also...

    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;
    }
    
    0 讨论(0)
  • 2021-01-06 02:11

    Depends on what you mean by "not count them". If these cloud visits are identifiable by source/medium or another unique parameter, I think best practice would be creating another view in which these visits are filtered out. Otherwise you could apply a segment to your standard view that excludes these visits.

    0 讨论(0)
提交回复
热议问题