Hi Angel,
The report download request may time out on extremely large data sets. There is no explicit data size limit, however, the server may return an error if the report is too large. As you had asked, you can use predicates to break up the report request into multiple, smaller requests. For example, use a date range or you could consider submitting multiple requests that each filter for a subset of Campaign IDs. An alternate solution would be to try increasing the readTimeout(in ads.properties file if using Java) for report downloads or consider an alternate format like CSV for downloading the reports.
Regards,
Dhanya, AdWords API Team