Last updated: May 18, 2026 Extension version: 2.1.1+ Contact: https://github.com/DrummingBird1/GOGEnhancer/issues
GOG Enhancer is an unofficial third-party browser extension that enhances the shopping experience on GOG.com. It is not affiliated with, endorsed by, or sponsored by GOG sp. z o.o. or CD Projekt S.A.
This document describes, in plain language, exactly what data the extension handles, where it goes, and what we do not do. It is the source of truth for our data practices. If anything in the code contradicts what is written here, that is a bug — please file an issue.
GOG Enhancer stores all of your data on your own device. It does not have a
server, does not log anything, does not use analytics, does not show ads, and
does not share your data with anyone. It makes exactly two kinds of network
requests, both to public unauthenticated endpoints, both of which transmit
no information about you: (a) currency exchange rates from
api.frankfurter.app, and (b) a periodic read of the public GOG mods page
at gog.com/en/mods.
All of the following is kept locally on your device using the Chromium storage API. Nothing in this list ever leaves your computer through this extension:
| What | Where | Why |
|---|---|---|
| Your feature toggles (which UI pieces are on, including the refund timer and desktop notifications switches) | chrome.storage.sync |
So your preferences survive across devices if you are signed into Chrome with sync enabled |
| Your currency choice, VAT rate, region preset, and selected theme | chrome.storage.sync |
Same — small preferences that should travel with you |
| Tags, per-tag colors, your custom tag ordering, and notes you add to games | chrome.storage.local |
Personal organization on the GOG store |
| Price snapshots from game pages you visit | chrome.storage.local |
Personal price-history charts (up to 100 snapshots per game; duplicates of the same price are collapsed) |
| Manual purchase dates you enter for the refund-window timer | chrome.storage.local |
Local-only countdown of GOG’s 30-day refund window |
| Dedup log for desktop notifications you’ve already received | chrome.storage.local |
So we don’t fire the same alert twice |
| Cached list of moddable games | chrome.storage.local |
To show the “★ MOD” badge without re-fetching constantly |
| Cached count of discounted wishlist items | chrome.storage.local |
To set the toolbar badge counter |
| Cached currency exchange rates and the last fetch error (if any) | chrome.storage.sync |
So we don’t refetch on every page; the error string lets the popup tell you when the rate refresh failed |
| Onboarding completion flag and the verbose-logging toggle | chrome.storage.sync |
So we don’t show the welcome wizard twice; the debug toggle is yours to flip in Advanced Options |
| Tag-dashboard density preference (comfortable / compact) | chrome.storage.local |
Per-device UI preference — the dashboard remembers your choice between visits |
You can wipe all of this at any time from the Advanced Settings page (toolbar icon → Advanced → Reset everything).
If you sign out of Chrome sync, the chrome.storage.sync portion is removed
from Google’s servers per Google’s Chrome Sync policy, which is independent
of this extension.
The extension runs four background jobs on a schedule. Two make network requests (to two destinations only — both public, both unauthenticated); the other two are entirely local.
api.frankfurter.app — currency exchange ratesGET https://api.frankfurter.app/latest?from=USD&to=ILS,EUR,GBP,PLN. No headers identifying you, no cookies, no referrer linking back to you, no User-Agent uniqueness.www.gog.com/en/mods — moddable games listGET https://www.gog.com/en/mods with credentials: "omit" (no cookies). This is the same request anyone gets when visiting that public page./mods yourself./account/wishlist) and update the toolbar badge text. If the cache is older than 24 hours, the badge is cleared and the tooltip tells you to revisit your wishlist.purchaseLog you’ve entered manually and compare each entry to today’s date. If your opt-in “Desktop notifications” toggle is on AND any entry has 1–2 days left of GOG’s 30-day refund window, we fire a local chrome.notifications.create so you know to decide on the refund. We also dedupe via the local notifLog so the same alert never fires twice.chrome.notifications is local to your machine. No data goes anywhere.| Permission | Why we need it |
|---|---|
storage |
To save your settings, tags, notes, and price history on your device |
activeTab |
When you click the toolbar icon, this lets the popup reload the active tab if you press the “Reload tab” button |
alarms |
To schedule four periodic background jobs: exchange-rate refresh (12 h), mods-catalog refresh (24 h), wishlist sale-count badge update (6 h), and a once-daily local check for refund windows about to close |
notifications |
Opt-in only. When you enable “Desktop notifications” in Advanced Options, the extension can show a system notification when a refund window has 1–2 days left or when new wishlist items go on sale. Uses chrome.notifications, which is local to the browser — nothing is transmitted off-device. Off by default. |
Host permission for https://www.gog.com/* |
To run the content script on GOG pages and to fetch the public /en/mods page in the background |
Host permission for https://api.frankfurter.app/* |
To fetch currency exchange rates |
We do not request any other permissions. In particular we do not request
tabs (full tab access), webRequest (network interception), cookies
(cookie reading), history (browsing history), or <all_urls> host access.
The extension is not directed at children under 13 and does not knowingly process data from anyone under 13. It also does not collect age information.
If we change what data the extension handles, this file will be updated and the version number at the top will change. Significant changes will also appear in the README changelog.
The full source code of this extension is open. You can verify everything this document claims by reading the code.
This privacy policy is written by the developer and reflects current behavior of the extension. It is not legal advice.