# Device Technology {% admonition type="danger" name="This API is deprecated and will be removed in July 2026" %} The new API docs can be found here: https://apidocs.mediamath.com/apis/reporting-api {% /admonition %} Standard performance metrics broken out by technology dimensions including browser, operating system, and connection type. Available in custom date ranges or intervals with the option to aggregate by day, week, or month. ## Versions The API allows you to determine the version of the Device Technology Report by presenting a query parameter of ?v1 or ?v2. Starting October 3rd, 2017 v2 reports will include: - Device Brand – eg: Apple, Amazon, and Google - Device Model – eg: iPhone, Kindle Fire, Pixel - Browser Version – eg: Google Chrome - OS Version – eg: Windows 10 This insight will allow you to plan and assess performance based on device and browser, now inclusive of Mobile devices. Please note this release does not include targeting for these fields. The v2 reports will return data starting from September 2nd, 2017. New data will be added to the reports moving forward, accumulating to the full 90 days of data; the max number of days a user is currently able to pull technology report data for. * All existing saved/scheduled technology reports in Data Export will continue to pull data from the old reporting framework until November 1st, 2017. However, these reports will no longer be editable, meaning you may only export or deactivate the reports in the interim. * Additionally, all currently saved/scheduled technology reports will be automatically deactivated on November 1st, 2017. * From November 1st, 2017 technology reports will pull data from the v2 version of the reports by default. * From November 1st, 2017 technology reports that query the v1 version will result in a 304 * The export will also contain 31 days of data starting from September 2nd, 2017 and accumulate to the full 90 days. ## Migration After November 1st, any requests to the device_technology endpoint that specify removed metrics will fail with an 'invalid request' error. It is strongly recommended that you compare the v1 and v2 definitions of the device technology report /meta endpoint. ## Dimensions - Added device_type - Added os_version - Added operating_system - Added inventory_type - Added device_model - Added device_make - Added browser_version - Added browser - Removed browser_id - Removed browser_name - Removed device_id - Removed device_name - Removed inventory_type_id - Removed inventory_type_name - Removed os_id - Removed os_name ## Metrics - Added viewability_rate_100_percent - Added viewability_rate - Added in_view - Added in_view_100_percent - Added in_view_15_seconds - Added in_view_15_seconds_rate - Added in_view_5_seconds - Added in_view_5_seconds_rate - Added measurability_rate - Added measurable - Added media_cost_vcpm - Added total_ad_cost_vcpm - Added total_spend_vcpm ## Time Windows - Added campaign_to_date Endpoint: GET /device_technology ## Query parameters: - `v1` (string) _ - `v2` (string) _ - `dimensions` (string, required) Selects the dimension fields to use in grouping rows. This should be a comma-separated list of dimension field names. The position of the fields in the output is not guaranteed to match the parameter value. Always use the header line from the response body to identify the position of each column in the output. - `metrics` (string) Controls the selection of metric fields. This should be a comma-separated list of metric field names. If not specified, this will default to the metric fields specified by the default_metrics property of the . The position of the fields in the output is not guaranteed to match the parameter value. Always use the header line from the response body to identify the position of each column in the output. - `filter` (string, required) Controls filtering against dimension fields. The filtering is performed before row grouping. See the Predicate Parameters section of for more information about interpretation and accepted formats. - `having` (string) Controls filtering against metric and dimension fields. The filtering is performed after row grouping and metric calculation. See the Predicate Parameters section of for more information about interpretation and accepted formats. - `time_rollup` (string, required) The allowed values are specified by the time_rollups report meta property. See the Time Field section of for more information. - `time_window` (string, required) Controls filtering against the time field for the report. See the Time Field section of for more information. - `start_date` (string, required) Controls filtering against the time field for the report. See the Time Field section of for more information. - `end_date` (string) Controls filtering against the time field for the report. See the Time Field section of for more information. - `order` (string) Controls the sorting of the groups. This should be a comma-separated list of field names. Each field name may optionally be prefixed with a minus sign to indicate descending order. Otherwise, ascending order is assumed. The first field has the most significance in sorting. - `page_limit` (integer) Controls the maximum number of rows of data. This parameter is required, if page_offset is one or greater. - `page_offset` (integer) Controls how many pages to skip. - `precision` (integer) Controls how many digits to the right of the decimal places to display for float types. ## Header parameters: - `Cookie` (string, required) _ - `Accept-Encoding:` (string) If the client supports the compression methods also supported by the server (currently gzip and deflate), the response data set (text\/csv) will be returned in a compressed format. The metadata and error responses will not be compressed. In order to receive the data in compressed format, the client must use the HTTP request header Accept-Encoding, and enumerate the preferred compression methods (see RFC 2616). If the header Accept-Encoding is not present in the request, or if it contains only compression methods not supported by the system, the data will be returned in an uncompressed format. ### request Accept-Encoding: gzip,deflate ### response Content-Encoding: gzip Content-Type: text/csv; charset=UTF-8 Enum: "gzip,deflate" - `If-Modified-Since` (string) If the data has not changed, the server responds with a 304 Not Modified status code and an empty response body. If the same request was issued and the data had been updated since the specified time, the server responds with the data requested and a new Last-Modified header. ## Response 200 fields ## Response 304 fields ## Response 400 fields ## Response 401 fields ## Response 403 fields ## Response 404 fields