The data is returned in time series. Please see https://dev.twitter.com/ads/analytics:
Data Returned in Time Series
Data is returned for each metric in a time series based on your request of either HOUR (recommended), DAY or TOTAL granularity. If no data for a metric was collected during the requested time window or if a metric is invalid for the entity, a null value will be returned in place of a time series.
This means that if for granularity HOUR you get, for example, impressions: [10, 5, 17, 21, 53, 100, 64, 34, 5, 20, ..., 30] /* 24 values */ each of those impressions is for hours 00:00 - 01:00, 01:00 - 02:00, and so on.
I hope this answers your question.