From 8c112913968612b0e3c2a6adb4adaed7dfe935a3 Mon Sep 17 00:00:00 2001 From: 4Ventures <4ventures@MacBook-Air-de-4Ventures.local> Date: Wed, 23 Sep 2026 18:40:39 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20paginar=20asset=5Fgroup=5Fasset=20de=20G?= =?UTF-8?q?oogle=20para=20no=20perder=20v=C3=ADdeos/im=C3=A1genes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- src/lib/ad-creatives-google.ts | 35 ++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/lib/ad-creatives-google.ts b/src/lib/ad-creatives-google.ts index 6c30c0d..2f51c85 100644 --- a/src/lib/ad-creatives-google.ts +++ b/src/lib/ad-creatives-google.ts @@ -146,17 +146,32 @@ async function searchGoogle( ]; let lastErr = ''; for (const headers of attempts) { - const r = await fetch(`${GADS_API}/customers/${cid}/googleAds:search`, { - method: 'POST', - headers, - body: JSON.stringify({ query }), - cache: 'no-store', - }); - if (r.ok) { - const j = (await r.json()) as { results?: GaqlRow[] }; - return j.results || []; + const out: GaqlRow[] = []; + let pageToken: string | undefined; + let ok = false; + for (let page = 0; page < 20; page++) { + const body: { query: string; pageToken?: string } = { query }; + if (pageToken) body.pageToken = pageToken; + const r = await fetch(`${GADS_API}/customers/${cid}/googleAds:search`, { + method: 'POST', + headers, + body: JSON.stringify(body), + cache: 'no-store', + }); + if (!r.ok) { + lastErr = await r.text(); + break; + } + ok = true; + const j = (await r.json()) as { + results?: GaqlRow[]; + nextPageToken?: string; + }; + out.push(...(j.results || [])); + pageToken = j.nextPageToken; + if (!pageToken) break; } - lastErr = await r.text(); + if (ok) return out; } throw new Error(`Google Ads ${cid}: ${lastErr.slice(0, 220)}`); }