This policy explains the cookies and similar browser storage PingRep uses, what each one is for, and how to change your mind at any time.
1.0 The short version
PingRep has two sites. pingrep.com is the website. app.pingrep.com is the PingRep app. They ask for your choice in different ways, so this policy says which site it means.
- On pingrep.com, nothing that tracks you runs until you say yes. Analytics and advertising storage are denied by default.
- On pingrep.com, the Performance category turns on PingRep's own visit measurement. The Targeting category turns on Google Tag Manager, which starts our advertising tags: a Google Ads tag and the Meta Pixel. Section 5.1 has the detail.
- In the app, the outside tools load only after you accept analytics. They are PostHog, Google Analytics, Google Tag Manager, and the tags Tag Manager starts. You accept analytics by choosing Accept All, or by turning Analytics on under Cookie Settings and saving.
- PingRep's own usage measurement in the app runs without any choice from you. So do the logs of your requests to our servers, which hold your IP address, and error reports. Section 5.2 says what they collect.
- Strictly necessary and functional storage is always on, because without it the site cannot work.
- pingrep.com treats a Global Privacy Control signal as a no and does not ask again. The app does not read that signal yet.
- On pingrep.com your choice lasts 6 months, then we ask you once more. In the app it lasts until you clear your browser storage.
- You can change your choice at any time. Section 9.0 says how, for each site.
2.0 What cookies and similar storage are
A cookie is a small file a site stores in your browser. Similar technologies — localStorage,
sessionStorage, and pixels — do comparable things. This policy covers all of them, and uses
"storage" to mean any of them.
Storage set by us is first-party. Storage set by a provider we embed is third-party, and those providers are named below.
3.0 Strictly necessary storage (always on)
This storage is required to deliver the site you asked for. It cannot be switched off, and it does not require consent.
| What | Purpose |
|---|---|
| Session and sign-in state | Keeps you signed in and links your requests to your account |
| Security and anti-abuse | Cloudflare Turnstile tokens that tell humans from bots on our forms |
| Rate limiting | Prevents a single source from flooding our contact and application forms |
| Load balancing and routing | Directs your request to the right server |
4.0 Functional storage (always on)
This storage remembers choices you have made so the site behaves the way you left it. It stays within our site and is not used to build an advertising profile.
| What | Purpose |
|---|---|
| Interface preferences | Theme, language, and layout choices |
| Consent record | Remembers what you chose so we do not ask on every page |
On pingrep.com, two keys hold the consent record itself, both in localStorage:
| Key | Purpose |
|---|---|
knx-consent-prefs-v1 |
Your category choices and where they came from |
knx-consent-v2 |
Whether the banner has been answered |
In the app, two keys do the same job, also in localStorage:
| Key | Purpose |
|---|---|
analytics_consent |
Your choice: granted or denied |
pingrep_consent_meta |
The version of the consent screen and the date you chose |
5.0 Analytics and measurement
Every measurement tool on PingRep sites is named here, with what it collects and when it starts.
5.1 On pingrep.com — only with your consent
PingRep's own visit measurement starts when you accept the Performance category. It records
which pages you open, how long you stay, and which buttons you press. It also records your browser,
screen size, language, time zone, the site or campaign link you came from, and your IP address. We
store the IP address itself with the visit, not only a short code made from it. We also use it to
work out an approximate location (country, region and city). A random session code is kept in
sessionStorage (kn_tracking_session_id) while the tab is open, and is removed if you withdraw
consent. A short summary of each visit (page, approximate place, device type and referring site)
may also be posted to our internal team chat in Slack. Privacy section 7.0 says how long visit
records are kept.
Google Tag Manager loads only when you accept the Targeting category. It never loads when your browser sends Global Privacy Control, and it does not load for Performance alone. Tag Manager does not measure anything itself. It starts the two tags below, which we manage in one tag container.
- Google tag for Google Ads (Google). Records that a visit led to a sign-up or a purchase, so we can measure our ads. It follows Google Consent Mode (section 7.0).
- Meta Pixel (Meta Platforms). Sends Meta these events, so we can measure our ads on Facebook and Instagram: PageView on every page where Tag Manager loads, ViewContent on public profile pages (addresses that contain /p/), InitiateCheckout on checkout and upgrade pages, CompleteRegistration when a sign-up finishes, and Purchase when a payment completes. Tag Manager starts it. It does not read the Consent Mode signals. Meta's settings for our pixel also switch on its automatic features. They can record button clicks the pixel detects by itself, extra page details, browser details and the link you came from, and the pixel sets its own first-party cookie.
Google Analytics runs in the app (section 5.2). It does not run on pingrep.com.
If you decline, the site works exactly the same. You just become invisible in our counts.
5.2 In the app (app.pingrep.com)
PingRep's own usage measurement runs without any choice from you. While you use the app it
records which pages you open, how long you stay, which buttons you press, how long a session
lasts, and your browser, screen size, language, time zone and referring link. When you are signed
in, this is linked to your account id. A random session code is kept in sessionStorage
(kn_tracking_session_id) while the tab is open. A short code made from your IP address is kept
with it. A summary of each session is posted to our internal team chat in Slack. It holds the pages
you opened and the actions you took, your approximate place (city and country), language,
referring link, campaign tags, the short IP code, and your account id when you are signed in.
Our servers log your requests, also without a choice. Most requests the app makes to our API are logged with their page group, your browser, the referring link, an approximate location, and your IP address itself. For people in the EU, EEA and UK we store the IP address only after you accept analytics. To work out an approximate location we may send your IP address to ipwho.is. Privacy section 7.0 says how long these logs are kept.
After you accept analytics, three outside tools load. You accept analytics by choosing Accept All, or by turning Analytics on under Cookie Settings and saving.
- PostHog (PostHog, US cloud). Collects page views, and clicks and form submissions on links, buttons, forms and labels. This includes the visible text of what you click, so words shown on a button or link can be collected. Attribute values are masked. When you are signed in it also gets your account id, your plan, and whether your profile is complete. PostHog also records how you use the app as a replay. Typed text in form fields is masked. Other text on the screen, such as messages you read, can be visible in a replay. Replays can also include browser console messages and page speed.
- Google Analytics 4 (Google). Collects page views and standard usage details such as browser, device and approximate location.
- Google Tag Manager (Google). Starts the same two tags as on pingrep.com: the Google tag for Google Ads and the Meta Pixel, with the events listed in section 5.1.
If you choose Reject All, none of these three load. The app works exactly the same.
Sentry collects error reports when something breaks in the app. A report holds what failed, the page address (with sign-in tokens removed), browser and device details, and a short trail of your recent actions (page changes, clicks and network requests). About 1 in 10 page loads is also sampled for speed. Sentry runs without a choice, because it is how we find and fix faults.
6.0 Advertising — only with your consent
If you accept the targeting category on pingrep.com, we enable advertising storage and Tag Manager
loads. Until you accept, ad_storage, ad_personalization, and ad_user_data are all set to
denied.
| Signal | What accepting it allows |
|---|---|
ad_storage |
Advertising cookies may be set |
ad_personalization |
Advertising may be tailored to you |
ad_user_data |
Advertising data may be associated with you |
Tag Manager loads only when you accept Targeting (section 5.1), so only Targeting lets the Meta Pixel start. Google's tag follows the four signals above. In the app there is one analytics choice, and it allows all of the tools in section 5.2.
The Meta Pixel and the Google tag send Meta and Google the facts described in section 5.1 so that we can measure our ads. Meta and Google may also use that data, under their own terms, to deliver and improve their ads. Under some laws, such as California's, this can count as "selling" or "sharing" personal information. To opt out, leave Targeting off on pingrep.com, or choose Reject All in the app. The Privacy Choices link in the footer of pingrep.com reopens the choices.
7.0 How consent is applied
pingrep.com uses Google Consent Mode. All four signals — analytics_storage, ad_storage,
ad_personalization, and ad_user_data — are set to denied before any tag loads, and are only
updated if you accept the matching category. The tag manager itself loads only when it is
configured for the environment you are visiting.
| Category | Signals it controls |
|---|---|
| Performance | analytics_storage |
| Targeting | ad_storage, ad_personalization, ad_user_data |
| Functional | None — handled entirely within our site |
Performance also turns on PingRep's own visit measurement. Tag Manager loads for Targeting only.
The app has one choice, kept in analytics_consent. Until you accept analytics, PostHog,
Google Analytics and Google Tag Manager are not loaded at all. The app does not use Google
Consent Mode, so once you accept, Google's tags treat every signal as granted.
8.0 Browser privacy signals
Global Privacy Control — pingrep.com honours it. If your browser or extension sends
navigator.globalPrivacyControl, pingrep.com sets every optional category to off, records that the
choice came from the signal, and does not prompt you. You do not have to do anything else. The app
does not read Global Privacy Control yet. In the app, choose Reject All.
Do Not Track — we do not respond to it. The Do Not Track header was never implemented consistently across browsers and carries no agreed meaning, so we do not act on it. This is not a gap we are hiding: use Global Privacy Control, or the cookie controls below, and your choice will be respected.
9.0 Managing your choices
- On pingrep.com: open the cookie controls to accept, refuse, or change any optional category. Your change applies to our own measurement at once. Withdrawing Targeting takes full effect after the next page load, because ad tags that already loaded keep running until then.
- In the app: open
app.pingrep.com/login?cookies=showto bring the cookie screen back, then choose again. Clearing this site's data in your browser does the same. Tools that already loaded keep running until the next page load. - In your browser: every major browser lets you block or delete cookies and clear site storage. Blocking strictly necessary storage will stop parts of the site from working.
- Via Global Privacy Control: turn it on in a browser or extension that supports it, and pingrep.com will treat it as an opt-out automatically.
10.0 How long your choices last
On pingrep.com your consent choice is stored for 6 months. After that the banner appears again so you can confirm or change it. If you clear your browser storage, the choice is cleared too and you will be asked again on your next visit.
In the app your choice stays in your browser until you clear this site's data or bring the cookie screen back and choose again.
11.0 Changes to this policy
When we change this policy we update the date at the top, and the previous versions remain in the public history of this document. Material changes to what we collect, or to which providers are involved, are reflected here before they take effect.
12.0 Contact
| Reason to contact us | Where to write |
|---|---|
| Questions about cookies and storage | privacy@pingrep.com |
The controller of the storage described in this policy is Keynodex LLC, Florida, USA.