// the take
An unofficial TypeScript/Node client for the Google Ads API that wraps the gRPC service clients, generates typed resources/enums from the protos, and gives you GAQL querying (query, report, reportStream) plus mutation helpers. Built for devs writing ad management tools, reporting pipelines, or automation on top of Google Ads who don't want to hand-roll protobuf and GAQL plumbing themselves.
Full TypeScript types for every resource, enum, and service are generated from the actual Google protos rather than hand-maintained, so the surface area tracks what the API actually accepts. mutateResources handles atomic multi-entity operations with temporary resource IDs (e.g. create a campaign and its budget in one round trip), which is a real pain point when working against the raw API directly. The hooks system (onQueryStart, onMutationError, onServiceEnd, etc.) gives you a legitimate extension point for caching, request mutation, and centralized error handling instead of wrapping every call yourself. It's maintained by Opteo, who use it in their own production product, which is a better maintenance signal than a typical side-project wrapper.
It's a wrapper around google-ads-node and the generated protos, so any lag or gap in that upstream dependency becomes your problem too, and you're trusting a third party to keep pace with Google's API version cadence. The documented process for bumping to a new Google Ads API version is manual and brittle - update deps, run codegen, patch whatever breaks with @ts-nocheck, hand-verify the diffs - which means version support depends entirely on one team doing that chore correctly and promptly. Error handling parses responses into GoogleAdsFailure but doesn't give you retry/backoff for rate limits or quota errors, so anything touching real ad spend still needs your own resilience layer on top. Major versions are tied to Google Ads API versions, so upgrading when Google deprecates an old version is a forced breaking change on your dependency tree, not an opt-in one.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →