The short version
- The free keyboard playground sends us a count of how many keys were pressed, never which keys. The play area of the playground and of every game is hidden from our session-recording tool, so the letters your child types are not recorded either. (If the playground was opened from a teacher’s class link that uses names, that count is also saved against the child’s first name for that class; see Class links.)
- We use Google Analytics 4 (loaded directly, not through Google Tag Manager) and Microsoft Clarity to see how the site is used. Google Analytics counts page views and scrolling, using a random ID kept in a cookie, and a few steps we mark ourselves: when a game or a free demo starts, when a demo ends, when a grown-up saves or shares a Smash Report picture, the age picked under “How old is your child?” on the games page (just the number), which suggested game is opened from the “Play next” row under a game, which skill or genre tab is opened on the games and arcade lists, when a child reaches a new level in a game, when a grown-up prints a game’s keepsake sheet, and when a grown-up creates an account, verifies their email, signs in, starts a checkout or subscribes. Clarity records sessions (pointer movement, taps, scrolling and what is on screen), with form fields, play areas and children’s names hidden. Both load on the site’s pages, including game pages, but not on class pages, the account page or our admin area. Their advertising features are off, and we never send them an email address or an account ID. For a new subscription, Google Analytics also gets PayPal’s reference number for it, so the purchase is counted once. For visitors in the European Economic Area, the UK and Switzerland, Google Analytics sets no cookie unless you agree to it, and Clarity does not run at all.
- We show advertising (Google AdSense) to keep the free games free, but not where children play: the keyboard playground and every learning-game and arcade-game page carry no ad units and request no ads, and a visit that starts on one of them loads no Google ad code until it moves on to a page that can show ads. Ads appear on our other pages, such as the game lists, guides and the blog, and never for a signed-in account on a paid plan (Family, Family Plus or Classroom), which sees no ads anywhere on the site. On every page except the blog, which is written for adults, every ad request asks Google for non-personalised ads, and the ad units we place are also tagged for child treatment. So ads are chosen from the page they sit on, never from a profile of your child, and never used for remarketing. Class pages carry no ads at all.
- If a parent or teacher creates an account, we keep their email address, and their PayPal subscription details if they subscribe. What an account can hold about children is set out in the next points.
- Child profiles ask for a nickname only — not a real name, a birth date or a photo. They live under your parent account, with their progress in the games.
- Each account gets a random leaderboard nickname (like SpeedyPanda42). Its scores, points and badges are public on the leaderboards and on a player page. You can change the nickname, or clear it to leave the leaderboards, on your dashboard.
- A teacher’s class link can keep each child’s first name and results for that class, if the teacher picks the Live session or Saved roster mode. Anyone who has the link can see the class board of first names and best results. The full detail is under Class links.
- Children never create accounts, and we never ask a child for an email address, a password, a birth date or a photo. The only thing a child is ever asked to type about themselves is a first name, when a teacher’s Live session class link asks for it. When class links are used, the teacher or school is the adult who decides to use them with their pupils, and should check that this fits their school’s policies and the rules that apply to them, such as COPPA in the United States.
Class links
A teacher creates a class link at /parents/class. It opens one activity for the whole class. A free account can create one class link, for the 60-second typing test. On the Family or Family Plus plan, a teacher can have up to 20 class links, each opening the typing test, the keyboard playground, or one of the fifteen free learning games (Counting Garden, Animal Sounds, Color Splash, Shape Tap, Bubble Pop Letters, Two-Player Race, Online Race, Key Finder, Big Keys, Letter Twins, Home Row Hop, Rhyme Time, Turbo Type, Keyboard Quest and Feast Street). A teacher on the paid Classroom plan can also choose any of the 26 paid learning games for a class link; the children still play with no account. Children never create accounts, and no child ever needs an email address or a password. The teacher or school is the adult who decides to use class links with their pupils.
Each link uses one of three modes, and the mode decides what we keep:
- Just the link — opens the activity for the whole class. No names are asked for, and nothing is stored about the children.
- Live session — each child types a first name when they open the link.
- Saved roster — the teacher enters the children’s first names once, and each child taps their own name.
What we store in Live session and Saved roster modes
- The first name, exactly as it was typed by the child or the teacher. It is a free-text box, so if you are a teacher, please ask for first names only, and nothing else.
- Each typing-test result: words per minute and accuracy. Never the text that was typed.
- For the games and the keyboard playground, a count of taps or key presses for each play session. Never which keys.
- When each child was last seen in the class.
Opened any other way, including from a Just the link class, the typing test itself sends nothing anywhere.
Who can see it
- The teacher, in their class console and on a printable class report (for each child: tries, best and average speed, best accuracy or best score, and when they last played, plus class averages). The teacher can print the report or save it as a PDF; what happens to that copy is up to them.
- Anyone who has the class link can see the class board: the children’s first names, each child’s best result (words per minute, or taps in a game), and who has not played yet. Share the link only with your class.
- In Saved roster mode, the page the link opens also lists the names, so each child can tap their own.
How long we keep it
Until the teacher clears the scores, removes a child’s name or deletes the class, or until we delete the teacher’s account at their request. A class that has not been used for 12 months is deleted automatically, together with its names and scores (we check every day).
Ads, analytics and recordings on class pages
- Class pages — the
/class/…page a class link opens, and the teacher’s own class pages — load no ads, no analytics and no session recording: no Google AdSense, Google Analytics, Google Tag Manager or Microsoft Clarity. - Our own live presence row records the page only as the class section, never the class code. Our crash reports leave the class code out too.
- The class board also appears on the typing test’s result screen, which is an ordinary page of the site. There, Microsoft Clarity masks the board and the child’s name in its session recordings.
- The activity a class plays (the typing test, the playground or a game) is an ordinary page of the site, so the rest of this policy applies to it as usual.
Class passes (paid games only)
When a child starts a paid learning game from a Classroom teacher’s class link, their browser gets a class pass: a cookie, tt_class_pass, holding a random code. On our servers we keep a one-way hash of that code, the class it belongs to, the game, and when the pass was made and when it ends (8 hours later). It contains nothing about the child. It opens only that class’s game, it is checked each time the game page opens, and it stops working when the teacher pauses the link, changes its game or the plan ends. “Not Sam?” and “Back to class” on the game delete it, and expired passes are deleted automatically.
What lives where
In your browser
Settings, a random device ID, a daily count of free demo tries, which subscriptions bought here Google Analytics has already counted, and, after a class link is opened, which class (and which child) that tab belongs to. The full list, with how long each item lasts, is under Cookies and browser storage.
On our servers
- If you create an account: the parent’s or teacher’s email address, a one-way hash of the password (never the password itself), the one-time links we email to verify the address or reset the password, and whether you ticked “I’m a teacher” when signing up (we count teacher accounts; it changes nothing about the account).
- The IP address and browser of each sign-in, kept with that login session so we can see where an account has been used (for example, to spot a stolen password). It is deleted when you sign out, and cleared after the session expires, 30 days after sign-in.
- A short-lived live presence row while a device is on the site: a random device ID; the page it is on, how many pages it has opened and when it arrived; the site that linked to it, if any (the site’s name only, never the full address); its browser, device type (phone, tablet or computer), screen size, language and time zone; its IP address; the approximate city, region, postal code, map coordinates and time zone that Cloudflare derives from that IP; and, if a parent or teacher is signed in on that browser, which account it is. To show which network the IP belongs to (an internet provider, a mobile carrier, a privacy relay or a data centre), we look it up in a public list of networks kept on our own server: the address is never sent anywhere for this. We use the row to see current activity and to spot abuse. It is deleted automatically 5 minutes after the device stops, it is never combined with a child profile, and it is never used for advertising. Pages that could identify someone — a player page, a class link, a password-reset link — are recorded only as the section, never the full address.
- If you play an arcade game online: the match (which game, a random room code for a private room, and when it starts and ends) and, for each seat, the nickname shown (the account’s leaderboard name, or a random one if it has none or is off the leaderboards), the score, and which account holds the seat. Other players see only nicknames and scores; there is no chat. Seats marked “bot” are computer players. Matches are deleted six hours after they last change.
- If you subscribe: your plan, the PayPal subscription ID and status, the date the current period ends, and the email address on your PayPal account.
- Child profile nicknames and their progress: total key presses and play sessions, the key total when the last weekly progress email went out (so the next one can count that week’s keys), when they last played, and, in the learning games, which letters, numbers, colours, shapes and words they got right, how often and when (this powers Learning Insights and the weekly progress email). We ask for a nickname, not a real name.
- If you have an account: your points per game, best scores, badges and daily streak, any learning goals you set, and your leaderboard nickname. The nickname, with its scores, points and badges, is public on the leaderboards and on a player page until you clear it.
- If a teacher creates class links: each class’s name, activity and mode, and, in Live session and Saved roster modes, the children’s first names and results described under Class links, and, while a paid game is played from a link, the class pass described there.
- If you sign up for the newsletter: your email address, where on the site you signed up, and whether you are subscribed. If you unsubscribe, the address stays on file marked as unsubscribed; ask us and we will delete it.
- Crash reports: when a page hits an error, your browser sends us the page address (with class codes and player names removed), the error message and your browser type. We keep them for up to 30 days.
- Abuse limits: sign-in, password resets and some public features (such as the contact form, school quote requests, newsletter sign-up and class links) count requests per IP address, and sign-in also counts per one-way hash of the email address, for 15 minutes.
- Messages sent through the contact form, and school quote requests sent from /schools (name, role, school, email address, number of teachers and message), are not stored in our database; they are emailed to our support inbox.
Third parties we use
- Cloudflare — the network every visit passes through on its way to our server, for speed and security. It sees each request (IP address, page address, browser), checks for automated traffic, and supplies the approximate location used for the presence row above. It sets no cookies on ordinary visits; if it ever asks a browser to pass a security check, it sets
cf_clearancefor that. - Hosting and database — a virtual server we rent in the US and run ourselves. It holds parent and teacher accounts, child profiles, class links (including children’s first names and results), scores and subscription state. Forms are protected by per-address rate limits, not a third-party bot check.
- Google Analytics 4 — page views and scrolling, with a random ID in a cookie. It also gets the steps listed in the short version above. A game or demo step carries only which game it was and what kind of game it is, a Smash Report step only whether the picture was saved or shared, an age pick only the number from 1 to 12; a checkout or subscription carries the plan, the price and whether the welcome offer or a discount code applied (never the code), and a new subscription also PayPal’s reference number for it. Google sees your IP address, your browser, and the page address and title (on a public player page, that includes the leaderboard nickname). It runs with advertising storage and ad personalisation turned off. Not loaded on class pages, the account page or our admin area. We load it directly from Google, not through Google Tag Manager. All that is left of Tag Manager is its standard frame for browsers without JavaScript, kept so Google Search Console can confirm the site is ours: only a browser with JavaScript turned off loads it, and Google then sees your IP address, your browser and our site’s address.
- Microsoft Clarity — records sessions (pointer movement, taps, scrolling and what is on screen) so we can find what confuses people. Form fields, the play areas, children’s first names and child-profile nicknames are masked, and it sets no cookies on our site. Not loaded on class pages, the account page or our admin area.
- Google AdSense — advertising that funds the free games. Outside the blog, every ad request asks for non-personalised ads, and the ad units we place are tagged for child treatment: contextual only, never used to build a profile. Google receives the standard data any ad request carries (IP address, page address, browser details), its ad servers can set Google’s own cookies (see Cookies and browser storage), and it runs ad-fraud checks that load a Google reCAPTCHA frame. We never send Google a name, an email address or account details. No ad request is made from the keyboard playground or a game page, or for a signed-in account on a paid plan, and class pages, the account page and our admin area carry no ads either.
- PayPal — payment processing for paid plans. Card details never touch our servers. PayPal sends the payment receipts.
- SMTP2GO — sends our email: sign-up and password-reset links, subscription notices, the weekly progress email, if it is on (when you sign up, its box starts ticked unless you are in the European Economic Area, the UK or Switzerland, or we cannot tell your country, in which case it starts unticked and you tick it if you want it; you can change it there, or switch it on or off on your dashboard at any time. It includes each child profile’s nickname, its keys that week and the letters, numbers, colours, shapes and words it practised, plus one game suggestion), newsletter mail, school quote requests, and contact-form messages to our inbox. It receives the address each message goes to and the message itself.
Game voices are spoken by your browser’s own built-in speech voices (some browsers use an online voice service of their own for this). We do not currently use a cloud voice service; if we add one, it will receive only the games’ own fixed words and phrases, never a name, and we will list it here. A grown-up’s own spelling list in Spelling Hive is the exception that never uses either: its words are read aloud only by a voice that runs on your device, never by an online voice service, and on a device without one a grown-up reads them aloud instead.
Cookies and browser storage
Cookies set by TotType
tot_session— keeps a parent or teacher signed in. 30 days, or until you sign out.tot_profile— which child profile is playing on this device. Up to 1 year; cleared when you sign out.tot_theme,tot_sound,tot_difficulty— the playground theme, sound pack and difficulty chosen on the dashboard. 1 year.tot_theme_mode,tot_lang,tot_font,tot_size,tot_contrast— light or dark mode, language and reading settings. 1 year.tt_class_pass— only after a child starts a paid learning game from a teacher’s class link: a random code that opens that one game for that class. A session cookie with no expiry date; our server stops accepting it after 8 hours, or sooner (see Class links).tot_ev— set for a moment when you create an account, verify your email or sign in, so the next page can count that step in Google Analytics. That page deletes it at once; it never lasts more than 2 minutes.
Kept by TotType in your browser’s storage
tot_ga_sent— PayPal’s reference numbers for subscriptions bought in this browser (the last 20 at most) that Google Analytics has already counted, so reloading the page after checkout does not count a purchase twice. The list itself is never sent anywhere.tot_child_age— the age (a number from 1 to 12) picked under “How old is your child?” on the games page, so that page and the “Play next” suggestions under each game can start from it. It stays on this device until you change it or clear this site’s data.smash:pid— a random device ID with no link to your name or account. It is sent with the live presence heartbeat described under What lives where, and stays until you clear this site’s data.tot_arcade_favs,tot_arcade_recent,tot_arcade_best_…— arcade favourites, recently played games and your best score on this device.tot_demo_…— one item for each game tried as a free demo: how many demo tries that game has used today on this device (the date and a count). It is never sent anywhere. A learning-game demo itself saves no score, points, badges or progress, and an arcade demo run saves no score or personal best.tot_save_…— one item for each of Star Keys, Mix-Up Town, Number Express, Word Monster, Code Bot, Spelling Hive, Tick-Tock Town, Turbo Type, Keyboard Quest, Typing Dojo, Typo Patrol, Code Typer and Word Fortress: that game’s progress on this device (levels, stars, belts, words learned, dreams and programs, typing speeds and accuracy, which keys were missed most often, and the trophies won, with the day each was won; Typing Dojo also keeps the days practiced, the last 60), its settings, and each player’s animal badge, age, start date and the day they last played. No names. In Spelling Hive it also keeps a grown-up’s own spelling list and test date, what was typed for a word that came out wrong (for the grown-ups’ report), and the Family Bee champions board (animal heroes, no names); a grown-up’s own spelling list stays on this device and is read aloud only by the device’s own voice. When a grown-up has picked a child profile with “Track as”, that child’s progress is kept under a code made from the profile (not its name or id), so it comes back when the child is tracked again on this device. It is never sent anywhere, and nothing is saved during a free demo or from a class link for that game. A copy of an item the game cannot read may be kept beside it (its name ends in_bak). “Forget this player” in the game’s Grown-ups corner removes a player; the most recent one can be brought back for 7 days, and after that it is deleted the next time the game is played on this device. Clearing this site’s data deletes it all at once.tot_lang_tip_v2,tot_lang_tip_n,tot_lang_tip_s,tot-install2-snooze,tot-install2-n,tot-install2-done,tot-install2-s,tot-install2-pv— whether the language tip and the install card have been shown, dismissed (until when, and how many times) or used, and how many pages this tab has opened (the install card waits for the second; it is forgotten when the tab closes).tot-desk-look,tot-desk-sound— the keyboard look (RGB, Retro or Clean) and the key sound picked on the keyboard test or the typing test, so both open the same way next time. Never sent anywhere.tot_class_…(six items, in session storage) — after a child opens a teacher’s class link, which class the tab belongs to and, in Live session or Saved roster mode, which child, so results reach the right name. Gone when the tab is closed, or after 12 hours.- An offline copy of the playground, the free games and the typing test (a service worker and its cache), so they still open without a connection. Account, dashboard, class and admin pages are never stored.
Set by other companies
- Google Analytics:
_gaand_ga_…on tottype.com, a random ID used to count visits, for up to 2 years (some browsers cap this sooner). - Google AdSense: Google’s ad servers can set their own cookies on doubleclick.net, such as
test_cookie(15 minutes) andIDE(up to 2 years). Google says that for non-personalised ads it uses these only for things like frequency capping, aggregated ad reporting and fighting fraud and abuse. Google’s ad-fraud check also stores two small values for google.com. - Microsoft Clarity sets no cookies on our site.
Class pages, the account page and our admin area set none of these third-party items. You can clear all of this in your browser’s settings, and the games still work.
Advertising cookies and your choices
- Third-party vendors, including Google, use cookies to serve ads based on a user’s prior visits to this website or other websites.
- Google’s use of advertising cookies enables it and its partners to serve ads to users based on their visit to this site and/or other sites on the Internet. On TotType, ads based on past visits can only be served on the blog, which is written for adults: on every other page, every ad request asks Google for non-personalised ads, and the ad units we place there are tagged for child treatment.
- You can opt out of personalised advertising in Google’s Ads Settings, at adssettings.google.com. You can also opt out of some third-party vendors’ use of cookies for personalised advertising at www.aboutads.info/choices (in Europe, www.youronlinechoices.eu).
- Google explains how it uses data from sites like this one in How Google uses information from sites or apps that use our services.
What we will never do
- Show personalised or behaviourally-targeted ads to a child. On every page a child can use, ad requests ask for non-personalised ads, and the ad units we place are tagged for child treatment.
- Put an ad where your child plays. The keyboard playground and every learning-game and arcade-game page carry no ad units and request no ads. (On our other pages Google’s Auto ads can add units of its own, including a bar docked to the edge of the screen, and one can stay on screen when you move on into a game; if one ever covers a game, tell us and we will switch that format off.)
- Sell or share your data with third-party advertisers.
- Use a child’s name, nickname or class results for advertising, or give an advertiser anything that identifies your child.
- Track what your child does inside a game. From the games, Google Analytics learns only which game was started and when a free demo started and ended, never what a child types or scores, and Microsoft Clarity masks the play area. The “Play next” row below a game, outside the game, counts only which suggested game was opened. After a playground session it learns only whether a grown-up saved or shared the Smash Report picture: the picture is drawn on your device, and we never receive it or the first name you can type into it. (The scores and press counts that feed your dashboard or a teacher’s class board are not analytics; they are listed above.)
- Keep your data after you ask us to delete it.
Your rights (and how to use them)
You can ask us to export or delete your account and any data associated with it at any time. Email [email protected] and we’ll do it within 30 days. Deleting an account removes its child profiles and their progress, its scores, points and badges, its class links with the children’s names and results, its sign-in sessions, its subscription record and its newsletter sign-up. We cancel an active PayPal subscription first. PayPal keeps its own records of your payments, and our email provider keeps delivery logs for a limited time.
You can change your email address and password on your account page, change or clear your leaderboard nickname on your dashboard, and leave the newsletter from the link in any newsletter email.
A teacher can clear a class’s scores, remove a child’s name or delete a class from the class console at any time. If your child is on a teacher’s class link, ask the teacher, who can remove your child’s name and results straight away, or email us at the address above.
TotType is operated by Equal Technology Solutions LLC, in the United States. The canonical URL of this policy is https://tottype.com/privacy.