Hello Eric,

 Great, using a thread pool to limit the total number of pending
reports sounds like the right approach. If you previously didn't have
a limit on the total number of pending reports then I'm inclined to
think that was the root cause of the behavior you saw. Once a newly
scheduled reports bumps the earliest report out of the Report Center's
15 report queue, I don't believe that the bumped report's job id will
be valid anymore. So yes, I would expect that you'd get that error
message in that case.

 Regarding where the scheduled reports actually end up, the Report
Center that a scheduled report will be stored corresponds to the
effective user that scheduled the report. Here are three different
scenarios based on the SOAP credentials you're supplying:

1. email/password belong to an MCC account, no clientEmail header ->
effective user is the MCC account
2. email/password belong to an MCC account, clientEmail header is
present -> effective user is the clientEmail AdWords account
3. email/password belong to a normal AdWords account (implies no
clientEmail header) -> effective user is the email AdWords account

 From looking at your logs, I think all of your report scheduling
falls into the first scenario, and therefore all the reports you
schedule are stored in the MCC account's Report Center, and share the
same 15 report queue. If you were to change your report scheduling
code around a bit and, for instance, start specifying a clientEmail
SOAP header, then the scheduled report will appear in the Report
Center of the AdWords account in question. Each AdWords account has
its own separate 15 report queue.

 Scheduling reports under the context of an actual AdWords account
will work, but keep in mind that you can only do cross-client reports
from the context of an MCC account. Also keep in mind that if you're
just managing a bunch of AdWords account on behalf of third-party
clients, they might not want to see reports that your code schedules
appear in their Report Center if they use the AdWords web interface.

Cheers,
-Jeff Posnick, AdWords API Team


