Re: When to segment BMJS operations across JOBS, PARTS, and OPERATION STREAMS?
Hi Eric, Based on your response, one of the limiting criterion I listed above is incorrect: PARTS may contain up to 10,000 total OPERATIONS across all its OPERATION STREAMS? So, does that mean that PARTS may actually contain up to 25 OPERATION STREAMS with up to 10,000 OPERATIONS per OPERATION STREAM, for a maximum of 25*10, = 250,000 OPERATIONS per PART? Thanks in advance for the clarification. On Jul 7, 11:53 am, AdWords API Advisor adwordsapiadvi...@google.com wrote: Hi, In general you should use the following guidelines when creating your BulkMutateJobs: - 1 job per account being operated against. Jobs can not operate against multiple accounts. - 1 operation stream for every campaign being operated against, scoped to that campaign ID. If the number of operations for a campaign is greater than 10,000 than split it into multiple operation streams. - 1 part per 10,000 operations. If you have 10,000 operations or less than there is no need for multiple parts. If you have more operations, split the operations (and streams) into multiple parts. Operation streams exist to allow you to take advantage of concurrent processing on different campaigns, and parts exist to allow you to upload more than 10,000 operations into a single job. Best, - Eric Koleda, AdWords API Team On Jul 6, 4:32 pm, ojak ojakub...@gmail.com wrote: What criteria should be used when deciding how to segment BulkMutateJob operations across multiple JOBS, PARTS, and OPERATION STREAMS? After reading the BMJS overview (http://code.google.com/apis/adwords/ v2009/docs/bulkjobs.html), the limits appear to behave as follows: * CLIENTS may contain up to 10 JOBS * JOBS may contain up to 100 PARTS * JOBS may contain up to 500,000 OPERATIONS across all of its PARTS * PARTS may contain up to 25 OPERATION STREAMS * PARTS may contain up to 10,000 total OPERATIONS across all its OPERATION STREAMS * OPERATION STREAMS may contain up to 10,000 OPERATIONS So, if the above limitations are correct, are there any best practices for when to separate OPERATIONS across JOBS, PARTS, and OPERATION STREAMS? For example, you could segment a job with 500,000 operations in many ways, such as in the following three example: * EXAMPLE 1 (500,000 total OPERATIONS): - 1 JOB - 100 PARTS per JOB - 25 OPERATION STREAMS per PART - 200 OPERATIONS per OPERATION STREAM * EXAMPLE 2 (500,000 total OPERATIONS): - 1 JOB - 50 PARTS per JOB - 1 OPERATION STREAM per PART - 10,000 OPERATIONS per OPERATION STREAM * EXAMPLE 3 (500,000 total OPERATIONS): - 10 JOBS - 5 PARTS per JOB - 2 OPERATION STREAM per PART - 5,000 OPERATIONS per OPERATION STREAM Is there any reason why either EXAMPLE 1, EXAMPLE 2, or EXAMPLE 3 might be more appropriate for deploying the same number of operations? And again, more specifically, what criteria should be used when judging where to segment the operations? Thanks! -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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
Re: When to segment BMJS operations across JOBS, PARTS, and OPERATION STREAMS?
Operation streams exist to allow you to take advantage of concurrent processing on different campaigns, and parts exist to allow you to upload more than 10,000 operations into a single job. Does this mean that since PARTS contain OPERATION STREAMS, do PARTS also process concurrently? For example, if a job has 10 PARTS, do all 10 PARTS process concurrently? Or, do only the OPERATION STREAMS within each PART process concurrently? (BTW, the caps are for clarity, not yelling thx) -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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
Re: When to segment BMJS operations across JOBS, PARTS, and OPERATION STREAMS?
Hi, The limitation you listed is correct, a part can only contain 10,000 operations. An operation stream can only contain 10,000 operations because that's the limit on a part. If an operation stream has 10,000 operations in it the that part can only contain that single operation stream. As for concurrency, here is the documentation from the BulkMutateJobService: Once a job is launched in the bulk mutate workflow, the operation streams in the job are sorted by scoping entity, which is either the customer or the parent campaign. The operations of a single scoping entity are always processed in their request order. Operations of different scoping entities may be processed concurrently or in a different order than in the request. So concurrency is based on scoping entity only, regardless of how many parts or operation streams there are. Best, - Eric On Jul 9, 4:56 pm, ojak ojakub...@gmail.com wrote: Operation streams exist to allow you to take advantage of concurrent processing on different campaigns, and parts exist to allow you to upload more than 10,000 operations into a single job. Does this mean that since PARTS contain OPERATION STREAMS, do PARTS also process concurrently? For example, if a job has 10 PARTS, do all 10 PARTS process concurrently? Or, do only the OPERATION STREAMS within each PART process concurrently? (BTW, the caps are for clarity, not yelling thx) -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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
When to segment BMJS operations across JOBS, PARTS, and OPERATION STREAMS?
What criteria should be used when deciding how to segment BulkMutateJob operations across multiple JOBS, PARTS, and OPERATION STREAMS? After reading the BMJS overview (http://code.google.com/apis/adwords/ v2009/docs/bulkjobs.html), the limits appear to behave as follows: * CLIENTS may contain up to 10 JOBS * JOBS may contain up to 100 PARTS * JOBS may contain up to 500,000 OPERATIONS across all of its PARTS * PARTS may contain up to 25 OPERATION STREAMS * PARTS may contain up to 10,000 total OPERATIONS across all its OPERATION STREAMS * OPERATION STREAMS may contain up to 10,000 OPERATIONS So, if the above limitations are correct, are there any best practices for when to separate OPERATIONS across JOBS, PARTS, and OPERATION STREAMS? For example, you could segment a job with 500,000 operations in many ways, such as in the following three example: * EXAMPLE 1 (500,000 total OPERATIONS): - 1 JOB - 100 PARTS per JOB - 25 OPERATION STREAMS per PART - 200 OPERATIONS per OPERATION STREAM * EXAMPLE 2 (500,000 total OPERATIONS): - 1 JOB - 50 PARTS per JOB - 1 OPERATION STREAM per PART - 10,000 OPERATIONS per OPERATION STREAM * EXAMPLE 3 (500,000 total OPERATIONS): - 10 JOBS - 5 PARTS per JOB - 2 OPERATION STREAM per PART - 5,000 OPERATIONS per OPERATION STREAM Is there any reason why either EXAMPLE 1, EXAMPLE 2, or EXAMPLE 3 might be more appropriate for deploying the same number of operations? And again, more specifically, what criteria should be used when judging where to segment the operations? Thanks! -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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