Marken- und Wettbewerber-Erwähnungen mit der Google News API tracken
Eine Reihe von Suchbegriffen nach Zeitplan abfragen, per Artikel-Link deduplizieren, und nur sehen, was sich seit dem letzten Lauf geändert hat. Getestet an einer echten Antwort im August 2026.

Du willst wissen, wenn dein Unternehmen, dein Produkt oder ein Wettbewerber in den News erwähnt wird. Google Alerts macht schon etwas Ähnliches, aber es kommt als E-Mail nach Googles eigenem Zeitplan, vermischt in deinem Posteingang mit jedem anderen Alert, den du laufen hast, und es gibt nichts, woran du ein Skript andocken könntest. Was du eigentlich willst, ist eine Query, die du selbst kontrollierst, nach deinem eigenen Zeitplan, die dir nur zeigt, was sich seit deiner letzten Prüfung geändert hat.
Was /v1/news liefert
Schicke eine query an /v1/news und du bekommst news_results zurück, eine Liste von Artikeln mit title, snippet, source (der Name der Publikation, keine Domain), url und einem Feld namens lastUpdated. Wir haben das beim Schreiben dieses Posts gegen die Phrase “web scraping api” laufen lassen, im August 2026, und 10 Artikel für 5 Credits zurückbekommen, von Quellen wie 24-7 Press Release Newswire, HackerNoon und KDnuggets. In deinem eigenen Fall ist die Query stattdessen dein Markenname, dein Produktname oder der Name eines Wettbewerbers.
Die Falle bei „seit dem letzten Lauf”
Der naheliegende Weg, neue Artikel zu finden, ist, lastUpdated mit dem Zeitpunkt der letzten Abfrage zu vergleichen. Bau es nicht so. In unserem Sample kam lastUpdated für einen Artikel als “2 days ago” zurück und für einen anderen als “May 12, 2026”, in derselben Antwort. Google News mischt relative und absolute Formate, je nachdem, wie aktuell ein Artikel ist, und “2 days ago” korrekt zu parsen bedeutet, genau zu wissen, wann die Anfrage lief, in welcher Zeitzone, und diese Rechnung jedes Mal neu zu machen.
Das Feld url funktioniert besser als Dedupe-Key, auch wenn es nicht der reine Link des Verlags ist. Es ist ein relativer Google-Redirect-Pfad, der mit /goto?url= beginnt, nichts, was du einem Leser so zeigen würdest, aber jeder Artikel in der Antwort bekommt einen anderen, und genau das braucht ein Dedupe-Key. Halte auf der Festplatte eine Menge von url-Werten, die du schon gesehen hast, und behandle alles, was nicht in dieser Menge ist, als neu.
Als geplanten Job abfragen
import json
import requests
API_KEY = "faf_live_..." # dein FastAF-Key
SEEN_FILE = "seen_articles.json"
def fetch_news(query):
resp = requests.get(
"https://api.fastaf.co/v1/news",
params={"query": query, "results": 10},
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=60,
)
resp.raise_for_status()
return resp.json()["news_results"]
def load_seen():
try:
with open(SEEN_FILE) as f:
return set(json.load(f))
except FileNotFoundError:
return set()
def save_seen(seen):
with open(SEEN_FILE, "w") as f:
json.dump(sorted(seen), f)
seen = load_seen()
new_articles = []
for term in ["Acme Robotics", "Acme Robotics recall"]:
for article in fetch_news(term):
link = article["url"]
if link in seen:
continue
seen.add(link)
new_articles.append((term, article))
save_seen(seen)
for term, a in new_articles:
print(f'[{term}] {a["source"]} ({a["lastUpdated"]}): {a["title"]}')
Lass das per Cron laufen, oder mit welchem Scheduler auch immer du schon arbeitest, einmal die Stunde oder einmal am Tag. Der erste Lauf gibt alles aus, weil seen_articles.json noch nicht existiert. Jeder Lauf danach gibt nur Artikel aus, deren url noch nicht in der Datei stand: kein erneutes Lesen der gestrigen Erwähnungen, keine Digest-Mail zum Überfliegen, nur das, was neu ist.
Was das nicht leistet
Das fragt Googles News-Index ab, keine Firehose von allem, was irgendwo veröffentlicht wird. Wenn ein Medium nicht von Google News indexiert ist, taucht eine Erwähnung dort nicht auf, egal wie oft du abfragst, weil der Endpoint denselben Index sieht, den auch ein Mensch auf der Ergebnisseite sehen würde. Häufigeres Abfragen verkleinert die Lücke zwischen Veröffentlichung und Googles Indexierung, es fügt aber keine Quellen hinzu, die Google News nicht ohnehin schon hat.
Was es kostet
Ein Call kostet 5 Credits. Drei Begriffe im Stundenabstand zu beobachten sind 72 Calls am Tag, 360 Credits am Tag, etwa 10.800 Credits im Monat: Die 20.000 Credits des $10-Starter-Pakets reichen dafür fast zwei Monate, die 75.000 des $29-Growth-Pakets fast sieben. Fehlgeschlagene Anfragen werden nicht berechnet, ein paar falsche Suchbegriffe kosten also nichts.
Starte mit dem Free Tier, 500 Credits ohne Karte, das sind 100 Calls: genug, um ein paar Begriffe einen Tag lang laufen zu lassen und zu sehen, wie dein eigener Markt in Google News tatsächlich aussieht, bevor du dich auf einen Zeitplan festlegst.