Skip to content
← Back

Cookie Policy

This is a translation for convenience. In case of discrepancies, the German version prevails: deutsche Fassung.

What are cookies?

Cookies are small text files stored on your device when you visit a website. They help to remember settings, to analyse usage and to provide certain functions.

Which cookies do we use?

Strictly necessary cookies and storage entries

These cookies and storage entries are required to operate the website and the learning platform. Entries that only arise from your click (such as turning on push notifications or downloading a video) you can remove yourself by turning the function off. The start of the Purpose column says who gets an entry: “Also without an account” means visitors who have not signed in get it too, “Only with an account” means only signed-in people do. Almost all entries stay on your device; the last column names the exceptions. Legal basis: § 25(2) no. 2 TDDDG (German Telecommunications Digital Services Data Protection Act).

NamePurposeDurationSent to our server
praxis-cookie-consent
Stores your cookie decision. Not a cookie, but an entry in your browser’s local storage. It is never transmitted to our server.Until you delete itNo
af-locale
Remembers your chosen language so the website and the learning platform stay in the same language. A cookie, also kept in local storage. If you open the link to a team invitation, the platform sets the cookie to the language of the invitation.1 yearThe cookie yes, it goes with every request; the local storage entry no
__client_uat
__client_uat_*
Sign-in via Clerk: a timestamp the site uses to tell whether you are signed in. Contains no sign-in details.Up to 400 daysYes, cookie
__session
__session_*
Sign-in via Clerk: a short-lived session token. Only set while you are signed in.1 year (the session token inside is valid for 60 seconds and renewed about every 50 seconds)Yes, cookie
__client (clerk.agile-forge.com)
Sign-in via Clerk: keeps your sign-in session on the sign-in subdomain and cannot be read by scripts (HttpOnly). Only set while you are signed in.Limited by the browser; at most 400 days in ChromeYes, cookie
__clerk_environment
Sign-in via Clerk: settings for the sign-in form. A local storage entry with no personal data.Until you delete itNo
praxis-theme
Remembers whether you chose the light or dark display. A local storage entry.Until you delete itNo
af:impulse-gast
Also without an account, in local storage (in the app as a file in the protected app folder): Your progress in the daily practices. It holds a random device ID without a name, the practices you have completed with your answers and Kai’s answers, your weekly goal, chosen paths and the language. The entry also notes whether the welcome on first launch and the set-up of the practices have already been shown. It also notes whether the last session on this device was signed in, so the app shows the right progress at launch, and, without an account, which path you are on, so the Practices tab opens it directly. Signing in removes the path note. Once you have signed in, your account ID is added as a note that the transfer has been decided (even if you decline it). The data stays on your device. If you create a new account, the completed practices with the option you chose, the weekly goal and the paths go to our server and into your account without asking you first. If you sign in to an account that already exists, this happens only once you confirm the transfer. Your own answers and Kai’s answers do not go into the account. Afterwards the platform clears these details on the device; the device ID and the notes on the welcome and the set-up stay. If you decline the transfer, the data stays on the device. In the browser you delete the entry in your browser settings; deleting your account does not remove it there.Until you delete itAutomatically for a new account, otherwise only after you confirm the transfer
af:uebernahme-spaeter
af:impuls-einrichtung:<ID>
Only with an account, in local storage: Remembers that you postponed the transfer of your device data (seven days of rest) and that you completed or skipped the setup assistant for the daily practices. The second key contains your account ID.Until you delete themNo
af-meilensteine-v1:<ID>
Only with an account, in local storage: Remembers which milestone badges you have earned, so they stay even if you raise your weekly goal later. The key contains your account ID, the value the list of your badges. The entry is not sent to our server.Until you delete it, for example through your browser dataNo
af-wochenziel-feier:<Monday>
Also without signing in, in local storage: Remembers that the message about reaching your weekly goal has already appeared this week, so it shows only once a week. The key contains the date of that Monday, the value is “1”. The entry is not personal data and is not sent to our server.Until you delete it; older weeks are cleared by the platform when it writes the next entryNo
af-erinnerung-karte
af-erinnerung-karte-sitzung
af-pfadwahl-karte
af-pfad-willkommen:<path>
Also without an account, in local storage: Remembers that you dismissed the card about weekly goal and reminder or the card about choosing a path, and that you have seen the introduction to a path. The path card entry holds a time until which the card rests for seven days. af-erinnerung-karte-sitzung is kept in session storage and makes sure the reminder card appears at most once per session.Until you delete them; af-erinnerung-karte-sitzung until you close the tabNo
af-coach-<hint>
af-coach-sitzung
liga-abschluss-gesehen
af:installhinweis-weg
af:push-einladung-weg
Only with an account, in local storage: Remembers that you dismissed a hint so it does not come back: the tips in a lesson, the weekly wrap-up of the league, the “Praxis as an app” notice and, in the app only, the invitation to turn on notifications. af-coach-sitzung is kept in session storage and records that a tip has already appeared in this session.Until you delete them; af-coach-sitzung until you close the tabNo
ai-usage-<lesson>
ai-eval-<lesson>-<date>
Only with an account, in local storage: Counts how many questions and assessment rounds you have asked Kai in a lesson, so the display of remaining questions is right. Assessment rounds are counted per day. The counter that enforces the limit is kept by the server independently.Until you delete them; counters of earlier days are not cleared by the platformNo
simulator-bestlauf:<course>:<scenario>
simulator-laeufe:<course>:<scenario>
simulator-letzte-lage:<course>:<scenario>
Only with an account, in local storage: Your best run per scenario in conversation practice (attitude and number of moves), figures from the last up to five runs and the starting situation you chose last. The wording of your conversations is not in it.Until you delete themNo
Service Worker /sw.js, cache praxis-offline-v1
Only in the browser on praxis.agile-forge.com, not in the app: A service worker keeps the “No connection” page ready, so you see a notice during a network outage instead of an empty error page. It stores no other pages or responses.Until you delete the website dataNo
Browser push subscription
Only with an account, after you turn it on in your profile and allow it in the browser: your browser’s push service creates a subscription (delivery address and keys). We store it with your account to send notifications. Not a cookie.Until you turn off notifications or the subscription becomes invalidYes

