Are Responsive Search Ads Mutable?

443 views
Skip to first unread message

Pete Lavetsky (AdWords API Guru)

unread,
May 1, 2019, 11:06:20 AM5/1/19
to AdWords API and Google Ads API Forum
Hi All,

Basic question: are Responsive Search Ads mutable beyond status? 

Given the documentation here the answer appears to be yes: https://developers.google.com/adwords/api/docs/guides/ad-features

Ad types that support mutability

Only the following ad types are mutable via AdService:


"The error you are getting is because we cannot modify attributes other than status of the ad."

For our own code, we're sending our ResponsiveSearchAd mutations down the same pipeline as ExpandedTextAd as we expect both to be mutable. 

On mutation attempt I receive this error: AdError.AD_TYPE_MISMATCH ... which doesn't even show up in any Google searches

For API Team members, my RequestId is 000587c1f0bde1540a37a7062d07e033 ... I can provide more details upon request

Thanks
Pete

googleadsapi...@google.com

unread,
May 1, 2019, 3:26:19 PM5/1/19
to pete.l...@gmail.com, AdWords API and Google Ads API Forum
Hi Pete, 

That's right. You will be able to update the Responsive Search Ads beyond status. Could you please share the request and response to investigate this further? You could share the details privately via Reply privately to author option.

Regards,
Bharani, Google Ads API Team

googleadsapi...@google.com

unread,
May 2, 2019, 10:47:50 AM5/2/19
to pete.l...@gmail.com, AdWords API and Google Ads API Forum
Hello Pete, 

Thank you for sharing the logs privately. It looks like you're trying to update the Responsive Search Ad. The AdId specified in the request is for an Expanded Text Ad. Could you please recheck the AdId used and let me know if you're having an issue?

F B

unread,
May 2, 2019, 2:14:45 PM5/2/19
to AdWords API and Google Ads API Forum
I am having a similar problem here. However, I am on the Google Ads API.

I am trying to update the headline_3 and description of an expanded text ad and am getting the following error:

 error_code {
    request_error
: IMMUTABLE_FIELD
 
}
  message
: "Field \'ad.expanded_text_ad.description\' cannot be modified by \'UPDATE\' operation."
  location
{
    field_path_elements
{
      field_name
: "operations"
      index
{
     
}
   
}
    field_path_elements
{
      field_name
: "update"
   
}
    field_path_elements
{
      field_name
: "ad"
   
}
    field_path_elements
{
      field_name
: "expanded_text_ad"
   
}
    field_path_elements
{
      field_name
: "description"
   
}
 
}
}
errors
{
  error_code
{
    request_error
: IMMUTABLE_FIELD
 
}
  message
: "Field \'ad.expanded_text_ad.headline_part3\' cannot be modified by \'UPDATE\' operation."
  location
{
    field_path_elements
{
      field_name
: "operations"
      index
{
     
}
   
}
    field_path_elements
{
      field_name
: "update"
   
}
    field_path_elements
{
      field_name
: "ad"
   
}
    field_path_elements
{
      field_name
: "expanded_text_ad"
   
}
    field_path_elements
{
      field_name
: "headline_part3"
   
}
 
}
}



Are Expanded Text Ads and Responsive Search Ads mutable beyond status?

Cheers
Fabian

googleadsapi...@google.com

unread,
May 2, 2019, 5:01:51 PM5/2/19
to fbo...@gmail.com, AdWords API and Google Ads API Forum
Hello, 

@Pete: It is not possible to change the ad type in the UI. Please check this help center article as a reference. 

@Fabian: Yes, you should be able to update the Ad beyond status. Could you please share the request and response logs to take a closer look? You can share the details privately via Reply privately to author option.

Thanks,
Bharani, Google Ads API Team
--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 adwor...@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscribe@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 "AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adwords-api+unsubscribe@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit https://groups.google.com/d/msgid/adwords-api/38821cca-332a-4b43-830b-3d43b11040aa%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

F B

unread,
May 3, 2019, 10:02:51 AM5/3/19
to AdWords API and Google Ads API Forum
Any news on this? I did send the required information a couple of hours ago.

Cheers
Fabian

googleadsapi...@google.com

unread,
May 3, 2019, 2:35:22 PM5/3/19
to fbo...@gmail.com, AdWords API and Google Ads API Forum
Hello,

I am looking into whether ads are mutable in the Google Ads Service yet, and if so how it should work. I will let you know as soon as I find out more.

