pinwisp / Android app privacy
Step Counter & Pedometer privacy policy
Last updated: November 7, 2026
This notice describes the Android app Step Counter & Pedometer, package com.stepjoy, starting with version 0.2.12 (version code 15). This version replaces Amplitude analytics with the optional PurrHog analytics described below. Earlier versions may still use Amplitude and may handle other features differently; the version-specific descriptions below do not retrospectively describe those older versions. For a question or a data request about an earlier version, contact us at the address below.
What the app does
The app counts steps on your device and shows your daily activity. It shows advertising, and it includes a coins and challenge feature with virtual coins. Virtual coins have no monetary value and cannot be exchanged for money or prizes. The app contains no in-app purchases: it includes no store billing component and offers nothing for sale.
Coins, challenges and workouts
The coins and challenge features are served by a server operated by the publisher. The coins you earn are recorded there, so the coin balance is kept on that server rather than only on your device. Your installation registers with that server and receives a device-based account record. Registration includes a value derived from the Android identifier of your device, your device model, Android version, app version and time zone. These identifiers can link activity to the same installation or device; they are pseudonymous, not anonymous. You do not enter an email address or password for this registration. Uninstalling the app or logging out does not itself delete server-side records.
When you first use the app it asks a few setup questions — gender, how often you walk, and what scenery you prefer — and sends these answers to the publisher's server along with the registration described above. The answers are used to set up challenges and walking routes.
When you record a walking workout for the coins and challenge features, the app sends that workout to the publisher's server: its start and end times, distance, duration, step count, and the recorded route — a sequence of points with coordinates, timestamps, accuracy and a flag for locations the system reported as mocked. The workout is recorded through a foreground service, so Android shows while it runs that the app is tracking a workout. This upload is part of the coins and challenge features and is not controlled by the optional analytics toggle described below.
Other features also talk to the publisher's server: daily check-ins, habit and challenge claims, chest and mission rewards, and similar coin actions are reported there so the balance can be kept. If you choose a display name tag or an avatar glyph for the leaderboards, that choice is stored and displayed publicly with your leaderboard position. If you enter a friend's referral code, the code itself is sent to the server to credit the invitation.
Watching a rewarded advertisement is reported to the publisher's server as well: the ad network, the placement name and how many seconds were watched, so that the coin reward the network confirms can be credited. This record is not controlled by the optional analytics toggle.
On your device
Step counting runs on your device, and the step history the app displays is kept there. Your workout records described above — including their step counts and routes — are also kept on the publisher's server once uploaded. Beyond the flows described in this policy (the server registration, workout uploads, coin and challenge actions, leaderboard identity, referral codes, ad-watching records, the optional analytics, and the advertising SDK's own processing under its own policies), the app does not send your step history or your workouts anywhere else.
Optional analytics, off by default
Starting with this version, the app offers optional usage analytics. They are switched off by default. The analytics component is not set up until you turn it on with the toggle in the app's Profile screen, and turning the toggle off again stops future reporting.
Analytics are sent to PurrHog, the publisher-operated analytics service at ph.purrweb.com, built on PostHog. The app does not enable PostHog person-profile processing or session recordings. Events from the same installation can still be linked using the random installation identifier.
Each report carries a random identifier that the analytics component creates for this installation. The identifier is not derived from your name, email address or any account, but the data is pseudonymous rather than anonymous: the identifier can distinguish this installation from others.
The events describe the app itself: that the app was opened, which screen is open, that a workout started, and — when a completed workout earns a challenge credit — the workout's duration as a coarse range, not an exact value. This range still describes exercise activity, although the analytics event does not include a GPS route or a step count. Reports also carry technical fields: the app name, package name, version, build number, environment label (qa or production) and the selected screen. They do not include your name, email address, any account identifier, payment card content, GPS or other location values, route coordinates or step counts, advertising identifiers, screen recordings or simulated clicks. The separate workout upload described above does carry the recorded route; the analytics never do.
Receiving analytics requests also involves technical connection information: the analytics server receives the IP address of the network request and may store it together with the event and with service logs. When applicable to an event, analytics processing may also derive an approximate region from its IP address.
We do not use these analytics events for advertising targeting. The app does not attach GPS coordinates or precise-location records to them. The IP address is technical connection data and can reveal approximate location; it is not anonymous data. Analytics event records are configured to expire one year after the event's timestamp; deletion is carried out by the storage system's background cleanup. Session replays are not enabled in this app's configuration.
Advertising in version 0.2.12 (version code 15)
The app shows advertising, including rewarded ads; its advertising placements are all rewarded videos you choose to watch. Advertising is delivered through the Unity Level Play platform (ironSource), which processes data under its own policies and is separate from the optional analytics described above. The advertising component is not set up when the app starts; it initializes the first time an ad-supported action needs it. It is initialized with the device-based server account identifier described above, and the app's build declares the Android advertising-ID permission, so the platform can also use the Android advertising ID. The app's build includes only the Level Play platform itself — no other ad-network libraries are bundled. Unity's own Google Play data safety questionnaire for Level Play declares that the SDK collects and shares approximate location, ad-interaction activity and device or other identifiers, and collects diagnostics without sharing them; none of these data types is ephemeral, transfers are encrypted in transit, and Unity provides a method for deletion requests. The purposes it lists are analytics, fraud prevention, security and compliance, and advertising or marketing. This describes the Level Play SDK itself; this notice does not describe any other advertising component that may be present. Unity's questionnaire: Unity's Level Play data safety questionnaire.
Version 0.2.13 (version code 16): separate advertising choice
The following applies if you install version 0.2.13 (version code 16). It adds the Unity Ads network SDK through LevelPlay and a separate “Rewarded ads” switch in Profile. The switch is off by default and is not inherited from “Usage statistics”. The app's advertising init, load and show operations require this separate choice; an ad-supported action is still optional. Without advertising consent you can continue using the non-advertising features. Version 0.2.12 has the different advertising behavior described in the previous section.
Turning this switch on is not consent to personalized advertising or to sale or sharing of personal data. The app sets LevelPlay's GDPR consent flag to false and its CCPA do-not-sell/share setting to true. These settings do not mean that the advertising SDK processes no technical data. Turning the switch off blocks new app-initiated advertising operations and invalidates outstanding reward requests. The SDK does not expose a complete shutdown operation, so already initialized technical processes may continue until the app restarts.
The Android advertising-ID permission remains declared. The device-based server account identifier and the publisher's rewarded-ad records described above remain separate from optional analytics. This change does not add purchases, real-money withdrawals or cash prizes.
This version includes Unity LevelPlay (ironSource), the Unity Ads mediation adapter and the Unity Ads network SDK. LevelPlay chooses among advertising sources configured by the publisher; the presence of a library does not mean that every source will serve an ad. Advertising platforms may receive technical request and device information, identifiers, the IP address, an approximate region derived from that address, and interactions with the advertisement. Advertising processing is separate from the optional PurrHog analytics described above.
Unity's LevelPlay disclosure lists collection and sharing of approximate location, ad interactions and device or other IDs, and collection of diagnostics. Unity's separate Unity Ads disclosure additionally lists personal identifiers, purchase history and shared diagnostics; it describes page views and taps during the ad experience, not gameplay. Unity documents app-usage-time collection when Acquire Optimization is enabled. These are Unity's SDK disclosures, not a statement that this app offers purchases, sends email addresses to advertising, or has enabled that optimization.
Unity lists advertising or marketing, analytics, app functionality, fraud prevention, security and compliance among the purposes, depending on the data type. Its published SDK disclosures describe the collected data as not ephemeral, state that transfers are encrypted in transit and provide for deletion requests. For Unity's own processing and request options, see Unity's privacy policy. These advertising disclosures do not replace the publisher's separate analytics and account information in this notice.
This policy page
When you visit this page, the hosting service receives the technical request information needed to deliver it. The app does not attach your step history to this page's address.
Privacy requests and device-based account deletion
To request deletion of your device-based account and associated workout, profile and activity records, follow the existing StepJoy privacy-request instructions: email purrweb.services@gmail.com with the subject “StepJoy Privacy Request”. Include the app name and information that can help locate your device-based record, such as your public leaderboard tag. Do not send passwords, access tokens or payment details. Uninstalling or signing out does not make this request for you.
The existing procedure explains that some ledger, security and anti-fraud records may need to be retained or anonymized for legal obligations, fraud prevention, disputes or legal claims. This notice does not add a new numeric retention period for that backend. The one-year analytics-event expiry above is separate from device-account and workout records. You may also contact us at the support address below if you need help with a privacy request.
Contact
For privacy questions, email support@pinwisp.com. If you email us, we receive your email address, message and any details you choose to include so that we can respond. Email correspondence takes place outside the app.