# Changelog of Google Trends Scraper (`searchapi/google-trends-scraper`) Actor

- **URL**: https://apify.com/searchapi/google-trends-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/searchapi/google-trends-scraper.md

## Changelog

All notable changes to the Google Trends Scraper are documented here.

### \[3.0.1] - 2026-09-23

#### Changed

- Added the numbered Google Trends rank to region records and the dataset overview, matching the live subregion panel.
- Removed the debug-only public input and its conditional widget-structure logging.
- Dropped result rows without a source-backed title instead of filling the title with the search query.
- Documented the four widget types supported by runtime validation and corrected the Actor description.

### \[3.0.0] - 2026-08-29

#### Changed

- Replaced ordinary Google web-result scraping with API-first extraction from Google Trends Explore widgets.
- Added real interest-over-time, interest-by-region, related-query, and related-topic modes with a validated 38-field normalized contract.
- Added single and batch queries, stable query-aware IDs, global limits, fair query/type quotas, evenly sampled timelines, and top/rising query coverage.
- Added country, locale, preset/custom dates, category, Web/Image/News/Shopping/YouTube, concurrency, retry, timeout, timezone, and proxy controls.
- Added status/content-type/XSSI JSON validation, cookie-preserving sessions, bounded backoff, true empty-result handling, and recursive empty-value omission.
- Removed the incorrect web-search fallback that labeled unrelated Google results as Trends data, the credential-file-reading proxy helper, and unused browser/DOM modules.
- Migrated to the smaller Node.js Actor image with exact dependencies and zero known production vulnerabilities.

#### Verified

- Local direct execution fails cleanly on Google HTTP 429 and stores no placeholder data.
- `GOOGLE_SERP` is explicitly unsupported by the Trends widget endpoints (HTTP 400); US Residential is the verified Apify Cloud transport.
- Cloud single, batch, filtered/custom-date, and true empty-topic runs complete within the requested time budget and datasets are inspected directly.

### \[2.0.0] - 2026-06-12

#### Added

- **Schema expanded** from 22 to **40 fields**.
- **New fields**: `type`, `resultType`, `page`, `searchQuery`, `term`, `title`, `url`, `link`, `value`, `valueText`, `percentage`, `rank`, `delta`, `growthRate`, `interestOverTime`, `interestByRegion`, `relatedQueries`, `relatedTopics`, `relatedArticles`, `suggestions`, `startDate`, `endDate`, `timeRange`, `geo`, `category`, `searchType`, `active`, `isBreakout`, `isNew`, `trafficSource`, `imageUrl`, `thumbnail`, `language`, `country`.
- **New view**: `fullDetails` — all 40 fields.
- INPUT.json retained (existing values preserved).

### \[1.0.0] - 2025-05-20

#### Added

- Initial production release of the Google Trends Scraper.
- `PlaywrightCrawler`-based architecture using Chrome.
- Modular project structure.
- `validate-datasets.js` for local dataset output validation.
- `Dockerfile` using `apify/actor-node-playwright-chrome` image.
- `README.md` with full Apify usage guide.
