Effective October 15, 2026
Privacy Policy
JocoProxy keeps proxy configuration, credentials, browsing destinations, and traffic content off JoCoding, Inc. systems. Optional anonymous analytics is sent only after you opt in, and install attribution is used only if you allow it—through Apple's App Tracking Transparency prompt on iOS, or JocoProxy's install-measurement prompt on Android.
1. Controller and contact
JocoProxy is provided by JoCoding, Inc., a Delaware corporation at 1111B S Governors Ave, STE 80543, Dover, DE 19904, United States. Privacy questions and rights requests may be sent to mu07010@jocoding.net or +1 (231) 450-5622.
2. Optional anonymous analytics and attribution
Product analytics is off by default. If you enable “Share anonymous analytics” in Settings, the app sends approved product events to PostHog. Product analytics is not used for tracking. The legal basis is your consent. You can withdraw it at any time in Settings, and the app stops new events immediately.
Separately from the in-app setting, our purchase provider RevenueCat forwards store purchase events (such as a purchase, refund, or billing issue) to PostHog so we can measure sales. Each event carries the product, price, currency, store, and country code, and an anonymous ID: your analytics ID if you have enabled “Share anonymous analytics,” otherwise RevenueCat’s anonymous app user ID. It never includes your name, email, proxy settings, credentials, or browsing activity. Only people who make a purchase produce these events, and they are processed for our legitimate interest in understanding sales.
Install attribution through AppsFlyer is used only if you allow tracking in Apple's App Tracking Transparency (ATT) prompt, which the app shows on first launch. If you decline, or later turn off Allow Tracking in iOS Settings, AppsFlyer is not started, or it stops the next time the app becomes active. Changing the analytics setting does not turn attribution on or off. PostHog and AppsFlyer process data in the United States.
PostHog receives app opened, profile created, connection attempted, connection result (including a fixed failure category), connection disconnected, language changed, diagnostics export initiated, update prompt shown or tapped, Pro purchase screen shown or purchase result (with only where the screen was opened and whether the purchase succeeded, was cancelled, or failed), the exit country of a successful connection (a two-letter country code only, see section 6), the country of your App Store or Google Play account (a country code only), proxy-provider links shown or opened (with only where they appeared and which provider), and the outcome of each interstitial ad opportunity (shown, replaced by a Pro offer, not loaded, or failed to show), with the limited fields described in the app. AppsFlyer receives its Strict SDK install/open attribution and one custom jocoproxy_connection_ready event with no custom properties. Analytics and attribution events never include advertising identifiers such as IDFA; the AppsFlyer Strict SDK does not collect IDFA. The analytics setting is a separate choice from the tracking and advertising consent described below—changing one does not change the other. If you allow tracking and Meta Ads integration is enabled, eligible aggregate attribution and conversion measurement may be forwarded through AppsFlyer using Apple SKAdNetwork and Meta AEM.
We do not send proxy hosts, ports, IP addresses, profile names, usernames, passwords, URLs, DNS queries, browsing destinations, traffic content, raw error text, or diagnostic contents. PostHog and AppsFlyer necessarily handle ordinary request metadata while delivering and securing requests. PostHog is instructed not to enrich events with IP-based location, and IP-based geolocation enrichment is disabled. We retain product-event data for no longer than 12 months and then delete or aggregate it. Attribution retention follows the configured AppsFlyer service terms. Where international-transfer safeguards are required, we use the safeguards available under each provider's data-processing terms.
Crash and error reports
Starting with iOS and macOS 1.1.1 and Android 1.0.3, the app sends crash reports and a small set of connection-error reports to Sentry (Functional Software, Inc., United States) so we can find and fix defects. This happens without an opt-in because it is needed to keep the app working; the legal basis is our legitimate interest in app stability. A report contains the app version and build, operating-system version, device model, a stack trace, an anonymous installation identifier generated by Sentry, and—for connection errors—only a fixed failure code, the proxy protocol type, and the error's type, domain, and numeric code. Reports never include proxy hosts, ports, IP addresses, profile names, usernames, passwords, URLs, DNS queries, browsing destinations, traffic content, or error message text; screenshots and view hierarchies are disabled, and Sentry is instructed not to attach personal data. Failures caused by your proxy (for example, an unreachable proxy or a rejected password) are not sent to Sentry. The Packet Tunnel extension does not include Sentry. Reports are kept for up to 90 days.
3. Advertising
The free version of JocoProxy shows a banner on the profile screen and an occasional full-screen interstitial before a connection attempt. The interstitial is frequency-limited, is shown only while the tunnel is off, and never blocks a connection. Purchasing JocoProxy Pro removes all advertising.
Ads are served by Google's Mobile Ads SDK (AdMob) and consent is collected by Google's User Messaging Platform (UMP). In the EEA and the United Kingdom, UMP presents a GDPR consent message first. On first launch, after any required UMP message, the app shows Apple's App Tracking Transparency prompt (a UMP explanation may appear just before it); if you allow tracking, Google may use the advertising identifier (IDFA) for personalized ads, and if you decline, ads continue in a non-personalized or limited form. Apple SKAdNetwork may measure installs and conversions from our own ad campaigns without exposing your identity.
UMP stores your advertising-consent state on the device, and where regulations require it, a “Ad privacy options” entry in Settings reopens the consent form. Ad frequency counters are stored locally in UserDefaults and are never sent to us. Advertising consent is separate from analytics consent. The ad SDK never receives proxy hosts, ports, profile names, credentials, URLs, DNS queries, browsing destinations, or traffic content.
4. Purchases
JocoProxy Pro is a one-time, non-consumable purchase processed by Apple through the App Store; Apple handles payment details, taxes, refunds, and restoration under its own terms. RevenueCat, Inc. manages your entitlement status for us using an anonymous app user ID—no account, email, or name is collected for the purchase, and your purchase history is not linked to your identity. When you buy, the app also tells RevenueCat which in-app screen the purchase started from (for example, Settings or the profile limit). If you have opted in to analytics, RevenueCat also receives the anonymous analytics ID of that app session so the purchase can be matched to the same anonymous usage events; turning analytics off removes this link. RevenueCat’s forwarding of purchase events to PostHog is described in section 2.
5. Information stored on your device
- Proxy profile settings are stored in the app's shared local container.
- Proxy usernames and passwords are stored in the iOS Keychain.
- Apple MetricKit diagnostic records may be retained locally for troubleshooting.
- Your analytics choice, ad-consent state (via UMP), Pro entitlement status, and ad frequency counters are stored locally in UserDefaults.
This local information remains under your control and is removed according to iOS behavior when you delete it or uninstall the app.
6. Network connections you initiate
When you turn on a profile, the app sends network traffic to the proxy server you configured and onward to the destination you requested. Those independent proxy operators, destination services, internet providers, and Apple may process data under their own terms and privacy policies. They are not JoCoding, Inc. app analytics or a JoCoding-operated relay. Review and trust a proxy provider before entering credentials or connecting.
Ad requests to Google are made only while the tunnel is off, and the home banner pauses refresh while the tunnel is connected, so advertising traffic does not pass through your proxy server.
Exit-country check
Starting with iOS and macOS 1.1.3 and Android 1.0.5, right after a connection succeeds the app sends one request through your proxy to jocoproxy.jocoding.io/egress, a JoCoding endpoint hosted on Cloudflare. Because the request leaves through your proxy, it reaches us from your proxy's address, not your own. Cloudflare reports the country that address belongs to, and the endpoint returns only that two-letter country code; we do not log the request. The app shows the country on the home screen and in Settings so you can confirm where your traffic exits. It is sent to PostHog only if analytics is on. Cloudflare may process ordinary request metadata as described in section 11.
Proxy-provider links
JocoProxy does not sell proxy servers. The app and this website may show links to third-party proxy providers. Some are affiliate links: if you buy through them, the provider may pay JoCoding, Inc. a commission at no extra cost to you, and may use its own cookies or a coupon code to attribute the purchase. Links open in your browser on the provider's own site, which handles your account and payment under its own terms and privacy policy. We do not receive your payment details; a provider may report to us only that a purchase was made through our link and the commission due.
7. Diagnostics and support
Apart from the crash and error reports described in section 2, the app does not automatically upload diagnostics; MetricKit records and diagnostic files stay on your device. If you deliberately export a diagnostic file with the iOS share sheet and send it to us, we process the file and your message only to answer your support request. We retain support correspondence only as long as reasonably needed to resolve the request, protect the service, and meet legal obligations, then delete or de-identify it.
8. Children
JocoProxy is not directed to children under 16, and JoCoding, Inc. does not knowingly collect personal data from children through the app. Advertising settings are configured consistently with this audience.
9. Your choices and rights
You can edit or delete profiles, stop the tunnel, disable analytics, review or withdraw advertising consent where offered, or uninstall the app. Where applicable, you may request access, correction, deletion, restriction, portability, objection, or withdrawal of consent for information processed by us, and complain to your local data-protection authority. Because the analytics identifier is random, process-only, and not linked to an account or identity, we generally cannot identify or retrieve a particular person's events from an identity request. We likewise cannot access or recover local profile or traffic data.
10. International users
JoCoding, Inc. is established in the United States. Optional analytics, crash and error reports, advertising requests, purchase management, and support messages may be handled in the United States for the purposes described above. Our service providers include PostHog, AppsFlyer, Sentry, Google (AdMob and UMP), RevenueCat, Apple, and Cloudflare, each bound by its own data-processing terms. We do not claim that an EU representative, Korean domestic representative, DPO, or other local representative has been appointed where no appointment has been verified; questions may be directed to the controller contact above.
11. This website
These public pages do not use advertising or analytics cookies. The US TikTok guide page loads PostHog (United States) to count anonymous page views, button clicks, and scroll progress; it stores nothing in cookies or local storage for this, does not identify you, and does not load when your browser sends Global Privacy Control or Do Not Track. App Store links on the site carry a campaign label so downloads can be attributed in aggregate. Cloudflare provides hosting, delivery, and security and may process ordinary request metadata such as IP address, time, requested URL, and security signals under its applicable policies.
12. Android app
The Android version of JocoProxy follows this policy, with these platform differences.
- Install attribution. Android has no App Tracking Transparency prompt. After any required ad-consent message, JocoProxy asks once whether to allow install measurement. Only if you choose Allow does AppsFlyer start; it then receives install and app-open attribution together with your device's Google advertising ID and basic device information. You can turn this off at any time in Settings → Allow install measurement, which stops AppsFlyer. You can also reset or delete the advertising ID in your Android settings.
- Advertising. Google's Mobile Ads SDK may use the Google advertising ID to serve and measure ads, and personalized ads are used only where your consent and settings allow. In the EEA and the United Kingdom, UMP collects consent first, and an “Ad privacy options” entry appears in Settings where required.
- Purchases. JocoProxy Pro on Android is a one-time purchase processed by Google Play under Google's terms; RevenueCat manages the entitlement with an anonymous app user ID as described above.
- On-device storage. Proxy profiles are stored in the app's private storage, and proxy usernames and passwords are encrypted with keys held in the Android Keystore. Your analytics and attribution choices, ad-consent state, entitlement status, and ad frequency counters are stored in app-private preferences. Uninstalling the app or clearing its data removes them.
- VPN service. The app uses Android's VpnService on your device to send traffic to the proxy you configured. While connected, a status notification and the optional Quick Settings tile show the profile name, connection state, and elapsed time; they never show your proxy host or credentials. No traffic, destination, or DNS data is sent to us.
- Diagnostics. A diagnostic file is shared only if you deliberately export it with the Android share sheet. Crash and error reports are sent to Sentry as described in section 2.
The Google Play Data safety section reflects these practices.
13. Changes
We will post material changes on this page and update the effective date. If app functionality changes to add accounts, subscriptions, broader analytics, or automatic diagnostic uploads, we will update this policy and the App Store and Google Play privacy answers before release.