Origin channel

This entry is used to attribute a purchase or a registration to the channel you came through. It is created only if you agree to statistics in the cookie banner (section 25(1) TDDDG, Art. 6(1)(a) GDPR). Without your consent we do not create it, and in the app never.

NamePurposeDurationSent to our server
af-herkunft
Remembers which channel brought you here (“linkedin” or “google”, for example), not the full address. It is created when you open the first page, but only if you have agreed to statistics; if you agree later, it is created then, as far as the page still shows where you came from. Without consent it does not exist (an older entry is deleted), and in the app never. If you withdraw your consent, we delete it at once. If you buy something, that channel name is recorded with the order; if you buy as a guest without an account, it also goes to Stripe as additional order information. If you create an account, it is sent with the registration to our sign-in provider Clerk and stays on your account there; we also count it in a weekly tally per channel. Otherwise it is not transmitted to our server. A session storage entry.Until you close the tab or withdraw your consent (the channel name on the order or the account stays there)Only with a purchase or a registration

Additionally in the Praxis app

The Praxis app for iPhone and Android shows the same platform inside the app. The entries above apply there, except for the statistics and marketing cookies, the origin channel (af-herkunft), the service worker and the browser push subscription, which do not occur in the app. These entries come on top. Legal basis: § 25(2) no. 2 TDDDG.

