Net-Diagnotor Privacy Policy

Effective: 2026-06-21 · Policy Version: v12

App-specific Privacy Policy is self-hosted by our Server: https://api-net-diagnotor.zinben.net/legal/privacy-policy.en.html. The legal entity name and the company-wide master Privacy Policy URL are rendered in the "Company-Level Legal Documents" section at the bottom of this page (single source of truth, injected from AppConfig.Legal.companyPrivacyPolicyUrl by LegalDocRenderer). Relationship: this app-specific policy is the specific application of the company-wide master policy to Net-Diagnotor. Where they do not conflict, this policy applies first; for matters not covered here, the company-wide policy applies.

Material updates trigger a "new version" prompt in Settings → Privacy and re-show the first-launch consent screen.

Contact: contact@zinben.com


1. Who We Are

Net-Diagnotor (the "App", "we") is a network-diagnostic and Discovery mobile application developed and operated by the Zinben team. Our data-protection contact is contact@zinben.com.

2. Data We Collect — Why and How Long

CategoryExamplesSourcePurposeGDPR Lawful BasisRetention
Device IDsIDFA / Android Ad ID (after consent), App Instance ID, Crashlytics Installation UUID (Android only)OS / SDKAd serving, analytics, crash attributionConsent (Art.6(1)(a)) / Legitimate interest (Art.6(1)(f))While consent is granted, max 60 days
Device infoModel, OS version, screen, language, carrier, network typeOSDiagnostics, product improvement, ad servingLegitimate interest90 days
Ad anti-fraud & attribution signalsOAID / Android ID (where available to the OS / SDK), accelerometer / gyroscope / gravity / magnetometer sensor data (Android official/Huawei Build 860+ does not collect installed-app / uninstall lists)Ad SDKs (such as Tencent GDT, Android ad builds only)Ad serving, anti-fraud, ad measurement, attributionConsent (Art.6(1)(a)) / Legitimate interest (Art.6(1)(f))While consent is granted, max 60 days
Coarse locationCountry / region resolved server-side via GeoLite2, local IP-lookup logic, and fallback third-party services (Baidu IP / ip-api.com; only the public IP is transmitted)Server / 3rd-party IP lookup servicesDiscovery map regionalization, regional adsLegitimate interestNot stored as raw IP — only de-identified IP prefix (IPv4 last octet zeroed; IPv6 truncated to /48) is persisted in probe records
Discovery probe recordsTimestamp, carrier, network type, signal strength, connectivity result, de-identified IP prefixAppNetwork reachability heatmap, carrier-quality stats, community sharingLegitimate interest / ConsentServer-persisted ≤ 90 days (matches scheduler), exposed only as aggregates
Usage & ad eventsScreen views, button taps, ad impressions / clicksAppFunnel analysis, ad measurementConsent / Legitimate interest90 days (analytics) / 60 days (ads)
Crash & performanceStack traces, custom logs, request latency, frame rateSDKStability and performance optimizationLegitimate interest90 days
Purchase dataTransaction ID / Original Transaction ID / Purchase Token / Subscription ID / OpenDev order IDStoreKit / Google Play / HarmonyOS IAPKit / Huawei IAP + OpenDev (Android Huawei APK) / OpenDev Web Payment (official / Desktop builds)Subscription validation, tip fulfillment, refund handling, tax complianceContract (Art.6(1)(b)) / Legal obligation (Art.6(1)(c))5 years (tax retention)
OpenDev account IDaccountId, sign-in method metadata (OAuth / phone / email; no passwords)OpenDev Accounts (via Server BFF)Cross-device entitlement sync, account bindingContractWhile account is active; deleted on unbind per DSR
Rewarded Basic membershipdeviceId / accountId (when signed in), rewarded-ad claim recordsServer + ad SDKs (portal Web / some app channels)Short-term Basic days after rewarded videoConsent / ContractMatches reward validity; audit logs ≤ 90 days
Discovery short-video interactionsdeviceId (required); accountId when signed in (OpenDev, Bearer-verified, not forgeable via URL)App Discovery H5 WebViewLike / favorite / follow PGC authors; anonymous view statsLegitimate interest / ContractRaw events ≤ 90 days; when signed in, interaction view may sync across bound devices; unbind / sign-out reverts to device-only view without deleting history
Portal speed test (M-Lab)Speed-test session metrics (including client public IP address, up/down/latency; no account)Submitted to Measurement Lab (M-Lab) NDT7 after explicit user consentM-Lab public network-measurement dataset (IP and related fields may be publicly retained long-term)ConsentRetained by M-Lab under its policy (see measurementlab.net/privacy); we do not build separate user profiles
Portal monitor checkChecks run in the browser; check results are not uploaded (except when you manually copy JSON)Portal Web / in-app WebView (NetSafe H5)Network environment self-check (DNS, proxy, clock drift, etc.)Legitimate interest / user-initiatedNot stored; same-origin probe APIs are real-time only
Room Privacy CheckOn-device LAN / Wi-Fi / BLE / camera guidance / magnetic clues; SSID/BSSID/MAC/BLE raw values and room frames not uploaded by defaultApp task desk (Android official builds; Basic+)Aggregate multi-signal clues worth a manual reviewConsent / ContractReports stored on-device only (recent ~20); except when you choose to share a redacted summary
User-submitted contentText and device model in feedback / Discovery / forumUserCustomer support, community opsConsent / ContractUntil user deletion, lawful deletion request, or service sunset

