For posterity, here's the answer: Google:
The existing documentation for v201101 cross-client reports specify that a queryToken will get returned with the response to the download url: http://code.google.com/apis/adwords/docs/reportingtopics.html#crossclient >From your posted responses, I don't see a queryToken. Are you getting one, and are you substituting the queryToken with the one previously received with each request to the download url? The queryToken can and will change between responses, and if you don't include the new query token, it can restart the whole report, which could potentially explain the issues you are seeing. Me: Yes. Here's the complete response from the download URL: <reportResponse> <queryToken>[queryToken]</queryToken> <state>RUNNING</state> <total>425</total> <success>0</success> <fail>0</fail> </reportResponse> I don't follow. Here's what I'm submitting to the download URL: Query string: __rd=[id] HTTP header : Authorization=GoogleLogin auth=[authToken] HTTP header : clientEmail=[clientEmail] HTTP header : returnMoneyInMicros=true Google: On the cross-client reporting page I linked in my last email, it says that the download url must also include qt=new as a query parameter. Each response will have a queryToken specified and it must be provided as the qt parameter in subsequent responses. What is probably happening is that because you are not specifying a query token on any request, the first request politely assumes qt=new and starts a report. Then the next request goes in and still no queryToken, so it starts a NEW report and you lose access to the already running report. That explains why each time you download you have no success/ fail entries. Here's the relevant section from the page: The server returns an XML response with the query token (<queryToken>) to be used in the next request (qt). The next request might look like this example: https://adwords.google.com/api/adwords/reportdownload?__rd=382325&qt=ChtSUmxKZ2dEdE5MZ2N2dkRXbFd4== Me: Are you saying that when I do: [snip] ReportDefinitionOperation.setOperator("ADD") ReportDefinitionOperation.setOperand(ReportDefinition) ReportDefinitionService.mutate(ReportDefinitionOperation) ...that does *not* tell the report to "go?" That I then have to call: https://adwords.google.com/api/adwords/reportdownload?__rd=[id]&qt=new ...to tell the report to "go," wait 30 minutes (or whatever), and then call: https://adwords.google.com/api/adwords/reportdownload?__rd=[id]&qt=[queryToken] ...? Google: Correct, that does not start the reports. The v201101 reports allow sliding date ranges and are intended to be reusable - define once, reuse many times. We usually recommend waiting 30 seconds between calls, but you have the process correct. As the queryToken may change between requests, it's a good idea to use the previous queryToken for the next request rather than just the first one. I'd also like to mention that the client libraries implement this logic for you. Here's an example in java: http://code.google.com/p/google-api-adwords-java/source/browse/trunk/examples/v201101/DownloadMccReport.java and python: http://code.google.com/p/google-api-adwords-python-lib/source/browse/trunk/examples/adspygoogle/adwords/v201101/download_mcc_report.py On Jul 13, 8:23 am, John Bliss <bliss.j...@gmail.com> wrote: > This AM, about 22 hours after creationTime, reportdownload still > shows: > > <state>RUNNING</state> > <total>425</total> > <success>0</success> > <fail>0</fail> > > What's going on? > > On Jul 12, 2:01 pm, John Bliss <bliss.j...@gmail.com> wrote: > > > > > > > > > Using v201101, I requested this report for yesterday (7/11): > > > reportType DESTINATION_URL_REPORT > > creationTime 20110712 080452 America/Los_Angeles > > > That was created almost four hours ago. But when I call > > reportdownload, I get: > > > <state>RUNNING</state> > > <total>425</total> > > <success>0</success> > > <fail>0</fail> > > > When I create same / similar report with v13 or via AdWords Web > > interface, it never takes longer than 30 minutes to run. > > > Please advise. -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups "AdWords API Forum" group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en