Skip to main content

Cookie Policy

Last updated: August 21, 2026

Cookies and Similar Technologies

A cookie is a small file a website asks your browser to keep and sends back on later requests. It is not the only way a site can store something on your device, and it is not the one NewWave Fluent uses.

NewWave Fluent does not set any cookies of its own. The only cookies you will find on this domain are placed by Stripe’s script, and only once you have entered a payment flow — see Payment provider storage below. If you never start a payment, you should find no cookies here at all. What we keep on your device is held in two browser storage areas:

  • localStorage — stays until it is removed by the site or by you. Unlike a cookie it is never attached to a network request; it is only read by the page itself.
  • sessionStorage — the same, except that the browser discards it when you close the tab.

Third parties are different. If you allow External Media, if you allow Visitor analytics, or when our payment provider’s code loads, those companies can set their own cookies and storage under their own terms, which we do not control. Of the three, only the payment provider sets cookies; the analytics provider uses localStorage, and the sentence above stays true either way.

European rules on cookies apply to storing or reading information on your device generally, not only to files literally called cookies, so everything below is listed whichever mechanism it uses.

What NewWave Fluent Stores in Your Browser

This is the complete list of items we write to your device. It does not cover storage placed by third-party code — Stripe’s, an External Media provider’s once you allow one, or Apollo’s once you allow Visitor analytics — because those are set by them, under their terms; all three are described further down. Where a name contains <project>, the real key contains our database project identifier in that position.

nwf_cookie_consent

Stored in: localStorage

Records your two optional privacy decisions — External Media and Visitor analytics — the version of the choice you were shown, and when you made it, so we do not ask again, so every part of the site honours the same answer, and so we can ask again if the choices themselves change.

How long: Until you clear it or your browser storage is cleared.

Category: Necessary

sb-<project>-auth-token

Stored in: localStorage

Your signed-in session. Holds the access and refresh tokens and the account details they carry, including your user identifier and email address.

How long: Removed when you sign out. The tokens inside it expire and are replaced automatically while you keep using the site.

Category: Necessary

sb-<project>-auth-token-code-verifier

Stored in: localStorage

A one-time value that proves a sign-in you started in this browser is the one coming back from the identity provider.

How long: Removed as soon as the sign-in completes.

Category: Necessary

nwf_browser_session

Stored in: sessionStorage

Marks that a session was actually established in this browser session. A stored session that appears without this marker is signed out rather than silently restored.

How long: Until the tab is closed.

Category: Necessary

nwf_post_auth_redirect

Stored in: sessionStorage

The page inside NewWave Fluent you were heading for when you were asked to sign in, so you land there afterwards. Only internal paths are accepted.

How long: Removed as soon as it is used; otherwise until the tab is closed.

Category: Necessary

nwf_banned

Stored in: sessionStorage

Carries the reason for a forced sign-out to the login page so it can explain that the account is blocked.

How long: Removed as soon as it is shown; otherwise until the tab is closed.

Category: Necessary

nwf-build-id

Stored in: localStorage

The version of the site your browser last loaded. If a newer version has been published, we reload once so you are not left on stale code.

How long: Until you clear it; overwritten by each new version.

Category: Necessary

nwf-build-reload-at

Stored in: localStorage

The time of the last such reload. It enforces a short cooldown so a slow update can never put the page into a reload loop.

How long: Until you clear it; overwritten by each reload.

Category: Necessary

nwf_error_log

Stored in: localStorage

A last-resort copy of technical error reports, written only when sending them to our database fails. Holds a truncated error message, stack trace, page address and browser user-agent — no account identifier.

How long: Keeps the most recent 50 entries until you clear it.

Category: Necessary

nwf_placement_test

Stored in: localStorage

Your placement test result and answers, kept so that taking the test before creating an account does not lose your result.

How long: Removed once the result is saved to your account.

Category: Necessary

nwf-theme

Stored in: localStorage

Whether you chose light, dark or automatic appearance.

How long: Until you clear it.

Category: Functional preference

nwf-reduce-motion

Stored in: localStorage

Whether you turned on reduced motion.

How long: Until you clear it.

Category: Functional preference

nwf-high-contrast

Stored in: localStorage

Whether you turned on high contrast.

How long: Until you clear it.

Category: Functional preference

nwf:lastActiveLanguage

