Thanks for those details! The time_series_length value corresponds to size, or the number of data points available for the request. For example, in your request you’ve asked for data between 2018-10-12 and 2018-10-16 (4 days) with an HOUR granularity which would correspond to
4 (days) * (24 hours) = 96 (hours).
When inspecting the individual stats e.g., the id_data['impressions'] field, this will be an array of 96 individual values (if not null), corresponding to each hour between the start_time and end_time
Hope that helps!
Thanks!