Trust

Privacy Policy

Last updated: October 3, 2026 Extension version: 2.4.1+ Contact / file an issue

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 page describes, in plain language, exactly what data the extension handles, where it goes, and what it does not do. It is the source of truth for our data practices — if anything in the code contradicts what's written here, that's a bug, please file an issue.

1. Summary in one paragraph

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 a small, fixed set of network requests, all to public unauthenticated endpoints, none of which transmit information about you: (a) currency exchange rates from api.frankfurter.app, (b) a periodic read of the public GOG mods page at gog.com/en/mods, and (c), if you leave the "Price comparison table" feature on, a per-game title search against cheapshark.com's public deals API when you open a game page. One further request exists only if you set it up: an optional webhook to an https:// address that you type yourself (section 3.7); it is off, and has no permission, until you do. Two more go to GOG's own public APIs and exist only for features you can switch off: api.gog.com, asked once per game page which games a pack contains (only its numeric product id is sent), and catalog.gog.com, asked for the next page of a catalog list only if you turn on endless scrolling (off by default) — section 3.8. Every request is listed on the Advanced Options page (Privacy & transparency).

2. Data stored on your device

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:

WhatWhereWhy
Your feature toggles (which UI pieces are on, including the refund timer and desktop notifications switches)chrome.storage.syncSo your preferences survive across devices if you are signed into Chrome with sync enabled
Your currency choice, VAT rate, region preset, and selected themechrome.storage.syncSame — small preferences that should travel with you
Tags, per-tag colors, your custom tag ordering, and notes you add to gameschrome.storage.localPersonal organization on the GOG store
Price snapshots from game pages you visitchrome.storage.localPersonal 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 timerchrome.storage.localLocal-only countdown of GOG's 30-day refund window
Dedup log for desktop notifications you've already receivedchrome.storage.localSo we don't fire the same alert twice
Cached list of moddable gameschrome.storage.localTo show the "★ MOD" badge without re-fetching constantly
Cached count of discounted wishlist itemschrome.storage.localTo set the toolbar badge counter
Cached currency exchange rates and the last fetch error (if any)chrome.storage.syncSo 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 togglechrome.storage.syncSo 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.localPer-device UI preference — the dashboard remembers your choice between visits
Your custom theme colors, dyslexia-friendly font choice, and unlocked achievementschrome.storage.sync / chrome.storage.localSame categories as above — preferences sync, personal progress stays local
One optional photo you attach to a game's note in the tag dashboardIndexedDB (a separate local database, not chrome.storage)Images are downscaled on your device before saving; chrome.storage's ~5 MB quota is too small for photos, so this uses its own local storage bucket. Still never leaves your device, and "Reset everything" deletes it too
Per-record "last edited" timestamps for tags, notes, status, purchases and alertschrome.storage.localOnly used to merge changes correctly if you turn on folder sync (below); stamped locally, never sent anywhere by this extension
A browser-held reference to the sync folder you picked, its display name, and when you last syncedIndexedDB (the reference) and chrome.storage.local (name, time)So you don't have to pick the folder again each time. The reference is only usable by this extension, and only for the one folder you chose
Which games the site showed you as already in your library (a list of game slugs and the date first seen)chrome.storage.localRead from the "IN LIBRARY" label and owned status that gog.com itself displays on pages you open — see the note below. Powers hiding owned games, library statistics and the language / "similar games you own" features
Facts a game page states when you open it: ratings, languages, time to beat, tags, release year, the price shown and when its offer ends (for up to 800 games), plus the previous visit's price and ratingchrome.storage.localTo show "what changed since your last visit", the language check and the offer countdown without fetching anything
Games you marked "not interested", saved catalog filter presets, price-drop rules by tag, status-change dates, a monthly "games to finish" goal, and earlier versions of your noteschrome.storage.localYour own library tools, kept on this device
What a pack contains (game ids, slugs and titles), per game page you opened, for 30 dayschrome.storage.localThe answer GOG's product API gave (section 3.8), so the "you already own part of this pack" warning doesn't ask again
The date each game is released on GOG, read from the game page you openedchrome.storage.local (inside the game facts above)Only to build the optional wishlist release-date calendar you can download
A list of the extension's own recent network requests: when, which address and path (never the query), and whether it worked — at most 120 entrieschrome.storage.localSo you can see exactly what it contacted (Advanced Options → Privacy & transparency). Cleared by "Clear the request list" and "Reset everything"
A short list of features that failed on a gog.com page: the feature's name, an error message, the page path without its query, how often and when — at most 40 entrieschrome.storage.localSo the popup can tell you something stopped working after a site change and offer a report you copy or open on GitHub. The report has no web addresses or personal data and is never sent by the extension: "Report on GitHub" only opens a page with it filled in, and you decide whether to submit it
The days you looked at gog.com in a row (last day, current run, best run), and which monthly challenges you completedchrome.storage.localOnly for the streak, the monthly challenges and the achievements in the tag dashboard — local progress, never sent anywhere
Your computer description if you choose to type one (operating system, processor, graphics card)chrome.storage.localCompared as plain text with a game's requirements; never read from your machine automatically and never sent anywhere
Notification rules (quiet hours, a one-summary-a-day mode, thresholds, season radar), notifications held back until their time, and display preferences (calm mode, plain look, palette, text size, panel order and fold state, profiles, the tour-seen flag)chrome.storage.sync / chrome.storage.localSo the extension behaves the way you asked and notifications arrive when you wanted them
The address of your own webhook, and whether it is switched onchrome.storage.localOnly if you set one up (3.7). It is a secret: it is never written to a backup, an export or the sync file, and is ignored if found in one
Which conflicts the last folder sync had to resolve, the timestamps it compared them to, and whether auto-sync and dated backups are switched onchrome.storage.localSo the options page can tell you what was overwritten. Per-browser: never exported or synced

