Currently in calls to UserCountry methods, the results include codes that can be used if you wanted to call another report using a segment of a country/region/city.
For example ->
Calls to UserCountry.getCountry include <code>us</code> for the United States data row.
Calls to UserCountry.getRegion include <region>FL</region> <country>us</country> for the Florida data row.
This is extremely useful if one wants to display a list of countries, and allow the user to select a country and get further data based on that segment. This is possible because the original results contains the codes needed to make subsequent segmented calls.
I propose that inclusion of these codes be a standard practice for all relevant API results.
While I've not reviewed data results from all API methods, a few that I can point out being in need of such a feature addition include ->
DevicesDetection.getOsVersions -> include operatingSystemCode
DevicesDetection.getBrowserFamilies -> include browserCode
DevicesDetection.getBrowserVersions -> include browserCode, browserVersion
UserSettings.getOS -> include operatingSystemCode
UserSettings.getBrowserVersion -> include browserCode, browserVersion
UserSettings.getBrowser -> include browserCode
Basically, it would be great if anywhere results are given where the label cannot be used as a segment value and a code must be used instead, that code would be included in the results.
Thanks for the suggestion, it makes a lot of sense.
that should be solved with the
<segment> included in API results, like in https://github.com/piwik/piwik/blob/3.x-dev/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Referrers.getKeywords_day.xml#L20