Timeout when trying to remove users inside an audience list

171 views
Skip to first unread message

Anqi Wu

unread,
Sep 9, 2021, 1:58:47 AM9/9/21
to AdWords API and Google Ads API Forum
Hi guys,

Client is trying to remove some user inside one of their user list, but they have been not able to delete it and keep getting timeout error. 

They have the below questions:
1. What is the difference between UserDataService and OfflineUserDataJobService?
2. Is it possible to remove all users from an audience list and replace it with another new set of device id list? If so, how should they proceed with the api?
3. If it is not possible, could they remove only part of the user from the original user list and add some new users? If should they proceed with the API?

I attched the logs below, please take a look, thank you!

Bests,
Anqi

They were using the below request to remove resource:
private AddOfflineUserDataJobOperationsRequest buildRemoveAllRequest(String resourceName) {
    // Issues a request to add the operations to the offline user data job.
    return AddOfflineUserDataJobOperationsRequest.newBuilder()
        .setResourceName(resourceName)
        .addOperations(OfflineUserDataJobOperation.newBuilder().setRemoveAll(true))
        .build();
  }

Using this to track the timeouts
OperationFuture<Empty, Empty> future = serviceClient.runOfflineUserDataJobAsync(resourceName);
    future.get(600L, TimeUnit.SECONDS);

The Log they have with the timeouts:
[2021-09-07 08:50:36.078] [Gax-1] INFO  => c.g.a.g.l.r.summary.logAtLevel(RequestLogger.java:157) - SUCCESS REQUEST SUMMARY. Method: google.ads.googleads.v8.services.OfflineUserDataJobService/CreateOfflineUserDataJob, Endpoint: googleads.googleapis.com:443, CustomerID: xxx RequestID: xxx, ResponseCode: OK, Fault: null.
[2021-09-07 08:50:36.082] [main] INFO  => c.r.d.a.a.UserDataServiceClientProxy.getResourceName(UserDataServiceClientProxy.java:130) - Created an offline user data job with resource name: customers/3643036574/offlineUserDataJobs/11912981839
[2021-09-07 08:50:36.361] [Gax-5] INFO  => c.g.a.g.l.r.summary.logAtLevel(RequestLogger.java:157) - SUCCESS REQUEST SUMMARY. Method: google.ads.googleads.v8.services.OfflineUserDataJobService/AddOfflineUserDataJobOperations, Endpoint: googleads.googleapis.com:443, CustomerID: customers/3643036574/offlineUserDataJobs/11912981839, RequestID: DKS-SrSlz_zBCMiBEJkvtw, ResponseCode: OK, Fault: null.
[2021-09-07 08:50:36.362] [main] INFO  => c.r.d.a.a.UserDataServiceClientProxy.addRequest(UserDataServiceClientProxy.java:137) - Successfully added removeAll operations to the offline user data job.
[2021-09-07 08:50:36.363] [main] INFO  => c.r.d.a.a.UserDataServiceClientProxy.addRequest(UserDataServiceClientProxy.java:149) - Successfully added 1 operations to the offline user data job.
[2021-09-07 08:50:37.107] [Gax-6] INFO  => c.g.a.g.l.r.summary.logAtLevel(RequestLogger.java:157) - SUCCESS REQUEST SUMMARY. Method: google.ads.googleads.v8.services.OfflineUserDataJobService/RunOfflineUserDataJob, Endpoint: googleads.googleapis.com:443, CustomerID: cxxx ResponseCode: OK, Fault: null.
[2021-09-07 08:51:22.805] [Gax-14] INFO  => c.g.a.g.l.r.summary.logAtLevel(RequestLogger.java:157) - SUCCESS REQUEST SUMMARY. Method: google.longrunning.Operations/GetOperation, Endpoint: googleads.googleapis.com:443, CustomerID: null, RequestID: xx, ResponseCode: OK, Fault: null.
ApiFutureToListenableFuture@x], function=[com.google.api.core.ApiFutures$GaxFunctionToGuavaFunction@x]]]
        at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:508)
        at com.google.common.util.concurrent.FluentFuture$TrustedFuture.get(FluentFuture.java:93)
        at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:68)
        at com.google.api.gax.longrunning.OperationFutureImpl.get(OperationFutureImpl.java:133)
        at com.rcplatform.data.app.ace.UserDataServiceClientProxy.execute(UserDataServiceClientProxy.java:159)
        at com.rcplatform.data.app.ace.UserDataServiceClientProxy.removeExist(UserDataServiceClientProxy.java:63)
        at com.rcplatform.data.app.ace.DataPushToGoogle.pushDataToGoogle(DataPushToGoogle.java:42)
        at com.rcplatform.data.app.ace.DataPushToGoogle.run(DataPushToGoogle.java:129)
        at com.rcplatform.data.app.ace.DataPushToGoogle.main(DataPushToGoogle.java:165)

Google Ads API Forum Advisor

unread,
Sep 10, 2021, 11:57:42 AM9/10/21
to adwor...@googlegroups.com
Hi Anqi,

Thank you for reaching out to Google Ads API support. Regarding question 1, the UserDataService has a limit of 10 operations and 100 user IDs per request, while the operations collection for each AddOfflineUserDataJobOperationsRequest can contain at most 100,000 elements and to add more send multiple requests with the same job resource_name.

Note that in our customer match considerations it states "For privacy purposes, the user list size will show as zero until the list has at least 1,000 members. After that, the size will be rounded to the two most significant digits. Upload at least 5,000 members to the list to ensure that ads start serving." Our migrating to UserDataService guide and our Customer match guide have more information.

Regarding question 2, we don't have any documentation on changing a list type whether it works or not, nor whether it is supported. You can always just create another list. Feel free to get back to us on this.

Regarding question 3, to remove individuals from list, you can remove individual users using identifiers. Note that in our customer match considerations it states "Do not mix create and remove operations within the same OfflineUserDataJob. Doing so can result in a CONFLICTING_OPERATION error."

Regarding the timeout you encountered, if you have reason to suspect a bug in the Client Library you can get support from the Ads API Java Client Library issue tracker. This forum can check if the API communication is correct. To do this check we will need a request and response log of API communications sent to us privately. Here are logging instructions. The logs we need look similar to our REST endpoint JSON Mappings and have a Request Id

Regards,

Google Logo
Aryeh Baker
Google Ads API Team
 


 

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