Ohio Cop for iOS — Privacy Policy

Effective October 18, 2026 (Ohio Cop version 4.1). This complete policy is bundled with Ohio Cop and remains available offline. This page has the same sections and wording and adds the app’s identifiers, a table of the fields each analytics event carries, the App Store privacy label and contact details.

This policy applies only to the iOS app Ohio Cop, Apple ID 379418730, bundle ID com.qbiki.OhioLEO, published through WL Online Marketing LLC.

Ohio Cop is independent and unofficial. It is not affiliated with or endorsed by the State of Ohio or any government, law-enforcement, or emergency-services agency.

Summary: no account; no ads or cross-app tracking; limited analytics and purchase data; directory use stays on the device.

Data collection and sharing

Ohio Cop uses first-party ACAnalytics to send an installation event with a random anonymous identifier, identifier for vendor, device model, operating-system and app versions, locale, country, and currency. When Apple makes one available, it also sends an Apple Search Ads attribution token with the device and app fields.

When the app decides whether this device has access, it sends an access event with the decision (volume purchase, kept from an earlier purchase, subscribed, subscription required, or purchase not confirmed), a coarse group for the app version first acquired (before version 10, version 10 or later, or unknown), the App Store environment, and the app version.

With the access event, the app also sends diagnostic information about how it checked the purchase: the outcome of reading the App Store purchase record; the kind of StoreKit error, with the error domain and number and those of any underlying error; the kind of verification failure; the environment and coarse version group the record reports and whether its app identifier was missing, matched, or did not match; whether an App Store receipt file exists and which kind of file name it has; and, when a receipt file exists, the result of the volume-purchase check as a short code (for example, a volume-purchase receipt, or a receipt without the volume-purchase field). The diagnostic information contains no receipt contents, dates, or identifiers.

After a verified subscription purchase, renewal, or restore, and the first time this installation sees an active subscription, the app sends the StoreKit transaction details (transaction and original transaction identifiers, product, environment, purchase and expiration dates, and web order line item) and the App Store receipt, with the device and app fields.

Every event also carries the random anonymous identifier, the app's bundle identifier, and a client key that is the same for every installation of the app.

Stored by the analytics service: the service that receives these events runs on Cloudflare. With each event it also stores the device's IP address and Cloudflare's estimate of the device's location based on that IP address (continent, country, region, city, postal code, metro area code, approximate latitude and longitude, and time zone), together with the network provider and technical details of the connection. The location is only an estimate derived from the IP address. Ohio Cop does not request or access the device's location.

These events are linked to an anonymous or device identifier and are used for analytics only, including measuring the developer's own Apple Search Ads campaigns and subscription purchases. They are not linked to an account, name, or contact details, contain no searches or viewed records, and are not used to track you across other companies' apps or websites. The app does not sell or rent this data.

Purchases

Apple processes subscription payments. Ohio Cop never receives your payment details. The app checks your download and subscription with Apple's StoreKit on the device. If the App Store confirms that this copy was acquired before the subscription started, the app keeps a small marker in this device's keychain so access continues offline.

If the App Store receipt on this device shows that Ohio Cop was obtained through Apple's volume purchasing for organizations, such as Apple School Manager or Apple Business Manager, the app keeps full access without contacting the App Store. It reads only the receipt stored on the device for this check.

Permissions

The app requests no protected permissions. It does not request location, contacts, camera, microphone, photos, calendars, reminders, Bluetooth, notifications, or background access.

Bundled directory data

Directory records and source descriptions are bundled in the app for offline use. Search runs on the device. Search text, viewed records, copied values, and preferences are not recorded by the app.

User-initiated external actions

When you explicitly choose and confirm an action, iOS may pass the selected phone number, email address, street address, or HTTPS link to Phone, Mail, Apple Maps, or Safari. Those apps and services operate under their own terms and privacy policies. Canceling leaves the app without a handoff.

Fax values are display-and-copy only. Copying places the selected value on the system clipboard, which is managed by iOS.

Network use and retention

Ohio Cop makes app-owned requests only to ACAnalytics and to Apple's App Store through StoreKit. Analytics delivery is best effort: missing configuration, attribution unavailability, network errors, and server errors are ignored and never delay, grant, or restrict access. A random anonymous identifier and the identifiers of already-reported transactions are stored on device so events are not sent twice.

Opening an official source or another external destination can cause the selected external app or service to use the network.

Fields sent by the app

Every event goes to https://analytics2.appchair.com/<event> and carries _api_key (the same client key for every installation), bundle_id (com.qbiki.OhioLEO) and anon_id (a random identifier created on the device).

EventFieldsSent when
/app_installationidfv (identifier for vendor), device_model, os_version, app_version, locale, country, currencyonce per launch
/adtokentoken (Apple Search Ads attribution token), idfv, device_model, os_version, app_versiononce per launch, when Apple provides a token
/access_decisiondecision, original_app_version_bucket, environment, app_transaction_read, storekit_error, error_domain, error_code, underlying_error_domain, underlying_error_code, verification_error, payload_environment, payload_app_id_matches, payload_original_app_version_bucket, receipt_file_exists, receipt_file_name, volume_purchase_check, app_version (only the fields that apply to the check)when access first settles in a launch, then only when the decision changes
/iap_receipttransactionId, original_transaction_id, transaction_id, product_id, environment, purchase_date, expiration_date, web_order_line_item_id, receipt (App Store receipt), idfv, device_model, os_version, app_versiononce per verified transaction: purchase, renewal, restore, Ask to Buy approval, and the first time an active subscription is seen
Stored by the server with every eventIP address; Cloudflare’s IP-derived location estimate (continent, country, region, city, postal code, metro area code, approximate latitude and longitude, time zone); network provider (ASN and organization); connection detailsevery event

App Store privacy label (version 4.1): Device ID, Coarse Location, Product Interaction, Advertising Data, Other Data Types, Other Diagnostic Data and Purchase History; all linked to the user, used for Analytics only, not used for tracking.

Changes to this policy

If a future version changes data practices, this bundled policy and the App Store privacy disclosures must be updated before that version is distributed. The policy effective date identifies this edition's terms.

Contact

For privacy questions about Ohio Cop, email support@appholdings.org.