We do not collect: precise GPS, contacts, photo library (unless the user explicitly attaches to a feedback ticket), biometrics, or health data.

Note on Discovery probe records: to power Wi-Fi / cellular signal heatmaps and community sharing, probe records are persisted server-side (the probe_records table). The server never stores the full IP — only a de-identified prefix (IPv4 last octet zeroed; IPv6 truncated to /48) is kept, used solely for carrier- and region-level aggregates. All public endpoints return aggregated results, never per-device data.

3. Sharing With Third Parties

We share certain data with the SDK / service providers below. The complete list (versions, fields, provider privacy links) is maintained at: https://api-net-diagnotor.zinben.net/legal/sdk-list.html

Categories:

We do not:

4. Your Choices and Rights

4.1 Consent Management

4.2 GDPR / CCPA / China PIPL Data Subject Rights

You have the right to access, correct, delete, port, restrict, or object — and, under CCPA, to opt out of "sale".

We respond within 30 days to email requests. Self-serve deletion is effective immediately. Step-by-step guide: https://api-net-diagnotor.zinben.net/legal/revoke-consent.html

4.3 Children

Our content ratings on the App Store, Google Play, Huawei AppGallery, and other stores are 4+ / all ages (as shown on each store listing). That reflects content suitability for a general audience. We do not market the App as directed at children. We configure AdMob with tagForChildDirectedTreatment=NO and maxAdContentRating=G, consistent with this approach.

Age requirements for personal-information processing:

5. Security

6. International Transfers

7. Subscription & Purchase Data

7.1 Store IAP (Apple / HarmonyOS)

When you subscribe via App Store / Huawei AppGallery HarmonyOS NEXT Ark build (com.zinben.NetHelp), we collect the following data to manage auto-renewing subscription state. Android Google Play APKs use §7.2; Android Huawei APK membership/tips use §7.3.

DataSourcePurposeStorage
Apple originalTransactionId / Huawei purchaseTokenStoreKit 2 / Huawei IAP / HarmonyOS IAPKitSubscription identification, prevent duplicate provisioningDevice-local (App Group / Keychain / EncryptedSharedPreferences) + server-side order ledger
Subscription product IDSame as aboveIdentify which product you boughtSame as above
Expiration dateSame as aboveDetermine entitlement statusSame as above
revocationDate (refund time)Same as aboveDetect refunds and revoke entitlement promptlySame as above

