PipedreamHQ / PipedreamHQ/pipedream

google_ads: report actions truncate results and send invalid field names

Open
#21,962 1 comment 0 reactions 0 assignees View on GitHub
action bug triaged
Dominant language
JavaScript
Stars
11.7k
Forks
5.8k
Avg merge
3d 10h
Merged PRs (30d)
102

Description

## Problem

1. `Segments` defaults to `segments.date`, so the row count multiplies by the number of days in the range. Ordinary requests return very large result sets.
2. Results stop at 10,000 rows because `page_size` is never set and the response `nextPageToken` is discarded. Larger reports come back incomplete with no error shown. Users narrow the date range and run the report again, and every attempt uses quota.
3. `Fields`, `Segments` and `Metrics` accept free text and go straight into the GAQL `SELECT` without checking. Invalid names are rejected with a 400, and rejected requests still count against the daily quota. This is worse with AI agents, which guess field names and retry.

Affects Create Report, Create Campaign Report, Create Ad Report, Create Ad Group Report and Create Customer Report.

## What's needed

- Date segmentation off by default rather than on.
- Unknown field, segment and metric names rejected before a request is sent.
- A single report request returns complete results.

## Notes

- `SearchStream` counts as one operation regardless of response size and has no row cap: https://developers.google.com/google-ads/api/rest/common/search
- Paging behaviour and the 10,000 row default: https://developers.google.com/google-ads/api/docs/reporting/paging
- Failed requests that return a Google Ads failure still count against the daily quota: https://developers.google.com/google-ads/api/docs/best-practices/quotas
- The prefixing bug behind some invalid field names is tracked separately in #21961.
- Context: quota exhaustion reported in #19945, #21509, #21554, #21782, #21926.

Contributor guide

Open the contributing guide

Research direction

Start by locating the Create Report, Create Campaign Report, Create Ad Report, Create Ad Group Report, and Create Customer Report entry points. Trace how each builds and sends its GAQL request, then verify date segmentation defaults, field validation, and complete result retrieval against the linked Google Ads documentation; done means one request returns complete results and rejects unknown names before sending.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
api
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
62/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.