On Nov 14, 11:48 am, Eric <[EMAIL PROTECTED]> wrote:
> Hello Jeff,
>
> Right...we've implemented the semaphore suggestion as a Java thread
> pool with a maximum of 5 threads.  However, it is unclear to me from
> the Report Center documentation as to whether the referenced account
> is an MCC account or client account.  We've made the assumption it has
> been the client account.  Is this incorrect?
>
> I find it odd that that our code can get the status of the report for
> a while and then it "disappears".  If i were to request a report job
> status using a bogus report identifier would I get the same message?
>
> Thanks.
>
> -Eric Trull
>
> On Nov 13, 9:09 am, AdWords API Advisor <[EMAIL PROTECTED]>
> wrote:
>
> > A quick followup question: are you doing anything in your code to make
> > sure that you don't have more than 15 active reports at any one time?
> > As per
>
> >  http://code.google.com/apis/adwords/docs/developer/ReportService.html
>
> > "The Report Center stores up to 15 generated reports per account. When
> > the sixteenth report is generated, the Report Center deletes the
> > oldest stored report."
>
> > If you're managing 200 client accounts and not waiting for each of
> > their reports to complete before scheduling the next batch, I could
> > see how you'd frequently exceed the limit of 15 reports active at
> > once. Does that sound like it might be the cause?
>
> > If you're not already doing so, I'd make sure that you use a semaphore
> > if this is a threaded environment (or just a simple counter if you're
> > single threaded) to keep track of the number of active reports request
> > for your account. Each time you schedule a new report, decrement the
> > semaphore, and each time a report completes and you've successfully
> > downloaded it from its URL, increment the semaphore to indicate that
> > you can start scheduling the next report.
>
> > I have some sample code illustrating how to do this in Python as part
> > of the AdWords API Local Database Sync project. Take a look at how the
> > reports_semaphore Semaphore object is used in
>
> >  http://code.google.com/p/awapi-local-db-sync/source/browse/trunk/bin/...
> >  http://code.google.com/p/awapi-local-db-sync/source/browse/trunk/bin/...
>
> > A similar approach would work in any language that supports threading.
>
> > Cheers,
> > -Jeff Posnick, AdWords API Team
>
> > On Nov 13, 11:51 am, AdWords API Advisor
>
> > <[EMAIL PROTECTED]> wrote:
> > > Hello Eric,
>
> > >  Thanks for the additional detail about the occurrence rate.
>
> > >  I don't think this is related to the issue in the other thread. It's
> > > pretty easy to trigger that error when you're not supplying the
> > > appropriate MCC/client email credentials, which sounds like is what is
> > > happening in the other developer's case. In your case, your login
> > > information is fine but the SOAP fault indicates that the Report
> > > Center doesn't believe the report job ID is associated with your
> > > account.
>
> > > Cheers,
> > > -Jeff Posnick, AdWords API Team
>
> > > On Nov 13, 11:33 am, Eric <[EMAIL PROTECTED]> wrote:
>
> > > > Hello Jeff,
>
> > > > This behavior started about three weeks ago.  It happens every day and
> > > > effects anywhere from 4 to 10 client accounts out of over 200 client
> > > > accounts.  If we try again after the failure, we are able to get the
> > > > report.
>
> > > > There was another thread started yesterday that is giving the same
> > > > error 
> > > > message:http://groups.google.com/group/adwords-api/t/28c2754c1630b84b?hl=en
> > > > This problem might be related to requests for client accounts made
> > > > through an MCC.  We do request the AccountInfo object, to get the
> > > > currency, before making the report request.
>
> > > > Thanks.
>
> > > > -Eric Trull
>
> > > > On Nov 11, 9:37 am, AdWords API Advisor <[EMAIL PROTECTED]>
> > > > wrote:
>
> > > > > Hello Eric,
>
> > > > >  Yes, that does look very odd. I'm filing a bug about it. You're
> > > > > saying that this happens at least once a day? When did the behavior
> > > > > start?
>
> > > > > Cheers,
> > > > > -Jeff Posnick, AdWords API Team
>
> > > > > On Nov 10, 3:47 pm, Eric <[EMAIL PROTECTED]> wrote:
>
> > > > > > We have been getting a lot of 500 Internal Server Error with a fault
> > > > > > string of "Either this object does not exist, or this user does not
> > > > > > have permission to access it." when checking the status of a
> > > > > > successfully validated and scheduled ReportJob.  There does not 
> > > > > > appear
> > > > > > to be any coincidence with the account itself as the problem moves 
> > > > > > day
> > > > > > to day.
>
> > > > > > Below is a log that shows ReportJob validation, scheduling, and
> > > > > > subsequent status checks.  The first couple of status checks return
> > > > > > 202/Pending and then the 500 error.  We retry a couple of times 
> > > > > > before
> > > > > > finally giving up.
>
> > > > > > Any thoughts?
>
> > > > > > Thanks
>
> > > > > > -Eric
>
> > > > > > ----- Validate Report Job -----
>
> > > > > > POST /api/adwords/v12/ReportService HTTP/1.0
> > > > > > Content-Type: text/xml; charset=utf-8
> > > > > > Accept: application/soap+xml, application/dime, multipart/related,
> > > > > > text/*
> > > > > > User-Agent: Axis/1.4
> > > > > > Host: adwords.google.com
> > > > > > Cache-Control: no-cache
> > > > > > Pragma: no-cache
> > > > > > SOAPAction: ""
> > > > > > Content-Length: 4171
>
> > > > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > > > <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/
> > > > > > envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> > > > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
> > > > > >   <soapenv:Header>
> > > > > >     <ns1:email 
> > > > > > xmlns:ns1="https://adwords.google.com/api/adwords/v12";
> > > > > > soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next";
> > > > > > soapenv:mustUnderstand="0">XXXXX</ns1:email>
> > > > > >     <ns2:password xmlns:ns2="https://adwords.google.com/api/adwords/
> > > > > > v12" soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next";
> > > > > > soapenv:mustUnderstand="0">XXXXX</ns2:password>
> > > > > >     <ns3:developerToken xmlns:ns3="https://adwords.google.com/api/
> > > > > > adwords/v12" soapenv:actor="http://schemas.xmlsoap.org/soap/actor/
> > > > > > next" soapenv:mustUnderstand="0">XXXXXXXXXXXXXXXXXXXXXX</
> > > > > > ns3:developerToken>
> > > > > >     <ns4:applicationToken xmlns:ns4="https://adwords.google.com/api/
> > > > > > adwords/v12" soapenv:actor="http://schemas.xmlsoap.org/soap/actor/
> > > > > > next" soapenv:mustUnderstand="0">XXXXXXXXXXXXXXXXXXXXXX</
> > > > > > ns4:applicationToken>
> > > > > >     <ns5:useragent 
> > > > > > xmlns:ns5="https://adwords.google.com/api/adwords/
> > > > > > v12" soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next";
> > > > > > soapenv:mustUnderstand="0">XXXXX</ns5:useragent>
> > > > > >   </soapenv:Header>
> > > > > >   <soapenv:Body>
> > > > > >     <validateReportJob 
> > > > > > xmlns="https://adwords.google.com/api/adwords/
> > > > > > v12">
> > > > > >       <job xmlns:ns6="https://adwords.google.com/api/adwords/v12";
> > > > > > xsi:type="ns6:DefinedReportJob">
> > > > > >         <ns6:clientEmails xsi:type="xsd:string">XXXXX</
> > > > > > ns6:clientEmails>
> > > > > >         <ns6:crossClient 
> > > > > > xsi:type="xsd:boolean">true</ns6:crossClient>
> > > > > >         <ns6:endDay xsi:type="xsd:date">2008-11-09</ns6:endDay>
> > > > > >         <ns6:name xsi:type="xsd:string">XXXXXXX XXX: Creative 
> > > > > > Summary:
> > > > > > XX</ns6:name>
> > > > > >         <ns6:startDay xsi:type="xsd:date">2008-11-09</ns6:startDay>
> > > > > >         <ns6:aggregationTypes xsi:type="xsd:string">Summary</
> > > > > > ns6:aggregationTypes>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">CustomerName</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">CampaignId</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">Campaign</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">CampaignStatus</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">AdGroupId</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">AdGroup</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">AdGroupStatus</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">KeywordId</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">Keyword</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">KeywordStatus</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns 
> > > > > > xsi:type="xsd:string">KeywordTypeDisplay</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">DestinationURL</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns
> > > > > > xsi:type="xsd:string">KeywordDestUrlDisplay</ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">KeywordMinCPC</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">MaximumCPC</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">MaximumCPM</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">CreativeId</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">CreativeStatus</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">CreativeType</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">AdWordsType</
> > > > > > ns6:selectedColumns>
> > > > > >         <ns6:selectedColumns xsi:type="xsd:string">CreativeDestUrl</
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/adwords-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to