Regards,
Mike, Google Ads API Team


=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
    https://ads-developers.googleblog.com/search/label/google_ads_api
    https://developers.google.com/adwords/api/community/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

F B

unread,
May 3, 2019, 7:16:31 PM5/3/19
to AdWords API and Google Ads API Forum
Hi Mike,

cool, thank you. I am at a bit of a crossroad now in terms of implementation, as I have to decide to try to use
  1. AdParameter (and set them on KeyWords), or
  2. Mutate the Ads themselve
bths options lend themselves to quite different implementations. I'd prefer to do 2.) but if it doesn't work I will go with one. To not waste any development capacity though, I'd be good to know what is what :)

Cheers
Fabian

F B

unread,
May 6, 2019, 2:47:38 AM5/6/19
to AdWords API and Google Ads API Forum
Morning Mike,

are there any news on this yet?

Cheers
Fabian

On Friday, 3 May 2019 20:35:22 UTC+2, googleadsapi-forumadvisor wrote:

googleadsapi...@google.com

unread,
May 6, 2019, 9:59:26 AM5/6/19
to fbo...@gmail.com, AdWords API and Google Ads API Forum
Hello,

Mutable ads are not yet supported in the Google Ads API, but we are working on it. I apologize for the error in documentation on that page; we're working now to correct it.

Regards,
Mike, Google Ads API Team

=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
    https://ads-developers.googleblog.com/search/label/google_ads_api
    https://developers.google.com/adwords/api/community/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

F B

unread,
May 6, 2019, 11:43:41 AM5/6/19
to AdWords API and Google Ads API Forum
Hi Mike,

thank you for the feedback! Do you have an approximate timeline as to when this functionality will become available?

Cheers
Fabian

googleadsapi...@google.com

unread,
May 6, 2019, 12:18:17 PM5/6/19
to fbo...@gmail.com, AdWords API and Google Ads API Forum
Hello,

We are hoping to have support for this feature by sometime in June, although we cannot commit firmly to any dates yet.

Regards,
Mike, Google Ads API Team


=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
    https://ads-developers.googleblog.com/search/label/google_ads_api
    https://developers.google.com/adwords/api/community/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

Daniele Agosti

unread,
Aug 5, 2019, 9:47:54 AM8/5/19
to AdWords API and Google Ads API Forum
Hi,

are there any news on this?

Regards,

Google Ads API Forum Advisor Prod

unread,
Aug 5, 2019, 2:14:09 PM8/5/19
to d.ago...@gmail.com, adwor...@googlegroups.com
Hi Daniele, 

Yes, the mutability of Ads is introduced in the latest version of the Google Ads API to mutate Ads created using the AdGroupAdService. Could you please give this a try by updating the client libraries and let us know if you encounter any issues?

Thanks,
Bharani, Google Ads API Team

ref:_00D1U1174p._5001UEHss9:ref

Daniele Agosti

unread,
Aug 5, 2019, 11:43:25 PM8/5/19
to Google Ads API Forum Advisor Prod, adwor...@googlegroups.com
Hi Bharani,
Thanks, but related to the lastest version I had the following error:

[Gax-1] WARN shaded.com.google.ads.googleads.lib.request.summary - FAILURE REQUEST SUMMARY. Method: google.ads.googleads.v2.services.CampaignBudgetService/MutateCampaignBudgets, Endpoint: googleads.googleapis.com:443, CustomerID: 2687763678, RequestID: null, ResponseCode: INTERNAL, Fault: Panic! This is a bug!.
[Gax-1] INFO shaded.com.google.ads.googleads.lib.request.detail - FAILURE REQUEST DETAIL.
Request
-------
MethodName: google.ads.googleads.v2.services.CampaignBudgetService/MutateCampaignBudgets
Endpoint: googleads.googleapis.com:443
Headers: {developer-token=REDACTED, login-customer-id=2687763678, x-goog-api-client=gl-java/1.8.0_201 gapic/ gax/ grpc/}
Body: customer_id: "**********"
operations {
  create {
    name {
      value: "Budget #Search ***************"
    }
    amount_micros {
      value: 5000000
    }
    delivery_method: STANDARD
  }
}


