Dear DFP API Support,
I would like to know the size of HTTP request that will trigger HTTP 413 error. We often receive this error when attempting to bulk update our large line items, and the recommended approach of DFP to deal with this is inefficient, which I will demonstrate below using the results of some tests I ran yesterday.
Initially, I attempted to update 5000 big line items using a chunk size of 150, which is around 1/3 the chunksize that works fine for normal-sized line items (500 items)
The majority of these requests generated HTTP 413 and were cut in 3 pieces and resubmitted. Some of the 50 item chunks also triggered HTTP 413 and needed to be split. This initial attempt using 150 as the starting size, was on schedule to take 4.5 hours to complete, due to all the retries, and phantom concurrent_mod errors.
(side note: it seems this kind of big request may trigger a DFP bug where concurrency_modification error is incorrectly returned after an excessively long wait period. I sent another note about this)
After trying initial chunksize of 150, I reduced it to 50. Some of these requests also generated HTTP 413 and needed still to be broken down smaller still. This completed in 1h 24 min
After that, I reduced the size to 10. This completed in 68 min without any HTTP 413.
So as you can see the request size matters a lot when updating
items. But if I just program the
chunksize of 10 items, I’m penalizing users most of the time, because the
majority of our line items are not that large to require that. If I start with a bigger size, like 150 (let
alone something bigger which actually is fine the majority of the time), then
when large items do come through, the retries make it end up taking over 4 times longer to
update them.
I know DFP is always trying to improve user experience and make the system easier to work with, so I was thinking it would be incredibly useful if you determined the HTTP request size limit from your Frontend network team and publicized it on your “Systems Maximums and Limits” page: https://support.google.com/dfp_premium/answer/1628457?hl=en
With this information, we could measure out exactly the right number of line
items per request without generating HTTP 413, and always perform our updates in the quickest possible amount of time.
Thanks!!!!
Aaron