I'm afraid there's no way to aggregate all those reports into a single request.
Is there any way you can reduce the frequency at which you run reports? Since the earnings you're getting seem to be on a daily basis at most, perhaps you can try running it just once a day.
In case that's not possible, you can at least reduce the number of requests by not running the longer period reports every hour.
As for invalid clicks, yes, these are things that are calculated up to a day or two after the click event, so you'll need to periodically update your data to make sure you get correct values.
Cheers,
Sérgio
---
Sérgio Gomes
Developer Relations
Google UK Limited
Registered Office: Belgrave House, 76 Buckingham Palace Road, London SW1W 9TQ
Registered in England Number: 3977902
---