Stored in: localStorage

The code of the learning language you last had active. Written when your active language is resolved; the language itself is stored on your account, not here.

How long: Until you clear it.

Category: Functional preference

nwf.visibility.profile_attribution

Stored in: sessionStorage

When you open a profile from a community post, this remembers which post and author it was, so the activity record for that visit can note where it came from. Identifiers and a public language name only — never post text.

How long: Expires 30 minutes after it is written, and in any case when the tab is closed.

Category: Product measurement

Necessary items are what the service you asked for needs in order to work at all: staying signed in, protecting that sign-in, remembering your privacy answer, returning you to the right page, serving up-to-date code, and not losing a placement test you were part-way through.

Functional preference items exist only because you actively chose that setting. They record the setting itself and nothing else.

Product measurement covers the one session-only record that is neither: it links a profile visit back to the community post it came from, so the activity record described below can carry that context. It is not shared with anyone, is limited to identifiers, and disappears after 30 minutes or when you close the tab.

External Media

  • External Media is off by default. No platform is contacted until you allow it.
  • It covers YouTube, Vimeo, Instagram, TikTok and X. One choice covers all of them; there is no separate switch per platform.
  • Each item loads inside a frame served by that platform’s own embed address — www.youtube-nocookie.com, player.vimeo.com, www.instagram.com, www.tiktok.com or platform.twitter.com. We do not run any of those platforms’ scripts on NewWave Fluent pages; the frame is requested, and everything inside it is theirs.
  • When an embed loads, your browser connects to the platform directly. It receives your IP address, browser and device information, the NewWave Fluent page you are on, and how you interact with the content, and it may place its own cookies or storage.
  • That storage is set by the platform, under the platform’s terms. It is not ours, we cannot read it, we cannot delete it for you, and we are not going to publish names or lifetimes for items we do not control. The platform’s own cookie policy is the authority on what it stores.
  • Loading a single item on the spot applies to that item only. It is never saved, never shared with another embed, and is dropped as soon as you leave the page.
  • Allowing it globally is stored in nwf_cookie_consent above and applies until you change it.
  • If an embed you allowed does not load, we replace it with a short message and a link to the original post, rather than leaving an empty space.

We asked everyone again in August 2026. Until then this choice covered only YouTube and Vimeo, and this page said that Instagram, TikTok and X would not be embedded. Adding those three changes who your browser may contact, so permission given under the old description is not carried forward — not even a “yes”. The stored record carries a version number for exactly this purpose, and anything older is treated as no answer at all: the banner appears once more, and nothing loads from any of the five platforms until you answer it.

And we asked again after that, for a different reason. The record is now at version 4, because we added a second optional choice — Visitor analytics, described in the next section. Everyone who had answered the External Media question was asked again rather than having that answer carried across, since it was given while this site said it used no third-party analytics service at all. Until you answer the new version of the question, nothing loads from any of the five platforms and nothing is sent to the analytics provider.

Changing your mind. The banner is the first decision and only the first decision — once you have answered it, it does not come back. From then on the only place that can turn External Media off is Settings → Privacy, under “Privacy & external media”. There is no cookie control in any footer, menu or page corner. One button elsewhere writes the same setting in the other direction — a blocked embed’s Always allow external media, described below under Managing Storage Yourself. It grants; it never withdraws. Settings needs an account, so a signed-out visitor who has already answered must sign in to change it, or clear this site’s stored data in their browser, which makes the banner ask again. Turning it off stops new embeds loading and removes embeds that are on screen; it cannot undo what a platform already received.

Visitor Analytics Storage

Nothing in this section happens unless you turn Visitor analytics on. It is off for everyone by default, including everyone who has never answered the banner.

If you do turn it on, we load a script from assets.apollo.io, belonging to Apollo, a business-intelligence company in the United States. Its purpose is to tell us which companies visit NewWave Fluent, so we know whether schools and employers are finding us. It sends what it records to aplo-evnt.com, which is also Apollo’s.

Each time you open a page, it sends Apollo:

  • your IP address, which is how a company is identified — Apollo matches it against its own records of which business uses which network;
  • the address of the page you opened;
  • the site you arrived from, if you came from somewhere else;
  • campaign tags in the link you followed, if it had any;
  • a random identifier it generates and keeps in your browser, which ties your page views together.

