A client library is a ready-made package of code, written for one programming language, that lets software talk to a particular application programming interface (API) without building every request by hand. It wraps the raw web calls in functions and objects a developer already understands, and it takes care of the repetitive work underneath: authentication, request formatting, pagination, retries and error handling. Google Cloud's documentation puts the purpose plainly: client libraries "let you access Google Cloud APIs programmatically with less boilerplate code." In advertising, the term usually refers to the official packages that platforms such as Google, Meta and Microsoft publish for their campaign management and reporting APIs.

How a client library works

Every advertising API ultimately receives HTTP requests carrying data in a format such as JSON or protocol buffers. Without a library, a developer must write that plumbing: obtain an OAuth 2.0 access token, attach headers, serialise the body, parse the response and handle errors and partial results.

A client library replaces those steps with a few lines of code in the developer's language. In the Google Ads API's Python library, a script loads credentials, creates a client and calls a service. The library then:

  • Authenticates, refreshing tokens in either user or service account mode, and, in recent versions, through Application Default Credentials.
  • Builds requests from typed objects, so a misspelt field name fails before anything leaves the machine.
  • Pages through results. According to Google's documentation, "the client libraries automatically implement paging when you iterate results."
  • Translates errors into exceptions the language understands, with details about which field or policy caused the failure.

Most modern libraries are generated rather than written by hand. Google defines its advertising APIs in protocol buffers and generates classes from them. Meta's open-source codegen project holds "JSON schema representation of the Graph API endpoints" and templates for five languages, producing its Business SDK for PHP, Python, Node.js, Ruby and Java. Hand-written helpers sit on top: Microsoft's SDKs add a ReportingServiceManager so that, instead of calling SubmitGenerateReport and PollGenerateReport separately, "you download a report using one method."

Who publishes which libraries

As of October 2026, the main advertising platforms take different approaches.

  • Google Ads API: official libraries in Java, .NET, PHP, Python, Ruby and Perl. Google lists community libraries for Node.js and Go but states: "We don't test, contribute to, or maintain these libraries; use them at your own risk."
  • Google Ad Manager: two families. The older SOAP API has libraries in Java, .NET, PHP, Python and Ruby; the newer REST Ad Manager API, still labelled beta, has libraries in Python, Java, .NET, PHP, Ruby and Node.js. The Python package for the REST API, google-ads-admanager, first appeared on PyPI on March 26, 2024.
  • Meta: the Meta Business SDK covers the Marketing API alongside Pages, Business Manager and Instagram APIs. Its major version tracks the Graph API, so facebook_business 26.0.0 followed Graph API v26.0.
  • Microsoft Advertising: SDKs for .NET, Java, PHP and Python, which according to Microsoft include "a proxy to all Bing Ads API web services."
  • Amazon Ads: no general-purpose official library of the same kind. Amazon's PHP client library on GitHub is marked deprecated, with the word "Official" struck through, and community packages such as python-amazon-ad-api fill the gap.

Apple takes a fourth route: its new Ads Platform API comes with generated client libraries whose methods expose rate-limit headers.

Origin and evolution

Google opened the AdWords API on January 27, 2005, describing it as a "free Google AdWords beta feature that enables developers to create computer programs." "Advertisers that try to manage these things by logging in to Google's Web interface are going to get gobbled up," Rob Wilk, then director of search-engine marketing at Avenue A/Razorfish Search, told InformationWeek at the time. Because the AdWords API used SOAP, a verbose XML protocol, client libraries quickly became the practical way in. The current Python package for Google's SOAP-based ad APIs, googleads, was first published to PyPI on March 13, 2014; Microsoft's bingads followed on March 31, 2015, and Facebook's facebookads Marketing API package on September 3, 2014.

The next generation arrived in 2018. Google began testing the Google Ads API in April 2018, offering gRPC and JSON REST access with libraries initially in Java, C# and Ruby. The Python library's first release, for API version 0, landed on August 3, 2018, and its 1.0.0 release for API v1 on March 5, 2019. Facebook replaced facebookads with the Business SDK, first published as facebook_business on April 28, 2018. Google set an April 27, 2022 sunset for the AdWords API, although the end came in stages: according to Google's developer blog, error rates climbed from May 31, 2022 and "all requests to the AdWords API will fail" from July 31, 2022.

Versioning and deprecation

Versioning is where client libraries cause most practical trouble. An advertising API publishes numbered versions, each supported for a fixed period, and each library release supports only some of them.

Google's rules show the pattern. In September 2025 it announced that the Google Ads API would move to monthly releases from January 2026, with four major versions a year, each supported for one year, and non-breaking minor versions in between. When a version is deprecated, Google stops including it in new library releases, although, as PPC Land noted in its coverage of the February 11, 2026 shutdown of v19, "deprecated API versions are still available in previously released client library versions." After the sunset date, those old libraries fail anyway. The Python library's changelog shows the cycle in miniature: version 33.0.0, released September 23, 2026, added v25.2 and removed v21 and v22.

Breaking changes compound this. When v25 arrived on July 22, 2026, two lifecycle goal resources were removed outright, so upgrading the library meant rewriting code, not just changing a version number.

