Hello, regarding the limit of 20,000 listing groups per AdGroup. It is true there doesn't seem to be mention of it in the documentation, but a resource limit is in place.
I hit the limit when I tried to create 50,000 UNIT Listing Groups under a ROOT. Only 19,998 UNIT Listing Groups were created on Google, the other groups already existed previously, being the ROOT and the OTHER. For the rest of the operations that followed, I got the `RESOURCE_LIMIT` error back from Google. This is the error for one of the operations which mentions this limit type: https://developers.google.com/google-ads/api/reference/rpc/v10/ResourceLimitTypeEnum.ResourceLimitType?hl=en#listing_groups_per_ad_group status { code: 3 message: "This request would exceed a limit on the number of allowed resources. The details of which type of limit was exceeded will eventually be returned in ErrorDetails., at mutate_operations[19997].ad_group_criterion_operation" details { [type.googleapis.com/google.ads.googleads.v9.errors.GoogleAdsFailure] { errors { error_code { resource_count_limit_exceeded_error: RESOURCE_LIMIT } message: "This request would exceed a limit on the number of allowed resources. The details of which type of limit was exceeded will eventually be returned in ErrorDetails." trigger { string_value: "LISTING_GROUPS_PER_AD_GROUP" } location { field_path_elements { field_name: "mutate_operations" index: 19997 } field_path_elements { field_name: "ad_group_criterion_operation" } } } } } } With this, I believe we can say that the limit is still in place with the new API. Not sure if it's supposed to be since it is not documented. On Tuesday, April 5, 2022 at 9:45:12 AM UTC+2 adsapi wrote: > Hi, > > Thank you for reaching out to our API support team. > > Regarding the *LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE* and as per > this guide > <https://developers.google.com/google-ads/api/docs/shopping-ads/create-listing-groups?hl=en>, > > and also in this later section > <https://developers.google.com/google-ads/api/docs/shopping-ads/create-listing-groups?hl=en#temporary_ids>, > > it states that : > > - *Each subdivision must always be completely partitioned, so it must > contain a node representing Other.* > - *Ad group criteria are not assigned IDs until the mutate request > that creates them is processed by the server. However, > a ListingGroupInfo is invalid until it is complete, so whenever you create > a subdivision you must also create at least one of its children and > an Other node in the same request.* > > That being said, for your operations "*The operation to create the OTHERS > node is the last one uploaded.*", you may need to ensure that every > subdivision has an Other node when it is being constructed. > > As for the error *LISTING_GROUP_DOES_NOT_EXIST*, if the above > considerations do not help resolve the issue, could you share to our team > the complete request > <https://developers.google.com/google-ads/api/docs/concepts/field-service#request> > > and response > <https://developers.google.com/google-ads/api/docs/concepts/field-service#response> > > logs, and the request-id > <https://developers.google.com/google-ads/api/docs/concepts/call-structure#request-id>, > > as well as the batch job ID, when the error was encountered? > > You may then send the requested information via the *Reply privately to > author* option. If this option is not available, you may send the details > directly to our googleadsa...@google.com alias instead. > > Regarding the following items : > > > > *- Is this behavior intended? Does it only happen for ListingGroups or for > other types as well? - Are we limited to creating only 1000 children nodes > in a BatchJob before we have to collect the assigned criterion ID of the > parent node to create more nodes under it?* > * - With the AdWords API there was a limit on the number of nodes a > Partition tree could have, which was 20_000 nodes. Is this limit still in > place for GoogleAds API? Has it changed?* > > > Could you confirm whether the batch job also returned errors related to > the limit? I asked because as per the Google Ads API system limits > <https://developers.google.com/google-ads/api/docs/best-practices/system-limits?hl=en> > > guide, there is no mention on how many ListingGroups can be processed in a > specific batch job. However, for batch processing limits, you may also > refer to this guide > <https://developers.google.com/google-ads/api/docs/batch-processing/best-practices?hl=en#limitations>, > > and it then states that : > > *It is recommended to add no more than 1,000 operations > per AddBatchJobOperationsRequest > <https://developers.google.com/google-ads/api/reference/rpc/v10/BatchJobService#addbatchjoboperations> > and > use the sequence_token > <https://developers.google.com/google-ads/api/reference/rpc/v10/AddBatchJobOperationsRequest#sequence_token> > to > upload the rest of the operations to the same job. * > > In addition, there is also no mention of a 20,000 nodes limit in the > AdWords API version of the system limits > <https://developers.google.com/adwords/api/docs/appendix/limits> > documentation. For our team to take a closer look, could you also provide > supporting documentation or references for the said 20,000 nodes limit? > > Furthermore, the API also generally follows the account limits defined > here <https://support.google.com/google-ads/answer/6372658?hl=en>. > > > *- Is it possible to keep the temporary IDs of a BatchJob valid for all > the operations it contains?* > > For this item, you can refer to this guide > <https://developers.google.com/google-ads/api/docs/batch-processing/temporary-ids?hl=en> > > for more information on the usage of temporary IDs. From the guide it > states two notable items : > > - *...For example, if you create a campaign and specify its resource > name as customers/<YOUR_CUSTOMER_ID>/campaigns/-1, then when you are > creating the ad group in a later operation, you can reference it by that > resource name and the -1 you specified will be replaced by the actual ID > of > the created campaign automatically.* > - *Temporary resource names are not remembered across jobs or mutate > requests; to reference a resource created in a previous job or mutate > request, use its actual resource name.* > > Best regards, > > [image: Google Logo] > Peter Laurence > Google Ads API Team > > > ref:_00D1U1174p._5004Q2ZJqPO:ref > -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog: https://googleadsdeveloper.blogspot.com/ =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups "AdWords API and Google Ads 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 --- You received this message because you are subscribed to the Google Groups "Google Ads API and AdWords API Forum" group. To unsubscribe from this group and stop receiving emails from it, send an email to adwords-api+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/adwords-api/31d94330-8928-4563-aa6a-9347615fe14cn%40googlegroups.com.