It does not receive your name, your email address, your account, your lessons, your messages, or anything you write on NewWave Fluent. It cannot read the rest of the page.

What it keeps in your browser. Apollo uses localStorage, not cookies. It writes apolloAnonId, the random identifier, which has no expiry date and would otherwise stay until you clear this site’s data; plus <app>_eventQueue and <app>_canTrack, which are its own working state. These are set by Apollo’s code, under Apollo’s terms — see Apollo’s privacy policy.

One thing we deliberately stop it doing. Apollo’s script tries to load a second script from a different company, d-code.liadm.com (LiveIntent), whose job is to work out a hashed version of your email address from your activity across other websites and attach it to everything Apollo is told about you. We do not want that and we do not allow it: the address is not on this site’s list of permitted script sources, so your browser refuses to load it. The email fields Apollo would otherwise fill in are empty on every request. This is enforced by the site’s content security policy, not by a setting in Apollo’s dashboard, so it does not depend on Apollo’s cooperation.

Changing your mind. Signed in, the switch is Settings → Privacy, under “Visitor analytics”. Turning it off stops any further information leaving the page and deletes the identifier Apollo stored in your browser. Two things it cannot do, and we would rather name them: it cannot recall what Apollo has already been sent, and a page that is already open keeps a listener Apollo installed until you reload or navigate — that listener is silenced and sends nothing, but it is still there. Reloading the page removes it.

Payment Provider Storage

We use Stripe to take payments, and Stripe’s browser library is loaded from js.stripe.com. Stripe describes it as using essential cookies to make the site work, to detect and prevent fraud, and to understand how people interact with Stripe.

That library loads only when you enter a payment flow — when you open checkout or reach a payment screen. It does not load while you browse the site, read this page, or look at prices. We checked this page in a browser with a clean profile: no request to js.stripe.com, no Stripe frame, and no cookies at all.

When you do start a payment, Stripe’s library loads and places two cookies on this domain — __stripe_mid and __stripe_sid — as well as storage on its own m.stripe.com domain, and it adds frames of its own. We observed all of this in the payment screen.

Those cookies are Stripe’s, not ours. We are not going to state a purpose or a lifetime for them that Stripe has not published; for what Stripe stores and for how long, see Stripe’s cookie policy and Stripe’s privacy policy.

This used to be worse, and we would rather say so than quietly improve it. Until August 2026 the Stripe library was pulled in by the way our code was bundled, so it loaded on every page — including this one — and set those cookies before anyone had gone near a payment. That is fixed: the payment code is now loaded only by the payment screens themselves.

Separately, our typefaces are served by us, from this website. Your browser does not contact Google Fonts or any other font service to display text on NewWave Fluent, so no IP address goes to a third party for that.

This also used to be worse. Until August 2026 the typefaces were requested from fonts.googleapis.com and fonts.gstatic.com on every page, which meant Google received your IP address and browser information simply because you were reading the site. The fonts are now bundled with the site and served from our own domain.

Activity Records Are Not Browser Storage

While you are signed in, NewWave Fluent writes structured records of how you use the product — lessons started, a profile opened, a booking step reached — into our own database. They are not cookies, they are not localStorage, and they are not stored on your device at all, which is why they are not in the table above.

They are also not anonymous: each record is kept against your account. We do not use a third-party analytics service and we do not send this data to an advertising network. Section 7 of the Privacy Policy sets out which event families exist and exactly which fields they carry.

Signed-out visitors generate no such records.

Managing Storage Yourself

  • If you are signed in, Settings → Privacy shows your External Media answer, when you last changed it, and one switch to change it. It is the only place that can turn External Media off — there is no cookie or privacy control in any footer, menu or page corner.
  • Turning it on has a second route, and we would rather name it than let you find it: signed in, a blocked embed offers Always allow external media, which grants the setting globally in one press. It only grants. To withdraw, use Settings → Privacy.
  • If you are signed out, the answer you gave the banner is held in your own browser and there is no public page that edits it. Sign in to change it, or clear this site’s stored data below and the banner will ask you again.
  • Your browser can clear site data or block storage entirely. Necessary items are listed above precisely so you can see what stops working: blocking them signs you out and prevents us from remembering your privacy choice.

Contact

Questions about anything on this page? Email team@newwavefluent.com. See also our Privacy Policy.