AI-generated Key Takeaways
-
Handling a report response can be complex but is complete and includes useful information for flexibility.
-
Headers provide information to format metrics, such as type and currency.
-
Rows contain the actual report results, with each row representing a report row based on chosen dimensions.
-
Totals and averages arrays contain calculated values for appropriate metrics.
-
The report response includes calculated start and end dates, useful when using relative dates.
Handling a report response is not trivial, particularly if you want your solution to be flexible and independent of the actual dimensions and metrics you chose in your report.
Thankfully, the report response is pretty complete and includes a lot of useful information.
Headers
You can use the information returned in the headers to choose how to format a particular metric. It includes information on what type of metric it is, whether it’s a currency, ratio or tally for example, and what currency it’s in, if it’s a monetary value.
Example:
"headers": [ { "name": "MONTH", "type": "DIMENSION" }, { "name": "CLICKS", "type": "METRIC_TALLY" }, { "name": "EARNINGS", "type": "METRIC_CURRENCY", "currency": "USD" }, { "name": "AD_REQUESTS_COVERAGE", "type": "METRIC_RATIO" } ]
Rows
This is where you get the actual report results. Each response row represents a report row, which has a different meaning based on your chosen dimensions.
"rows": [ { "cells": [ {"value": "2021-01"}, {"value": "278"}, {"value": "63.12"}, {"value": "0.9998"} ], [ {"value": "2021-02"}, {"value": "39"}, {"value": "8.46"}, {"value": "0.9998"} ] } ]
Totals and averages
When you run a report, you also get back the totals
and averages
utility arrays, which will contain a value for each appropriate metric.
"totals": { "cells": [ {}, {"value": "317"}, {"value": "71.58"}, {"value": "0.9998"} ] }, "averages": { "cells": [ {}, {"value": "158"}, {"value": "71.58"}, {"value": "0.9998"} ] }
Start and end Dates
If you’re using relative dates, it may sometimes be useful to know what the calculated start and end dates are.
"startDate": {"year": 2021, "month": 1, "day": 1}, "endDate": {"year": 2021, "month": 2, "day": 28}