We do not collect: credit card info (handled by the payment platforms), Apple ID / Google Account / Huawei Account, family member information.

Third-party processors:

7.2 Google Play Android channel (OpenDev orders + Play Billing)

On Android Google Play APKs (com.zinben.NetHelp / com.zinben.NetHelpStandard, KMP googleplay / googleplayStandard flavors), Basic / Pro subscriptions and tips are paid via Play Billing (SUBS / INAPP; Play Console configuration unchanged) while orders and entitlements are managed by OpenDev + our Server BFF (web_billing_*). This path does not use OpenDev WeChat H5 checkout (§7.4). We record purchaseToken, OpenDev order IDs, productId, deviceId / accountIdnot card numbers. Renewal: subscription validUntil follows Play expiryTimeMillis and RTDN; first purchase is anchored by an OpenDev ord_* for reconciliation. Tips are one-time INAPP, not auto-renewing.

7.3 Huawei Android channel (OpenDev orders + Huawei IAP)

On the Android Huawei APK (com.zinben.NetDiagnotor, KMP huawei flavor), Basic / Pro membership and tips are paid via HMS IAP (consumable SKUs on AGC) while orders and membership periods are managed by OpenDev + our Server BFF (entitlements in web_billing_*). This path does not use the OpenDev WeChat H5 checkout (§7.4). We record purchaseToken, OpenDev order IDs, productId, deviceId / accountIdnot card numbers. Renewal: valid-until is computed by OpenDev; no HMS subscription auto-billing; WebSubscriptionRenewalPrompt reminds you before expiry; you repurchase the same product ID to extend.

7.4 OpenDev Web Payment (official / Desktop)

For Basic / Pro subscriptions or one-time tips via the Server-hosted checkout H5 (OpenDev Web Payment) on official APK and Desktop, we record OpenDev order IDs, productId, deviceId / OpenDev accountId, and payment status for fulfillment and tax compliance — not full payment credentials. Renewal/cancellation follows OpenDev checkout and the relevant payment provider; contact contact@zinben.com for order lookup.

7.5 Rewarded Basic (rewarded membership)

Some surfaces (including CN mobile portal Web) let you earn short-term Basic days by watching rewarded video ads (daily cap and stack cap as shown in-app / on the portal). Watching rewarded ads does not charge you; earned Basic days are not a paid subscription or auto-renewing plan — no automatic billing when they expire.

7.6 Room Privacy Check

Basic members and above may use Room Privacy Check in the App task desk to aggregate multi-signal clues worth a manual review (LAN device responses, nearby Wi-Fi / BLE broadcasts, camera-guided sweep, magnetic sensor, etc.) in the current authorized network and space. Free users see a feature preview and upgrade entry only — no real scan, system permission prompts, or on-device report storage.

Detailed consumer-side subscription rules (auto-renewal, cancellation, refund, cross-device restore, family sharing, free trial) are in Net-Diagnotor Subscription Terms.

8. Updates

For material changes we will:

  1. Show a "new version" notice in Settings → Privacy;
  2. Increment the backend LEGAL_POLICY_VERSION so the App re-shows the first-launch consent on next launch.

Prior versions are available on request to contact@zinben.com.

9. Relationship with the Company-Wide Master Privacy Policy

Net-Diagnotor is operated by Zinben. This app-specific policy is the specific application of the company-wide master Privacy Policy to Net-Diagnotor. Where they do not conflict, this policy applies first; for matters not covered here, the company-wide policy applies. Company-wide rules (global office addresses, DPO contact, cross-product data-sharing framework, etc.) are governed by the master policy.

The legal entity name, master Privacy Policy URL, and contact email are rendered in the "Company-Level Legal Documents" section below. The backend can adjust them via the LEGAL_COMPANY_NAME / LEGAL_COMPANY_PRIVACY_POLICY_URL environment variables without editing this Markdown file.


Zinben Net-Diagnotor Team · Last updated: 2026-06-21