# Changelog of Google Keyword Search Volume & Seasonality (`automation_craft/google-keyword-search-volume`) Actor

- **URL**: https://apify.com/automation_craft/google-keyword-search-volume/changelog.md
- **Full Actor documentation**: https://apify.com/automation_craft/google-keyword-search-volume.md

## Changelog

### 0.1

- First build: Google Ads monthly search volumes (48 months), keyword ideas, website keywords, seasonality and planning ranks, Labs insights, AI search volume, Bing volumes, a 30 day memory.
- Keyword ideas can be ordered by CPC (the highest CPC fill the cap); `sortBy` is refused where the source has its own order.
- A charge limit stop names the first list position it held back (`resumeFromPosition`).
- The fast speed is described as what it is: live lookups that skip the queue.

### 0.1, 2026-10-20 (PENDING 497: the chassis fixes of the F-180 build)

- Behaviour change: `mergeCloseVariants` together with related searches, suggestions, autocomplete or ranked keywords is refused, free (`invalid_input`), since those candidates are capped before their figures exist. It still works with your list, Google Ads keyword ideas and Google Ads website keywords.
- Merge close variants holds across the whole run: across lookups (lists over 1,000 keywords), rows from the memory (a repeat run) and a restart; a merged member never counts toward `maxKeywords` or `maxIdeasPerSeed`; a word and its plural with s, es or ies count as one; a free `variants_merged` row names the positions left out.
- Add-on requests of a large batch are admitted on the add-on events already reserved for its rows, so insights, AI search volume and Bing reach every row of a large list; an add-on the run cannot carry is skipped with a free `addon_not_bought` row naming the cause and the remedy (never a stop of the run, never a stop of a later discovery); with more locations or lookups ahead the add-on gives way to them.
- After a restart past 20,000 rows the summary says the plan rows and CSV files cover the first 20,000; a failed CSV write leaves `csvComplete` false.
- The memory is bounded by the size of its stored figures too (32 MB, entries held as ASCII JSON); a full memory makes the run partial.
- A run the platform restarted counts the rows and charged events of the whole run in its summary and reports `partial` (never `complete` or `no_results`), with a note.
- A restart in the middle of a discovery looks up what was found before it (`discovery_cut_by_restart`); a discovery stopped early makes the run partial; a retry after a rate limit waits only while the spend bound carries the wait; a Bing task paid before a restart is read again; rows from the memory name no request language.

### 0.1, 2026-10-21 (PENDING 499: carried from F-180 fix498, Codex round 1 there)

- The summary gains `rowCountsCover` ("the whole run" on every run but one): a run the platform restarted that could not read its dataset back stops (`restart_read_failed`), and its summary now says its row counts cover that attempt only, with a note, instead of presenting zero rows as the whole run. The charged events stay the platform confirmed counts of the whole run.