Meta takes a different approach. Since May 2024, an automatic upgrade feature moves calls to deprecated Marketing API versions forward when the endpoint is unaffected, flagging them with an X-Ad-Api-Version-Warning header. Microsoft is changing protocols: it announced on April 1, 2026 that the SOAP API would be retired, with new features only on REST from October 1, 2026 and full deprecation on January 31, 2027. For SDK users, Microsoft's migration guide asks .NET and Java developers below version 13.0.22 to upgrade, and Python and PHP developers to move from the bingads package to a new one, msads.

Why it matters for marketers

Few marketers install a client library, but much of their software does. Bid management tools, reporting connectors, warehouse pipelines and offline conversion uploads typically sit on official libraries. When a library falls behind an API version, dashboards stop refreshing, scheduled jobs fail and new features stay out of reach.

Google's own staff argue for using them. In the Google Ads DevCast series, Cory Liseno said official libraries handle pagination, authentication and timeouts, and "typically include built-in logging." Libraries are also becoming the raw material for AI coding tools: the Google Ads API Developer Assistant 4.0, released August 25, 2026, treats the locally cloned Python library as the authority for schemas and enum definitions.

Limitations and criticisms

The first criticism is upgrade burden. A one-year support window and monthly releases force Google Ads integrations to update dependencies several times a year, and each major library release can break existing code.

Language coverage is uneven. Google does not support Node.js or Go for the Google Ads API, despite heavy use of both, leaving developers to rely on community packages it does not vouch for. Microsoft's PHP SDK lacks the bulk and reporting managers its other SDKs offer.

Libraries also add weight and indirection. A generated library can bundle every service in an API, and its abstractions can obscure what is actually sent over the wire, complicating debugging. Google concedes that the auto-generated code in its older generation of Cloud API libraries "might not be as idiomatic." Finally, libraries carry configuration drift: the Python library's 32.0.0 release on September 9, 2026 dropped its check for a developer token, a day before Google moved Ads API access levels from developer tokens to Google Cloud projects.

  • SDK. A software development kit is broader: libraries plus tools, documentation and samples. Usage overlaps heavily, and Meta and Microsoft call their API wrappers SDKs. In advertising, "SDK" more often means code embedded in an app, such as a tracking SDK or Google's Mobile Ads SDK, whose legacy Android version faces a June 30, 2028 sunset.
  • REST API. The interface itself, defined by URLs, HTTP methods and JSON payloads. A client library is one way of calling it.
  • JavaScript library or framework. Code that runs in a browser, such as a tag library. A library is called by the developer's code, while a framework calls the developer's code; neither necessarily wraps a remote API.
  • API version, sunset and service account. Separate concepts with their own explainers: what a library targets, when it stops working and whom it authenticates as.

Recent developments

The newest layers sit above client libraries rather than replacing them. Meta released an Ads CLI on April 29, 2026, a Python package that handles authentication, pagination and error handling for terminal users and AI agents. Google released an open-source MCP server for the Google Ads API in October 2025, and Amazon's Ads MCP server entered open beta on February 2, 2026. Google also gathered its client libraries and developer tools into one hub on April 6, 2026. Meta's Graph API v26.0 on July 29, 2026 was followed by Business SDK v26.

Timeline

  • January 27, 2005 - Google launches the AdWords API in beta
  • March 13, 2014 - Google's googleads Python library first published to PyPI
  • September 3, 2014 - Facebook's facebookads Marketing API package first published to PyPI
  • March 31, 2015 - Microsoft's bingads Python SDK first published to PyPI
  • April 2018 - Google begins testing the Google Ads API, with Java, C# and Ruby libraries
  • April 28, 2018 - Facebook publishes the Business SDK as facebook_business
  • August 3, 2018 - First google-ads Python library release, for API v0
  • March 5, 2019 - google-ads Python library 1.0.0 released for API v1
  • July 31, 2022 - All AdWords API requests fail, after an announced April 27, 2022 sunset
  • March 26, 2024 - google-ads-admanager Python library for the REST Ad Manager API first published
  • May 2024 - Meta begins automatic upgrades of Marketing API calls
  • June 6, 2025 - Microsoft's msads Python package first published, in beta
  • September 4, 2025 - Google announces monthly Google Ads API releases from January 2026
  • February 11, 2026 - Google Ads API v19 sunsets
  • April 1, 2026 - Microsoft announces SOAP API retirement
  • April 6, 2026 - Google launches its unified ads developer hub
  • April 29, 2026 - Meta releases the Ads CLI
  • July 22, 2026 - Google Ads API v25 released, removing two lifecycle goal resources
  • July 29, 2026 - Meta releases Graph API and Marketing API v26.0
  • September 23, 2026 - google-ads Python library 33.0.0 drops v21 and v22
  • October 1, 2026 - Microsoft Advertising new features available only through REST
  • January 31, 2027 - Microsoft Advertising SOAP API fully deprecated

Summary

Who: Advertising platforms including Google, Meta, Microsoft and Apple publish official client libraries; developers, agencies and software vendors use them, and community maintainers cover gaps such as Node.js for Google Ads and Python for Amazon Ads.

What: A prebuilt code package in a specific programming language that wraps an API, handling authentication, request building, pagination and error handling.

When: Client libraries grew with the AdWords API, launched January 27, 2005; the current generation dates from 2018, and version cycles tightened with Google's monthly releases from January 2026.

Where: In package registries such as PyPI, Maven, NuGet, Composer, RubyGems and npm, and inside the reporting, bidding and data tools built on advertising APIs.

Why: Libraries save developers from rewriting the same plumbing for every API, but tie integrations to version and deprecation schedules that force regular upgrades.