NamePurposeDurationSent to our server
af:app-push-token
af:app-push-konto
Only with an account, in the app’s local storage: The push ID of this device (token) once you have turned on notifications, and the ID of the account it is registered for. The app deletes both when you sign out.Until you sign out or turn off notificationsThe token yes, it belongs to your account; the account ID no
af:app-anmeldung-verifier
af:app-anmeldung-ziel
Also without an account, in the app’s local storage: A one-time key and the destination to return to when you sign in through the system browser, for example with Google. Both are valid for ten minutes at most and are deleted after sign-in.Ten minutes at mostThe key goes along once when sign-in completes; the destination no
af:startadresse
af:offline-abgleich
af:verlauf
Only in the app, in session storage: Records for this session which address the app opened at start, that the sync of saved courses ran (with your account ID) and which pages you opened in sequence (50 at most, for “Back”).Until the app session endsNo
af:offline:groesse:<lesson>
af:offline:messbudget
af:offline:netz:<lesson>
Only in the app, in local storage, technically necessary for downloading videos to watch offline: how large a video is before you download it (so the app can tell you the space it needs), how many sizes the app has checked this hour, and whether a check failed for a video, so it isn’t repeated on every visit. The values stay on your device and are deleted when you sign out.Size: 30 days at most. Hourly counter: one hour. Note of a failed check: 24 hours at most. All: until you sign outNo
af:suche-stand
af:offline:mobil
af:video:<lesson>
Only with an account, in the app’s local storage: When the search index on your device was last built (with your account ID), whether you allowed downloads over mobile data, and the second at which you stopped a video, so it continues there.Until you delete them; af:suche-stand until you sign outNo
App storage: impulse, notizen, erledigt-offline, kurs-<course>, kopf-<course>, pdf-<no.>
Only in the app, as files in the protected app folder, not in the device backup: your progress in the daily practices without an account (in the app instead of af:impulse-gast), saved courses with lesson texts and PDFs, your notes and progress from videos you watched offline that has not been reported yet. To view a PDF, a copy is also kept briefly in the app’s temporary folder.Saved courses: until you remove them in the app or sign out. Notes, practice progress and progress not yet reported: until you delete your account in the app (the app then clears the storage) or delete the appNo; notes and progress go to the server as soon as the app has a connection again
Offline videos (files .afv and index.json)
Android only, only with an account, after you have downloaded a video: encrypted video files in the private app storage, not in the backup, plus a list with title, size and expiry date. The key is kept in Android’s keystore.Until the expiry date or until you delete themNo
Widget data (iPhone: widget-stand in the App Group; Android: widget)
Only with a widget set up: The texts the widget shows on your home screen. With an account these are your course, the next lesson and your progress, plus the practice of the day, also without an account.Until you sign outNo
Device search index (Spotlight)
iPhone and iPad only, only with an account: The device search knows title, description and text of the lessons in your courses. The index is cleared when you sign out.Until you sign outNo

Statistics cookies (optional)

With your consent we use Google Analytics 4 to evaluate the use of this website. Google Analytics 4 processes IP addresses solely to determine the approximate location and does not store them. The former “IP anonymisation” setting no longer exists there because the truncation is built in. You may withdraw your consent at any time. Legal basis: § 25(1) TDDDG, Art. 6(1)(a) GDPR.

NameProviderPurposeDuration
_gaGoogle AnalyticsDistinguishes users2 years
_ga_*Google AnalyticsSession state2 years
af:registrierung-gemeldetAgile Forge (local storage)Records that a new sign-up has already been reported, so it is not counted twice. The value is your account ID. Only written with your consent and not sent to our server.Until you delete it
af:kauf-gemeldet:<order number>Agile Forge (local storage)Records for each order whether the purchase was reported to Google Analytics and Google Ads, so it is not counted twice. The key contains the order number. Only written with your consent, also for a purchase without an account, and not sent to our server.Until you delete it

Marketing cookies (optional)

With your consent we measure whether an advertisement led to a sign-up or a course purchase (Google Ads). Without this consent no advertising cookies are set and no advertising data is transmitted to Google. This consent is separate from analytics and can be withdrawn individually at any time. Legal basis: § 25(1) TDDDG, Art. 6(1)(a) GDPR.

NameProviderPurposeDuration
_gcl_auGoogle AdsAttributes a purchase or sign-up to the advertisement you arrived through90 days
_gac_*Google AdsLinks campaign data to the measurement90 days

Services from other providers

Some services we embed can set their own entries or store them on your device. We have no influence over them, so we do not list them one by one here: the payment page from Stripe, the video player from Bunny (it runs as a frame inside our lesson pages, and the entries belong to the provider), the YouTube videos in blog posts (they load only after you click, and through youtube-nocookie.com), the bot protection from Cloudflare Turnstile on the sign-in pages and, in the app, the push service from Firebase, which can create its own identifiers on the device. For Stripe, Bunny, YouTube, Cloudflare and Firebase, the privacy policy says who operates them and where data goes.

Managing your consent

A cookie banner is shown the first time you visit this website. There you can accept only the necessary cookies, consent to everything, or select statistics and marketing individually. You may withdraw each consent separately at any time: via the “Cookie settings” link in the footer of every page or by contacting us by email: info@agile-forge.com.

Browser settings

You can also manage or block cookies directly through your browser settings. Please note that disabling all cookies may limit the functionality of the website.

Further information

More on the processing of data on this website is set out in our privacy policy.

Last updated: 18 October 2026

Cookie Policy — Agile Forge