Hello,
I'm utilizing the BatchJobService to update AdGroups and I'm trying to figure out how to speed up my uploads.
I can upload Incrementally in batch Operation sizes of 10k each time which on average, takes about 7-8 minutes. Across 43 campaigns / ~750,000 adGroups, the amount of time would take 3-4 hours. I'd love to figure out how to get this down to less than an hour if possible.
I've tried playing around with the PHP API library and compressionLevel to see if it improves upload performance but I'm not sure it's working. I've tried sniffing the traffic between Google and my servers during the upload, but it's encrypted so I can't see if I'm fully submitting a GZIP request. I've also added 'gzip' to my user agent but it's still not improving upload speed or upload performance. I would have thought GZIP compression would work better because it is Text / XML.
I've also tried changing my Batch Operations upload sizes to between 1,000 to 10,000 to figure out if that would improve upload performance.
Here's the SoapSettingsBuilder / AdWordsSessionBuilder code I'm using -
$soapSettings = (new SoapSettingsBuilder())
->fromFile()
->withCompressionLevel(9)
->build();
$session = (new AdWordsSessionBuilder())
->withClientCustomerId(REDACTED)
->withSoapSettings($soapSettings)
->withDeveloperToken(REDACTED)
->withUserAgent('My App (gzip)')
->withOAuth2Credential($oAuth2Credential)
->build();
Maybe I'm missing something but are there any other ideas to improve performance to get the data to Google?
Thanks.