Cookie and Analytics Policy
Effective Date: 19 September 2026
This page lists what Finx Academy stores in your browser and what it measures. It names the actual keys and the actual events rather than categories, so you can check it against what the site does.
Analytics currently starts automatically without an Accept prompt. Existing opt-outs are respected. You can turn analytics off at any time using the controls below. This choice is shared by the main site and blog.
Google Analytics measurement
When analytics is on, Google Analytics measures visits to the website and blog, including diagnostic, sign-in, signup, course, lesson, offer and checkout pages, and clicks from articles to the free test. It receives fixed page labels and route templates, the referring website (without its path or query), approved campaign labels, and anonymous session and pageview identifiers. Google also processes browser/device information and approximate location derived from the connection. Device category and browser width are measured separately. Certificate, public-profile, shared-result and embedded spreadsheet pages are excluded. Names, email addresses, workbook cells, private document titles, raw course or lesson route IDs, checkout references, query strings and fragments are not included in the page events we send. Recognized test traffic is excluded from Google.
While analytics is on, our server also reports registration and login, diagnostic interactions and results, exercise submissions and passes, offer views and checkout outcomes. These events may include opaque account, attempt, submission, course, lesson and order identifiers, scores, completion reasons and elapsed time. Confirmed purchases and refunds use the order reference, product, currency and confirmed transaction amounts. They do not include card details, names, email addresses or workbook contents. Google's browser client and session identifiers connect eligible server events to the visit where they happened.
The Google script is not loaded when analytics is off. Advertising consent, Google signals, ad personalization and enhanced measurement are off. Google Analytics uses _ga and _ga_* first-party cookies, configured for up to one year without renewal on each visit. Turning analytics off stops further measurement and removes these cookies. Previously received data is not automatically deleted; contact support for a privacy request. Google may process data outside your country. See how Google uses information from partner sites.
Optional Meta advertising measurement
Meta Pixel starts only after you separately allow advertising measurement. Analytics acceptance does not enable it. Meta receives visits to public home/pricing pages, checkout starts and purchases confirmed by our payment server. Purchase events include the paid amount, currency and a one-way event identifier. Meta also receives browser/device and connection information and may use advertising cookies to attribute activity to ads. We do not enable automatic advanced matching or send your name, email, workbook contents or payment-card details.
The choice is stored in finx_meta_consent_v1. Meta may set _fbp and _fbc cookies (normally up to 90 days). A finx_meta_purchase hash prevents repeat purchase events after refresh. A same-tab finx_checkout_return reference restores the confirmation page for up to 24 hours; that reference is removed from the URL before Pixel loads and is not sent in our event data. Declining stops future events and clears our Meta cookies; previously received data is not automatically deleted. Ad blockers, consent choices and buyers not returning from the payment provider can limit reporting. Meta may process data outside your country. See Meta’s Privacy Policy.
Meta advertising measurement: off.
Optional session replay
If enabled, a small sample of visitors who accept analytics may have interactions on the public home page recorded in PostHog. Text is masked, and forms, images, inputs, embedded frames and spreadsheets are blocked. Network payloads and console logs are excluded. Recording stops when you leave that page or withdraw analytics permission; pages containing query parameters or fragments are excluded.
What is stored in your browser
Preferences and anonymous progress identifiers use local storage. Sign-in and referral attribution use cookies. Advertising cookies and the separate Meta choice are described above; account and workbook storage are not sent in our Meta event data.
| Key | What it is | Set when |
|---|---|---|
| finx_test_attempt / finx_test_draft | The current timed-test identifier, question and workbook answers. They restore your work after a refresh in this browser and are removed when the test is submitted. The server controls the deadline. | You take the timed test |
| finx_exercise_draft:* | A local copy of unsaved lesson work. Removed after a confirmed save or completion; drafts older than seven days are not restored. | A lesson save starts |
| finx_submission:* | A pending submission identifier and digest of its workbook, held in session storage so a failed request can be retried without grading it twice. Removed when a result is received. The digest does not contain the workbook cells. | You submit a lesson exercise |
| Session cookie | Keeps you signed in. Strictly necessary — the site cannot work without it and it is not covered by consent. | You sign in |
| Google sign-in state | Temporary sign-in state associates the requesting browser with its Google callback and expires within ten minutes. The Google redirect receives an opaque state value; your anonymous progress identifier remains in the protected Finx sign-in flow. | You choose Google sign-in |
| finx_anonymous_id | A random identifier that keeps your anonymous work together. While analytics is on, a one-way digest links your measured activity; the original identifier is never sent to PostHog. | You use the site |
| finx_ref | The last affiliate referral, retained for 30 days to attribute a purchase. | You follow an affiliate link |
| finx_anonymous_claimed | A note that the work above has already been moved to your account, so we do not ask again. | You sign in |
| finx_analytics_consent | Your explicit analytics choice, shared by the blog and app. The companion finx_analytics_consent_version records its scope. Existing declines remain in effect. Automatic analytics does not write an acceptance on your behalf. | You change your analytics preference |
| finx_measurement_preferences | Your versioned analytics choice and the time it changed. Advertising storage, user-data sharing and personalization remain denied. | You change your analytics preference |
| finx_analytics_session | An anonymous measurement session with the entry device category and browser width. It expires after 30 minutes of inactivity or 24 hours and is cleared when analytics is off. | Analytics is on |
What is measured while analytics is on
While analytics is on, the site records the events below through PostHog, hosted in the European Union. If you turn analytics off, future optional measurement stops. If the browser cannot read your preference, analytics stays off.
| Event | What it means |
|---|---|
| landing_viewed | A page was viewed; query strings and personal identifiers are removed. |
| $feature_flag_called | You saw a version of an experience being tested. |
| test_started | You began a timed test. |
| test_interacted / test_completed | You changed an answer or finalized a test, including a timeout. Empty timeouts are distinguished from attempts with answer input. |
| test_result_viewed / test_breakdown_unlocked / recommended_lesson_clicked | You viewed your result, unlocked its breakdown or followed a recommended lesson. Shared-result viewers are distinguished from the owner. |
| registration_started / login_completed | You opened registration or completed a sign-in session. |
| signup / email_captured | You registered or requested a resource. |
| exercise_started / exercise_interacted / exercise_validated / exercise_passed | An exercise opened, you changed an answer, or you submitted or first passed an exercise. Opening an exercise is distinct from deliberate practice. |
| lesson_completed / course_completed | You completed the required exercises in a version of a lesson or course. |
| ai_hint_requested | You requested learning help; the conversation is not included. |
| checkout_requested / checkout_failed / checkout_started / checkout_handoff / purchase_completed | You requested checkout, received a failure, obtained a checkout session, left for the provider or completed a confirmed purchase. |
| refund_requested / refund_completed / payment_chargeback | A refund was requested, confirmed, or a chargeback occurred. |
| offer_viewed / paywall_viewed | An offer card became visible or an access restriction was shown to you. |
| access_granted / access_revoked | Course access was granted or revoked. Complimentary access is distinct from a purchase. |
| ai_response_rated | You rated an answer from the AI companion. |
| exercise_viewed / first_cell_edited / exercise_checked / first_win_viewed / save_started / work_claimed | An exercise was shown, you made your first edit, you checked your answer, the result panel was shown, you started saving your work to an account, or work done before signing in moved into your account. |
| followed / unfollowed | You followed or unfollowed someone, recorded by our server when it happened, with where you pressed Follow (a profile, a list or a suggestion). It never names the person you followed. |
| message_sent / message_request_accepted | You sent a message, or accepted a message request, recorded by our server when it happened, with whether it started a conversation and whether it was a request. It never includes what you wrote or who you wrote to. |
| profile_viewed / profile_cta_clicked | You opened a public learning profile, or used one of its buttons. It records whether you were signed out, signed in or the profile’s owner, and the site or campaign label you arrived from, never the full address. |
| leaderboard_viewed | You looked at a leaderboard, and which one. |
| feed_viewed / congrats_sent | You opened your feed, with whether it showed updates or suggestions and how many updates; or you congratulated someone, recorded by our server when it happened, with the kind of update. It never names the people involved. |
| comment_posted / comment_deleted | You posted a comment or a reply, or deleted one, recorded by our server when it happened, with where it was (a feed update or a model) and whether it was a reply or who deleted it. It never contains what you wrote or names anyone else. |
| model_published / model_copied | You published one of your models, or opened a copy of someone’s published model, recorded by our server when it happened, with the kind of model, its size and whether its page can appear in search. It never contains the title, the description or anything in the workbook. |
Each carries whether you are signed in and whether you hold a subscription, limited campaign labels, relevant exercise or order identifiers, and any experiment version you saw. On signup, your permitted anonymous activity is associated with your account. Your name, your email and the contents of your spreadsheets are never sent.
What is recorded whatever you choose
Some things are recorded because running the service requires them, not because you agreed to analytics: that an account was created, that an exercise was started and graded, that a purchase completed or a refund was requested. These are records of what we did for you, kept against your account, and are covered by the Privacy Policy rather than by this one. These operational records stay available when analytics is off; optional PostHog and Google exports stop when analytics is off. Restoring analytics does not resend events that were suppressed while it was off.
Changing your mind
Optional analytics: off.
Use the control above to stop future analytics exports, including queued events. Clearing browser data also resets your choice to the current default and cannot identify an earlier browser record to withdraw it remotely. Turning analytics off costs you nothing: every exercise, every lesson and every purchase works identically either way.
Course news is sent only if you tick the box when you give us your address, and every one of those emails carries an unsubscribe link. Receipts, sign-in links and password resets are sent because you asked for them and are not affected by that choice.