npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@taskmagic/apps-google-ads

v0.0.1

Published

Reporting integration for the [Google Ads API](https://developers.google.com/google-ads/api).

Readme

Google Ads

Reporting integration for the Google Ads API.

Bring-your-own credentials

There is no one-click connection, and that's not an oversight. The Google Ads API requires a developer token that Google issues per Google Ads manager account after a review — TaskMagic's token can't be used on your behalf. So the connection collects five values:

  1. Developer token — manager (MCC) account → Tools → API Center
  2. Client ID / Client Secret — an OAuth 2.0 Desktop app client in a Google Cloud project with the Google Ads API enabled
  3. Refresh token — for that client, with the https://www.googleapis.com/auth/adwords scope
  4. Customer ID — the account to work with, digits only
  5. Login Customer ID — only when reaching the account through a manager

A brand-new developer token has test-account access only. If calls fail with PERMISSION_DENIED while everything looks right, that's almost always why — you have to apply to Google for Basic access.

The API version is a connection field

Google sunsets Google Ads API versions on a schedule. Today v21 and v20 answer; v19 and older already return 404. Pinning a version in code guarantees the piece breaks on a date we don't control, so it's editable and defaults to v21.

Actions

List Campaigns, Get Campaign Metrics, Run GAQL Query, List Accessible Accounts.

Run GAQL Query is the escape hatch — any Google Ads Query Language statement, e.g. SELECT campaign.id, metrics.clicks FROM campaign WHERE segments.date DURING LAST_7_DAYS.

Results follow nextPageToken up to a page cap and report truncated, so you can tell a complete answer from a partial one rather than silently getting page one.

Read-only, deliberately

Everything here is a GAQL search. Mutating campaigns, budgets or bids through a flow moves real ad spend, and the right first version is reporting rather than a way for a misconfigured trigger to change a budget. Mutation actions can be added later as a considered decision.