Response
--------
Headers: null
Body: null
Failure message: null
Status: Status{code=INTERNAL, description=Panic! This is a bug!, cause=java.lang.IllegalStateException: Could not find policy 'pick_first'. Make sure its implementation is either registered to LoadBalancerRegistry or included in META-INF/services/io.grpc.LoadBalancerProvider from your jar files.
at io.grpc.internal.AutoConfiguredLoadBalancerFactory$AutoConfiguredLoadBalancer.<init>(AutoConfiguredLoadBalancerFactory.java:98)
at io.grpc.internal.AutoConfiguredLoadBalancerFactory.newLoadBalancer(AutoConfiguredLoadBalancerFactory.java:65)
at io.grpc.internal.ManagedChannelImpl.exitIdleMode(ManagedChannelImpl.java:373)
at io.grpc.internal.ManagedChannelImpl$ChannelTransportProvider$1ExitIdleModeForTransport.run(ManagedChannelImpl.java:467)
at io.grpc.SynchronizationContext.drain(SynchronizationContext.java:88)
at io.grpc.SynchronizationContext.execute(SynchronizationContext.java:120)
at io.grpc.internal.ManagedChannelImpl$ChannelTransportProvider.get(ManagedChannelImpl.java:471)
at io.grpc.internal.ClientCallImpl.startInternal(ClientCallImpl.java:255)
at io.grpc.internal.ClientCallImpl.start(ClientCallImpl.java:188)
at io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1.start(CensusTracingModule.java:394)
at io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1.start(CensusStatsModule.java:695)
at io.grpc.ForwardingClientCall.start(ForwardingClientCall.java:32)
at shaded.com.google.api.gax.grpc.GrpcHeaderInterceptor$1.start(GrpcHeaderInterceptor.java:94)
at io.grpc.ForwardingClientCall.start(ForwardingClientCall.java:32)
at shaded.com.google.ads.googleads.lib.logging.LoggingInterceptor$1.start(LoggingInterceptor.java:78)
at io.grpc.stub.ClientCalls.startCall(ClientCalls.java:310)
at io.grpc.stub.ClientCalls.asyncUnaryRequestCall(ClientCalls.java:282)
at io.grpc.stub.ClientCalls.futureUnaryCall(ClientCalls.java:191)
at shaded.com.google.api.gax.grpc.GrpcDirectCallable.futureCall(GrpcDirectCallable.java:58)
at shaded.com.google.api.gax.grpc.GrpcUnaryRequestParamCallable.futureCall(GrpcUnaryRequestParamCallable.java:65)
at shaded.com.google.api.gax.grpc.GrpcExceptionCallable.futureCall(GrpcExceptionCallable.java:64)
at shaded.com.google.api.gax.rpc.UnaryCallable$1.futureCall(UnaryCallable.java:126)
at shaded.com.google.ads.googleads.lib.ExceptionTransformingCallable.futureCall(ExceptionTransformingCallable.java:51)
at shaded.com.google.api.gax.rpc.UnaryCallable$1.futureCall(UnaryCallable.java:126)
at shaded.com.google.api.gax.rpc.UnaryCallable.futureCall(UnaryCallable.java:87)
at shaded.com.google.api.gax.rpc.UnaryCallable.call(UnaryCallable.java:112)
at shaded.com.google.ads.googleads.v2.services.CampaignBudgetServiceClient.mutateCampaignBudgets(CampaignBudgetServiceClient.java:350)
at shaded.com.google.ads.googleads.v2.services.CampaignBudgetServiceClient.mutateCampaignBudgets(CampaignBudgetServiceClient.java:324)
at com.onetag.frontend.handlers.pagecontent.demand.integration.search.Util.addCampaignBudget(Util.java:111)
at com.onetag.frontend.handlers.pagecontent.demand.integration.search.Util.createCampaign(Util.java:147)
at com.onetag.frontend.handlers.pagecontent.demand.integration.search.GoogleManagement.manageRemoteGoogle(GoogleManagement.java:781)
at com.onetag.frontend.handlers.pagecontent.demand.CampaignCreateHandler.lambda$handle$13(CampaignCreateHandler.java:1492)
at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1626)
at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1618)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
}.

Can you help me?
Regards,

Google Ads API Forum Advisor Prod

unread,
Aug 6, 2019, 8:49:05 AM8/6/19
to d.ago...@gmail.com, adwor...@googlegroups.com
Hi Daniele, 

It looks like you opened a new thread for this issue. Please continue the discussion on that thread for better tracking. 
Reply all
Reply to author
Forward
0 new messages