Hi,

We are trying to upload pii data to create the user lists in Google Ads 
manager and face the CONCURRENT_MODIFICATION error.

When we read the following paragraph from the doc, our understanding is 
that as long as we run one job, we should not run into the 
CONCURRENT_MODIFICATION issue. So we added the requests concurrently to the 
same job, and submitted the job for only once. However, we still saw this 
error.

 

   - Avoid simultaneously running multiple OfflineUserDataJob 
   
<https://developers.google.com/google-ads/api/reference/rpc/v10/OfflineUserDataJob>
 processes 
   that modify the same user list (that is, multiple jobs whose 
   CustomerMatchUserListMetadata.user_list 
   
<https://developers.google.com/google-ads/api/reference/rpc/v10/CustomerMatchUserListMetadata>
 point 
   to the same resource name). Doing so can result in a 
   CONCURRENT_MODIFICATION 
   
<https://developers.google.com/google-ads/api/reference/rpc/v10/DatabaseErrorEnum.DatabaseError#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 
   
<https://developers.google.com/google-ads/api/reference/rpc/v10/AddOfflineUserDataJobOperationsRequest>
 to 
   an existing job, which can be done at any time before the job is started. 

 

Could you help us address following concerns?

   1. Is adding requests to the same job concurrently supported without 
   throwing out the CONCURRENT_MODIFICATION error? 
   2. If number 1 is supported, then is it a bug development team needs to 
   trouble shoot? 
   3. If number 1 is not supported, could you suggest if there is any other 
   way to upload the data asynchronously so that we can upload the data faster 
   than the synchronous way? 

 

Here I’m pasting how we tested the API again. 

 

Following work flow is implemented to upload data to Google in parallel.

1. Created 'google_client' using access tokens

2. Created 'user_list' (we at Epsilon refer it as audience)

3. Created 'offline_user_data_job' using 'OfflineUserDataJobService' service

4. Create a function which takes the 'google_client', 'user_list', 
'offline_user_data_job' and small portion of dataframe to be uploaded. This 
function is called in parallel by spark.

5. Within this function, 

               5.1 Create request for 'AddOfflineUserDataJobOperations'

               5.2 Initialize the request with 'offline_user_data_job' ( 
This will tag a request to job.

               5.3 Create operations using the input data. and assign to 
request.operations

               5.4 submit the 'AddOfflineUserDataJobOperations' request

               5.5 Repeat step 5.1 to 5.4 till all data is submitted to 
Google.

6. On submitting all the 'AddOfflineUserDataJobOperations' request, finally 
call 'run_offline_user_data_job' which triggers the upload.

 

*Issue details:*

We are facing 'database_error: CONCURRENT_MODIFICATION' error when we are 
submitting "'AddOfflineUserDataJobOperations' request" in parallel. ( Step 
5.4)

 

(<_InactiveRpcError of RPC that terminated with:\n\tstatus = 
StatusCode.INVALID_ARGUMENT\n\tdetails = "Request contains an invalid 
argument."\n\tdebug_error_string = "

{

    "created": "@1647967680.852767877",

    "description": "Error received from peer ipv4:172.253.122.95:443",

    "file": "src/core/lib/surface/call.cc",

    "file_line": 903,

    "grpc_message": "Request contains an invalid argument.",

    "grpc_status": 3

}

"\n>, <_InactiveRpcError of RPC that terminated with:\n\tstatus = 
StatusCode.INVALID_ARGUMENT\n\tdetails = "Request contains an invalid 
argument."\n\tdebug_error_string = "

{

    "created": "@1647967680.852767877",

    "description": "Error received from peer ipv4:172.253.122.95:443",

    "file": "src/core/lib/surface/call.cc",

    "file_line": 903,

    "grpc_message": "Request contains an invalid argument.",

    "grpc_status": 3

}

"\n>, errors {\n  error_code {\n    database_error: 
CONCURRENT_MODIFICATION\n  }\n  message: "Multiple requests were attempting 
to modify the same resource at once. Please retry the 
request."\n}\nrequest_id: "jUsAGBf4dnPrg6XQX8TEbA"\n, 
\'jUsAGBf4dnPrg6XQX8TEbA\')',)

 

 

 

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/fc49beb2-68d6-4374-8040-3e8236431fc8n%40googlegroups.com.

Reply via email to