RunOfflineUserDataJobAsync does sequential Processing of Submitted Jobs?

171 views
Skip to first unread message

Paid Media

unread,
Jan 21, 2022, 9:55:27 AM1/21/22
to Google Ads API and AdWords API Forum
Hi

We are trying to use AddOfflineUserDataJobOperationsRequest to upload several millions of customers to the audiences/segment via API runOfflineUserDataJobAsync. As this is asynchronous call and execution of request may take up to 24 hours, I have few queries around these:

1. Are these submitted jobs runs in a sequential manner? if I submit first job at 7:00 AM and second job at 7:05 AM, then the order of there execution would also be same or not? This sequence becomes important in scenario where We have triggered a job to remove customers from the audience and after this we triggered another job to add same customers to the same audience. If order of the job execution is not maintained then we will end-up removing the customers from audience instead of adding them to audience.

2. If multiple asynchronous jobs are trying to upload customers to the same audience, then will it succeed or cause any exception?  We will submit multiple asynchronous job to because of batch size limit of single API.

Could you please provide your input on these points?

Thank you

Google Ads API Forum Advisor

unread,
Jan 24, 2022, 3:22:12 AM1/24/22
to paid.m...@gmail.com, adwor...@googlegroups.com
Hi,

Thank you for posting your concern. Allow me to provide support here.

For your 1st question, I can confirm that the order of the execution would also be same based on the statement below that discussed here:
When you run your job, the Google Ads API will first mark all current members of the list for removal, and then apply the create operations.

As for the second question, I don't see any issues here as you followed the below statement which is also described in the link I provided earlier:
Avoid simultaneously running multiple OfflineUserDataJob processes that modify the same user list (that is, multiple jobs whose CustomerMatchUserListMetadata.user_list point to the same resource name). Doing so can result in a CONCURRENT_MODIFICATION error since multiple jobs are not permitted to operate on the same list at the same time. This error can also occur if attempting to simultaneously modify a list through the Google Ads UI and the Google Ads API. Note that this does not apply to adding operations to an existing job, which can be done at any time before the job is started.

Let me know if you have further questions.

Regards,
Google Logo
Ernie John Blanca Tacata
Google Ads API Team
 


ref:_00D1U1174p._5004Q2VOF6X:ref

Paid Media

unread,
Jan 24, 2022, 10:57:21 AM1/24/22
to Google Ads API and AdWords API Forum
Hi

Thank you for your response.
Regarding your response to the first question. The statement in the referenced article is in the context where remove_all is set to true. That means you want to remove all customers from the audience. But my question is specific to a scenario, where we are removing only a couple of customers from the audience. 
Consider below the sequence of events:
1. Make an API call at 7:00 AM to remove 10 customers from the audience list which is having 10K customers in it.
2. Make another API call at 7:05 AM to add those 10 customers back to the same audience list

Can u please confirm whether these jobs will be executed in a sequential manner one after another or there is no guarantee of the execution order? I have attached a file where its visible from Google Ads UI that jobs are not executed in a sequential manner.

Regarding the 2nd question. As per the referenced article, it seems that I can hit with CONCURRENT_MODIFICATION exception.
GoogleAdsAudienceUplaodUI.png

Google Ads API Forum Advisor

unread,
Jan 25, 2022, 1:46:02 AM1/25/22
to paid.m...@gmail.com, adwor...@googlegroups.com

Hi there,

Thank you for our reply.

Kindly note that the OfflineUserDataJob operations are asynchronous in nature. This is why not executed in a sequential manner, behavior observed is working as expected. Also, we do not suggest to use remove operations and create operations in a single job to avoid error.

Let us know if you have any further questions.

Regards,

Google Logo
Yasar
Google Ads API Team
 

 



ref:_00D1U1174p._5004Q2VOF6X:ref

Paid Media

unread,
Jan 28, 2022, 10:08:44 AM1/28/22
to Google Ads API and AdWords API Forum
Hi, 

From your response, it's clear that multiple asynchronous jobs can't be executed in a sequential manner. But what if we separate each asynchronous job by a definite time interval? For example, if I need to make 5 API calls in a sequential manner then, I will spread these calls across 5 hours. That means submitting one asynchronous API call per hour. So could you please confirm that if I keep a certain time difference between each API call then these calls will be executed in a sequential manner or not? And if it can be then what should be this time gap between each API call?

Google Ads API Forum Advisor

unread,
Jan 30, 2022, 8:17:21 PM1/30/22
to paid.m...@gmail.com, adwor...@googlegroups.com
Hi,

Thank you once again for your reply.

We currently do not have a definite time gap / interval to recommend. However, what we do recommend is to allow each operation / job to finish first.

For example, when you perform a remove operation, you can then perform a request using the offline_user_data_job report and determine if the offline_user_data_job.status is still RUNNING, or if it is already a SUCCESS and have finished. 

Afterwards, you may then perform the operations to repopulate that userlist.

Best regards,

Google Logo
Peter Laurence Napa Oliquino
Google Ads API Team
 


ref:_00D1U1174p._5004Q2VOF6X:ref
Reply all
Reply to author
Forward
0 new messages