Thanks for the reply Eric - really appreciate your help. Last question on this-: Do you guys publish a roadmap for the API that I could get visibility of ? Something that contains your plans for new functionality, along with go live dates ?
On Aug 9, 3:05 pm, AdWords API Advisor <adwordsapiadvi...@google.com> wrote: > Hi Bobby, > > The AdWords API is the only API available, so there is nothing else to > compare it with in regards to speed. You can try using the > AdGroupCriterionService instead of the BulkMutateJobService, but I > don't know if you'll see a dramatic speed difference. > > Best, > - Eric > > On Aug 9, 6:21 am, bobby <noriordan+apit...@cartrawler.com> wrote: > > > > > Thanks Eric, yes I understand that - but what I was really asking was > > "what is the fastest > > way to upload 300,000 keywords?". > > > In other words - is the ADWORDS API the fastest way to do it, or is > > there some other form > > of transfer that I can use? > > > Currently 300,000 keywords is taking me nearly 12 hours to upload - > > which is not an acceptable > > performance level for my customer. > > > Our business want to operate in a much more dynamic way with ADWORDS, > > and we were hoping the API > > would be a way to accomplish that, but so far it's looking like - > > while the flexibility and > > the potential to automate is there - that we are prevented from > > scaling up due to the performance. > > > Any pointers you can provide would be like water to a dry duck at this > > stage. > > > Thanks, > > Bobby > > > On Aug 6, 10:12 pm, AdWords API Advisor <adwordsapiadvi...@google.com> > > wrote: > > > > Hi Bobby, > > > > The BulkMutateJobService does not offer any speed benefits over the > > > regular synchronous services. There is the possibility of concurrent > > > processing of operations, but in general you shouldn't assume that > > > operations will process any faster using the BMJS. The BMJS is > > > designed for uploading large numbers of entities, such as keywords and > > > ads, but it should not be used for time-sensitive changes. > > > > Best, > > > - Eric Koleda, AdWords API Team > > > > On Aug 5, 8:43 am, bobby healy <robertjohnpatrickhe...@googlemail.com> > > > wrote: > > > > > OK, I've searched everywhere and there doesn't seem to be a single, > > > > definitive answer to this question-: > > > > > "How do I bulk upload about 300,000 keywords as quickly as possible ?" > > > > > Currently this takes me about 24 hours using the following code. Is > > > > there any faster way to do this ? > > > > > AdGroupAd textAdGroupAd = new AdGroupAd(); > > > > > textAdGroupAd.setAdGroupId(g.getAdGroupID()); > > > > textAdGroupAd.setAd(textAd); > > > > AdGroupAdOperation textAdGroupAdOperation = new > > > > AdGroupAdOperation(); > > > > textAdGroupAdOperation.setOperand(textAdGroupAd); > > > > textAdGroupAdOperation.setOperator(Operator.ADD); > > > > ... add some exemptions.... > > > > l.adGroupAdOperations.add(textAdGroupAdOperation); > > > > BulkMutateJobServiceInterface bulkMutateJobService = > > > > user.getService( > > > > > AdWordsService.V201003.BULK_MUTATE_JOB_SERVICE); > > > > // Set scope of jobs. > > > > EntityId scopingEntityId = new > > > > EntityId(EntityIdType.CAMPAIGN_ID, c.getCampaignID()); > > > > long jobId = createAndBeginJob(bulkMutateJobService, > > > > scopingEntityId, e.getValue().adGroupAdOperations.toArray(new > > > > AdGroupAdOperation[0])); > > > > OperationResult[] operationResults = > > > > retrieveResultsFromJob(bulkMutateJobService, jobId, null); > > > > > private static OperationResult[] retrieveResultsFromJob( > > > > BulkMutateJobServiceInterface bulkMutateJobService, long > > > > jobId, ProgressDialog p) > > > > throws InterruptedException, IOException { > > > > List<OperationResult[]> operationResultsByPart = new > > > > ArrayList<OperationResult[]>(); > > > > BulkMutateJob job = null; > > > > > // Create selector. > > > > BulkMutateJobSelector selector = new BulkMutateJobSelector(); > > > > selector.setJobIds(new long[]{jobId}); > > > > > // Loop while waiting for the job to complete. > > > > int percent = 1; > > > > do { > > > > BulkMutateJob[] jobs = bulkMutateJobService.get(selector); > > > > job = jobs[0]; > > > > > System.out.println("Bulk mutate job with id \"" + > > > > job.getId() + "\" has status \"" + job.getStatus() + "\"."); > > > > > if (job.getStatus().equals(BasicJobStatus.PENDING) || > > > > job.getStatus().equals(BasicJobStatus.PROCESSING)) { > > > > if (p != null) > > > > p.setProgress(percent++); > > > > Thread.sleep(10000); > > > > } > > > > } while (job.getStatus().equals(BasicJobStatus.PENDING) || > > > > job.getStatus().equals(BasicJobStatus.PROCESSING)); > > > > > ************* the above WHILE loop is where it spends all it's time - > > > > PROCESSING for hours...**************** > > > > > if (job.getStatus() == BasicJobStatus.FAILED) { > > > > throw new ApiException("Job failed.", null, null); > > > > } > > > > > for (int i = 0; i < job.getNumRequestParts(); i++) { > > > > // Set selector to retrieve results for part. > > > > selector.setResultPartIndex(i); > > > > BulkMutateJob jobWithResult = > > > > bulkMutateJobService.get(selector)[0]; -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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