Can we use AdService to update only specific parts of an ETA?

44 views
Skip to first unread message

Yang Gao

unread,
Jul 11, 2018, 8:00:49 AM7/11/18
to AdWords API and Google Ads API Forum
Hi, I'm trying to use AdService to update only the final url of some existing ads but I'm getting errors saying that headline and description etc are required. Is there on way to update just specific components of the ad rather than all parts of it? If so, what's the benefit of editing vs just creating an entirely new ad?

Thanks,
Yang

Bharani Cherukuri (AdWords API Team)

unread,
Jul 11, 2018, 10:48:04 AM7/11/18
to AdWords API and Google Ads API Forum
Hello Yang, 

With the previous versions of the API, v201802 and earlier, the Ads were immutable. Using v201806, you will be able to mutate your ads without losing their performance data using AdService. For this, you will have to add all the required fields listed here. Currently, it is not possible to update only specific elements without the required fields. However, I have shared your concern with the team. Please keep an eye on our blog for any updates or announcements related to this feature. 

Thanks,
Bharani, AdWords API Team

Yang Gao

unread,
Jul 12, 2018, 3:14:59 AM7/12/18
to AdWords API and Google Ads API Forum
Ok thanks for the confirmation. Mutate worked once I passed in the required fields. That said, it seems that these changes are not showing up in change history? Is this expected? Do you know if undo is supported for this operation?

Yang

Bharani Cherukuri (AdWords API Team)

unread,
Jul 12, 2018, 2:45:11 PM7/12/18
to AdWords API and Google Ads API Forum
Hello Yang, 

You're right. I was able to replicate the issue that the AdService changes are not showing up in the Change history. I have shared this information with the team. I will keep you posted as soon as I have an update from the team. 

Dorian Kind

unread,
Oct 22, 2018, 5:30:43 AM10/22/18
to AdWords API and Google Ads API Forum
Hi,

let me just stress how important this feature ist. We have a use case where we need to change the URL suffices of all ads in an account. Ideally, we'd download an AD_PERFORMANCE_REPORT to get all ads IDs regardless of type, and then just send SET operations for those IDs with the correct finalUrlSuffix field.
As that's not possible though, we'll need to either keep a mapping of all report fields to all existing fields for all ad types, or use the AdService to first download all ad objects with all fields, modify the finalUrlSuffix field and send a mutate request again. Both of these options seem not very efficient.

Best regards,
Dorian

Teja Makani

unread,
Oct 22, 2018, 12:16:34 PM10/22/18
to AdWords API and Google Ads API Forum
Hello Dorlan,

I am Bharani's colleague, responding on this thread as she is not available. It seems like there is no workaround, you have to pass all the required fields to the AdService. However, I understand your concern and shared it with our team to see whether there is any simplified process. I will get back to you once i get more information on this concern. 

Regards,
Sai Teja, AdWords API Team.

Dorian Kind

unread,
Oct 22, 2018, 12:38:51 PM10/22/18
to AdWords API and Google Ads API Forum
Hi Teja,

thanks for your response and following up with your team.

There's an interesting thing I just realized when playing around with the AdService. No matter which fields you actually specify in the selector, the service will always return a minimum set of fields. To illustrate, if you just list "Id" in your selector, you'll get back the following fields for all Ad objects:

id
url
displayUrl
finalUrls
finalMobileUrls
finalAppUrls
trackingUrlTemplate
finalUrlSuffix
urlCustomParameters
urlData
automated
type
devicePreference
systemManagedEntitySource
Ad.Type
headlinePart1
headlinePart2
headlinePart3
description
description2
path1
path2

Interestingly, up until Ad.Type, these are just the attributes of the base Ad type. But the following ones seem to just apply for ExpandedTextAd.
It gets stranger still, however: If you actually request an ad object of type ExpandedTextAd, then these extra fields are not populated if your selector just lists "Id". You'll need to explicitely include headlinePart1 in the selector to get an actual value for that attribute, even though it's always included in the response. Same goes for headlinePart2 etc. I find this a bit confusing.

Obviously, the service would ideally always return the required/relevant set of attributes for the given ad type of the returned object.

Best regards,
Dorian
Reply all
Reply to author
Forward
0 new messages