Alignment between API version upgrades and client libraries

272 views
Skip to first unread message

Dorian Kind

unread,
Apr 28, 2022, 4:34:20 AM4/28/22
to Google Ads API and AdWords API Forum
Hi,

yesterday, version 10.1 of the Ads API was released, adding support for discovery campaigns. While this feature is very helpful, to me it appears that the coordination with the client library owners wasn't ideal in this case because the new enum values (e.g. for AdvertisingChannelTypeEnum) are not yet included in the protobuf files. See this issue in the PHP client library or this one in the Python client library.
You could argue that introducing new enum values in API responses isn't a breaking change in a strict sense, but our jobs are now failing nevertheless.

The migration from the Adwords API to the Ads API is already putting quite a burden on developer teams—it'd be much appreciated if new features were introduced with a new major version.

Thanks and best regards,
Dorian

Google Ads API Forum Advisor

unread,
Apr 29, 2022, 3:27:27 AM4/29/22
to dor...@webrepublic.ch, adwor...@googlegroups.com
Hi Dorian,

Thank you for your feedback on the enums being unavailable in the client libraries.

However, while the blog states that "The updated client libraries and code examples will be published next week.", I would also recommend reaching out to the client library owners of the ones you are using, for further insight or information on when specifically these would be available in their packages.

Should you then continue to encounter issues with the new version even after the new client libraries are officially released, you may reach back to us privately with the logs so I can raise the issue to the rest of our support team.

Best regards,

Google Logo
Peter Laurence
Google Ads API Team
 


ref:_00D1U1174p._5004Q2aOPQ7:ref

Dorian Kind

unread,
Apr 29, 2022, 4:00:25 AM4/29/22
to Google Ads API Forum Advisor, dor...@webrepublic.ch, adwor...@googlegroups.com
Hi Peter,

Thanks for your reply. I did reach out to the client library owners, and they have also told me that it's standard practice for the libraries to only include support for new API versions some time after those have been deployed.

To be quite honest, I don't understand the approach–what's the upside of publishing a new version of your API when consumers won't be able to use it? Even more so when the upgrade has the potential to disrupt existing workflows? And lastly, why not at least provide an option for API consumers to stay on v10 instead of being auto-upgraded to v10.1 (which, again, is a version they can't even make use of in the first place as the client libraries have no support for it)?

Best,
Dorian
--
Dorian Kind
Director Data & Technologies

Webrepublic AG



Google has announced that Universal Analytics will be replaced with Google Analytics 4 next year. Learn about the important take-aways and recommendations for action.

Google Ads API Forum Advisor

unread,
May 2, 2022, 4:33:52 AM5/2/22
to doria...@webrepublic.com, dor...@webrepublic.ch, adwor...@googlegroups.com

Hi Dorian,

Thanks for getting back to us.

As per this guide, depreciation date is not provided in the v10 version yet and sunset date is set for October/November 2022. We understand the client libraries take a bit of time to get supported once a new API version is launched. Note that the Google Ads API follows semantic versioning where there is a major and a minor version. When a minor version is released, the endpoint that is already in use will automatically be updated. This will not cause your code to break. You can continue to use your existing client libraries. However, could you confirm if your existing client libraries for v10 version are broken and throwing any error? If so, you may provide us with complete logs via reply to author privately, so that I can raise it to my team.

Regards,

Google Logo
Yasar
Google Ads API Team
 


ref:_00D1U1174p._5004Q2aOPQ7:ref

Dorian Kind

unread,
May 2, 2022, 10:18:31 AM5/2/22
to Google Ads API and AdWords API Forum
Hi Yasar,

thanks for getting back. I'm not exactly sure how the depreciation date of v10 is relevant to this discussion. As for your request about examples for client library breakage, here's a simplified Python snippet that might be used for reporting:

client = google.ads.googleads.client.GoogleAdsClient(<CREDENTIALS>, <DEVELOPER_TOKEN>, login_customer_id=<MANGER_ACCOUNT_ID>)
service = client.get_service('GoogleAdsService')
response = service.search(customer_id=<ACCOUNT_ID>, query='SELECT ad_group_ad.ad.type FROM ad_group_ad')
for entry in response:
  print(client.enums.AdTypeEnum.AdType.Name(entry.ad_group_ad.ad.type_))


Using the latest version of the Python client library (15.1.1), this code used to work fine with v10, but will break in v10.1 as the enum values of discovery ads are not known to the client library. I hope this illustrates the challenges we face with the new API version.

Best,
Dorian 

Google Ads API Forum Advisor

unread,
May 3, 2022, 4:52:59 PM5/3/22
to dor...@webrepublic.ch, adwor...@googlegroups.com