What "already in your library" means. GOG Enhancer does not log in to your GOG account, call GOG's account API or read your order history. gog.com itself marks games you own ("IN LIBRARY") on the pages it shows you. The extension notices that mark while you browse and remembers it locally, so it can hide or dim games you own. It is never sent anywhere by this extension, it is not transmitted to CheapShark or to a webhook, and catalog pages can only ever add to it (a tile without the mark might just mean you are logged out); a refunded game is removed only when you open its own page while logged in. "Reset everything" deletes it.

Folder sync (optional, off until you pick a folder). If you choose a sync folder, the extension reads and writes one file in it, gog-enhancer-sync.json, containing your tags, notes, play status, purchase dates and prices, price alerts and price history (and, if you enable them, dated backup copies of your data in the same folder). It can do so automatically — when you open the tag dashboard and every 30 minutes in the background — but only while your browser still remembers the permission you gave for that folder, and only if the file isn't passphrase-encrypted (the extension never stores your passphrase); otherwise it waits until you press "Sync now". That file is in a folder you control: if that folder is inside Dropbox, OneDrive, Google Drive or similar, that service's own policy then applies to the file. GOG Enhancer itself makes no network request for this and never receives the file. You can encrypt it with a passphrase (AES-256-GCM, on-device; the passphrase is never stored). Without a folder chosen, nothing is written outside the browser.

The address-bar keyword (gog) searches the same local data and sends it nowhere. The calendar (.ics) files (refund deadlines, and the release dates of wishlisted games), the Markdown, Obsidian (.zip) and CSV exports, the weekly digest saved as a web page and the Wrapped, collector and wishlist cards saved as PNG are all built on your device and saved as files you download; nothing is uploaded to make them.

You can wipe all of this at any time from the Advanced Settings page (toolbar icon → Advanced → Reset everything). You can also back it all up to a file — plain JSON, or password-encrypted (AES-256-GCM, entirely on-device) — from the same page.

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.

3. Background jobs and network requests

The extension runs several background jobs on a schedule. Two make network requests (to two destinations only — both public, both unauthenticated); the others are entirely local (the notification-delivery job, the 30-minute folder auto-sync and the weekly digest included). A further, non-scheduled request happens directly from the game-page content script itself — see 3.3 below — and one more exists only if you set up your own webhook (3.7).

3.1 api.frankfurter.app — currency exchange rates

3.2 www.gog.com/en/mods — moddable games list

3.3 www.cheapshark.com — cross-store price comparison

3.4 Wishlist badge refresh — no network request

3.5 Daily refund-window check — no network request

3.6 Sync through a folder you choose — no network request by us

3.7 Your own webhook — optional, off by default, requires your approval

3.8 GOG's own APIs — api.gog.com and catalog.gog.com

4. Permissions we request and why

PermissionWhy we need it
storageTo save your settings, tags, notes, and price history on your device
activeTabWhen you click the toolbar icon, this lets the popup reload the active tab if you press the "Reload tab" button
alarmsTo schedule four periodic background jobs: exchange-rate refresh (12h), mods-catalog refresh (24h), wishlist sale-count badge update (6h), and a once-daily local check for refund windows about to close
notificationsOpt-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, 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
Host permission for https://www.cheapshark.com/*To fetch the cross-store price comparison table shown on game pages (opt-out toggle in the popup)
Optional host permission for https://*/*Optional and never granted at install. Declared as optional_host_permissions so that, only if you enter your own webhook address, the browser can ask you to allow that single origin. Without it nothing can be sent anywhere new.

GOG's own APIs (3.8), folder sync (including its automatic and backup modes) and the address-bar keyword need no additional permission: folder access is granted per folder by you through the browser's folder picker, and the omnibox keyword is declared in the manifest without a permission.

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.

5. Things we do not do

6. Children

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.

7. Changes to this policy

If we change what data the extension handles, this page will be updated and the "Last updated" date at the top will change. Significant changes will also appear in the changelog.

8. Open source

The full source code of this extension is open. You can verify everything this page claims by reading the code on GitHub.

This page mirrors PRIVACY.md in the repository, which is the canonical, version-controlled source — check there for the full edit history.

This privacy policy is written by the developer and reflects current behavior of the extension. It is not legal advice.