# Changelog of Brand & News Monitor 📰 (Google News alerts to Slack & API) (`tagadanar/brand-news-monitor`) Actor

- **URL**: https://apify.com/tagadanar/brand-news-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/tagadanar/brand-news-monitor.md

## Changelog

### 2026-10-01

- **A short run now accounts for itself.** The final status names a source that
  failed or was rate-limited (it used to be a log line only), and says where the
  items it read went: how many did not have your keyword in the title, how many
  were older than the day limit, how many were duplicates. A source that did not
  answer is never worded as "nothing found".
- **The Google News fallback now works.** When Google News refuses or
  rate-limits a search, the run retries it through a proxy, on a different exit
  each time. That retry was broken (it failed before sending anything), so a
  refused search was simply reported as failed. If the retry does not get
  through either, the final status still names the original refusal.
- A Google News request that gets no answer is now cut off after about 20
  seconds and retried, instead of being able to hang.

### 2026-09-08

- **A run can no longer spend more time than it has.** The retry ladder booked
  its worst case up front, under loops with no ceiling, so a slow or wobbling
  source could push the run past the platform timeout. A run killed that way
  loses its own closing message entirely.
- Every request now plans against the time actually left, and a backoff that
  would outlive the run is not slept.
- A run that hits its time limit now delivers everything it did read and says
  so plainly, naming the searches it never reached — rather than reporting an
  empty result, which is a claim it has not earned.

### 2026-09-02

- The run now ends with a status message in the Console (the "Done" line was log-only, so a run could not explain itself in the Store).

### 2026-07-13

- README: pricing table now discloses the $0.001 actor-start fee (previously said "no minimum", which was stale after the 07-12 floor raise).

### 2026-07-12

- Invalid input no longer fails the run. The run now finishes cleanly with a clear explanation in its status message, so a typo or an empty list is easy to spot and fix.
- List inputs now accept datasets piped straight from another scraper: entries
  that are objects are read through their usual key names (url/link,
  query/keyword/title, name/company and similar) instead of being rejected.

### 2026-07-11

- Billing: on paid runs every row is billed before it is written, and a run
  now stops visibly if billing fails instead of continuing unbilled.

### 2026-07-09

- Input is now tolerant of common shapes that previously failed the run: a bare
  string / bare object / delimited string for "keywords" or "competitors" is
  coerced into a list instead of erroring. Empty input still errors.

### 2026-07-07

- Initial public release on Apify Store.
- Monitor keywords and competitor names across Google News, GDELT and Hacker News.
- Strict or loose keyword matching, age filter, competitor tagging, and cross-source deduplication.
- Monitor mode remembers previously reported mentions and posts new ones to Slack or any webhook.
- No login, no API key, no browser required.