Hello,

Thanks for reaching out to the Google Ads API support. As said on this blog -”to use some of the v10.1 features, you will need to upgrade your client libraries and client code. The updated client libraries and code examples will be published next week” and as this blog published earlier on April 27, 2022.

With this, it’s not one week yet. Please try again with v10.1 next week. Hope it will be resolved. Let us know if you have any questions.

Best regards,

Google Logo
Jakeia Sabrina
Google Ads API Team
 

ref:_00D1U1174p._5004Q2aOPQ7:ref

Dorian Kind

unread,
May 3, 2022, 5:14:06 PM5/3/22
to Google Ads API and AdWords API Forum
Hi Jakeia,

I appreciate your continued support, but I don't really see how your answer relates to the issue I've described. I'm well aware that the client libraries will be updated at some point in order to ensure compatibility with the latest API version. What's less clear to me is what to do in the time period after the API upgrade but before the new libraries are released, where existing code—such as the example I've provided above—no longer works.

Naively I would assume that this situation could be avoided by first updating the client libraries and afterwards publishing a new version of the API. But of course I'm not privy to the inner workings of Google and there probably is a valid reason not to do so. It's just frustrating for us to experience broken builds without any recourse apart from waiting for a new client library version to be released...

Best,
Dorian

Google Ads API Forum Advisor

unread,
May 4, 2022, 9:57:56 PM5/4/22
to dor...@webrepublic.ch, adwor...@googlegroups.com
Hi Dorian,

Thank you for providing more details to your concern.

I understand that you are having an issue with your client library as the new version seems not compatible with the new Google Ads API version. However, this concern is client library related and our team would not be able to provide further comments as it is outside of our scope already. With this, I would suggest raising your concern and suggestion to this Github tracker to know if there is a workaround with your current client library version or if there are any updates about the client library version that is compatible with the newest API version.

Regards,
Google Logo
Ernie John
Google Ads API Team
 


ref:_00D1U1174p._5004Q2aOPQ7:ref

Dorian Kind

unread,
May 5, 2022, 3:43:49 AM5/5/22
to Google Ads API and AdWords API Forum
Hi Ernie,

Thanks for your continued support. I do agree that further discussion will most likely not be fruitful.

> With this, I would suggest raising your concern and suggestion to this Github tracker to know if there is a workaround with your current client library version or if there are any updates about the client library version that is compatible with the newest API version.

I did that, believe it or not. There was no workaround and the solution is to wait for a new version of the client library (which has been published since). 

Best,
Dorian

Google Ads API Forum Advisor

unread,
May 6, 2022, 4:17:12 AM5/6/22
to dor...@webrepublic.ch, adwor...@googlegroups.com
Hi Dorian,

Thank you for the reply. I'm also a member of the Google Ads API team and allow me to assist you here. Could you please provide the link of the github ticket number that you raised so that we can discuss this to the rest of my team?

Best regards,
Google Logo
Jinky
Google Ads API Team
 


ref:_00D1U1174p._5004Q2aOPQ7:ref

Dorian Kind

unread,
May 6, 2022, 4:23:14 AM5/6/22
to Google Ads API and AdWords API Forum
Hi Jinky,

sure thing! Here's my issue, which was specifically about the AdTypeEnums. There's others, too, such as this one about the missing AdvertisingChannelTypeEnum.

Best,
Dorian

Google Ads API Forum Advisor

unread,
May 9, 2022, 10:54:13 AM5/9/22
to dor...@webrepublic.ch, adwor...@googlegroups.com
Hi Dorin,

Thank you for reaching out to the Google Ads API support team.

With regards to your concern, you need to wait for new feature. If you have any further question for client library, you should seek further assistance with the Python client library owners, as they will be able to help your code specific inquiry.

Thanks,
Google Logo
Nirmita
Google Ads API Team
 


ref:_00D1U1174p._5004Q2aOPQ7:ref

Dorian Kind

unread,
May 9, 2022, 11:38:04 AM5/9/22
to Google Ads API and AdWords API Forum
Hi Nirmita,

I think there's a bit of a disconnect between what I'm trying to convey and the impulse of API advisors on this board to fix every issue operationally.

Fundamentally, I'm wondering why client libraries are updated after a new version of the Ads API is released instead of simultaneously or even before. Understanding this might help in dealing with the issues that pop up during the in-between period or at the very least reduce the resulting frustration. I am well aware that I can open issues on the library's GH page or just wait for a new version to be published—but again, this doesn't address the question.

I do appreciate the efforts to help, but I don't really see any insight to be gained from this thread.

Thanks & best regards,
Dorian 
Reply all
Reply to author
Forward
0 new messages