Stay organized with collections
Save and categorize content based on your preferences.
The Perl client library is hosted on GitHub, and the package is
available on CPAN.
The library supports Perl version 5.28.1 or greater. To use this library, first
complete the prerequisites.
REST API protocol
Class entities—such as service, resource, enum, and error—in the
Perl client library are generated by parsing the protocol buffer
definitions.
To learn more about how structured data is serialized, refer to the protocol
buffer documentation.
To connect with the Google Ads API, the client library creates an HTTP request in
JSON, sends it to the REST endpoint over HTTP
1.1, deserializes the response as a JSON object, and interprets the results.
[null,null,["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eThe Perl client library for the Google Ads API is available on GitHub and CPAN, supporting Perl version 5.28.1 or greater.\u003c/p\u003e\n"],["\u003cp\u003eThis library uses the JSON REST protocol over HTTP 1.1 since gRPC is not supported with Perl.\u003c/p\u003e\n"],["\u003cp\u003eClient library classes are generated from protocol buffer definitions, enabling structured data serialization.\u003c/p\u003e\n"],["\u003cp\u003eUsage instructions and OAuth2 authentication guides are available in the provided links for various application flows.\u003c/p\u003e\n"]]],[],null,["# The Perl Client Library\n\nThe Perl client library is hosted on [GitHub](https://github.com/googleads/google-ads-perl), and the package is\navailable on [CPAN](//metacpan.org/release/Google-Ads-GoogleAds-Client).\n\nThe library supports Perl version 5.28.1 or greater. To use this library, first\ncomplete the [prerequisites](/google-ads/api/docs/get-started/introduction).\n\nREST API protocol\n-----------------\n\n| **Note:** The Google Ads API exposes both standard JSON REST endpoints and a high-performance [gRPC](//grpc.io) interface. Since Perl is not a [supported\n| language](//grpc.io/docs) in the gRPC stack, this client library is implemented on the JSON REST protocol over HTTP 1.1.\n\nClass entities---such as service, resource, enum, and error---in the\nPerl client library are generated by parsing the [protocol buffer\ndefinitions](//github.com/googleapis/googleapis/tree/master/google/ads/googleads).\nTo learn more about how structured data is serialized, refer to the [protocol\nbuffer documentation](/protocol-buffers/docs/overview).\n\nTo connect with the Google Ads API, the client library creates an HTTP request in\n[JSON](//www.json.org/json-en.html), sends it to the REST endpoint over HTTP\n1.1, deserializes the response as a JSON object, and interprets the results.\n\nUsage\n-----\n\nSee [Getting\nstarted](https://github.com/googleads/google-ads-perl/blob/HEAD/README.md#getting-started) and [Basic\nusage](https://github.com/googleads/google-ads-perl/blob/HEAD/README.md#basic-usage) to start using this\nlibrary.\n\nTo get OAuth2 refresh tokens, refer to the following guides:\n\n- [OAuth desktop application flow](/google-ads/api/docs/client-libs/perl/oauth-desktop)\n- [OAuth web application flow](/google-ads/api/docs/client-libs/perl/oauth-web)\n\nTo make API calls using OAuth2 service accounts, see the [OAuth service\naccount flow](/google-ads/api/docs/client-libs/perl/oauth-service) guide."]]