Privacy policy

Apart from Google Analytics on our brand guide (below), ptakaro sets no cookies on its website, shows no ads, uses no third-party trackers and has no user accounts. This page lists everything we record when you use the website or the app, where it is kept, for how long, and how to have it deleted, apart from what Google Analytics records on our brand guide, which Google keeps under its own policy (below).

Last updated

In short

  • No cookies from ptakaro, no ads, no third-party trackers and no user accounts, on the website and in the app. The one exception is our brand guide at ptakaro.com/branding/, which uses Google Analytics (below).
  • Our database keeps IP addresses only as a hash made with a secret key that is replaced every day, so its records cannot be linked across days. The web server's access log keeps a shortened IP address instead; only its error log, which records serious faults of the server itself, can hold a full one. Our brand guide's own web server can log your full IP address too (below).
  • Website events and shop-link clicks are deleted from our database after 90 days; its backup copies keep them for up to 31 days more. If your browser sends Global Privacy Control or Do Not Track, our website sends no events at all, apart from Google Analytics on our brand guide, which loads whatever your browser sends (below).
  • We keep everything we record, and our backup copies of it, on one server hosted by Hostinger in Boston, United States, apart from what Google Analytics records on our brand guide, which Google keeps (below).

Who is responsible

Asif Ahmed Mirza, House 37, Block L, Johar Town, Lahore, Pakistan. Privacy questions and requests: hello@ptakaro.com.

Where your data is kept

The website, the API that the ptakaro app talks to, and the database that holds reports, price alerts, shop-link clicks and website events all run on one virtual server hosted by Hostinger in Boston, United States. The web server's logs and our backup copies of the database are kept on the same server. Your browser or the app connects straight to that server; no content delivery network sits in between.

Our server makes a backup copy of the database at least once a day, and before each update of its software. A copy holds the database's records as they were when it was made, including reports, price alerts with their push tokens, shop-link clicks and website events with their hashed IPs, but none of the secret keys for those hashes. Our copies stay on that server: sending copies anywhere else is switched off, and we will update this page before we switch it on. A copy is deleted after about two weeks; the 3 newest are kept even when they are older, until newer copies replace them, but every backup run deletes every copy more than 30 days old, so no copy is kept longer than 31 days.

So whatever we delete from the database, on schedule or because you asked, stays in the copies made before then until those are deleted, at most 31 days later. If we ever have to restore the database from a copy, what was deleted after that copy was made can come back with it.

When you browse the website

Our website reports a few events to our own server, never to anyone else, apart from Google Analytics on our brand guide (below). Each one carries the address of the page it was sent from, without any query, and that it came from the website, and:

  • a page view: nothing more;
  • a search: the number of results, never your search words;
  • a calculator run: the route (passport or CNIC), whether you chose a phone or typed a value, and the kind of result, not the value;
  • opening a comparison: how many phones;
  • sharing a PTA estimate: that you shared one, not what it said;
  • page speed, for a random 25% of page views: how long the page took to start arriving, to show its largest part and to respond when you tap or type, and how much its layout shifted unexpectedly while you were on it, each rounded, with how you reached the page (opened, reloaded, back or forward, prerendered or restored). It is sent once, when you leave the page.

We store each event with the time and the hashed IP, and delete it from our database after 90 days; its backup copies keep it for up to 31 days more. Only ptakaro.com sends them, and never when your browser sends Global Privacy Control or Do Not Track; our server also stores no event it receives with either signal.

Search runs in your browser, on a list of pages it downloads from us, but your search words can still reach our server inside an address. A search from a search box on another page, such as the one at the top of a page or on the home page, asks our server for the search page with your words in its address (ptakaro.com/search/?q=…), and so does the search page's own box when JavaScript is off. The search page keeps them in its address, so the requests your browser then sends us from it, such as for the next page you open, can name that address as the page they come from. Our access log leaves out the query, the part of an address that holds the words, and does not record the page a request comes from; the error log can hold them (both below).

Our web server's access log, for requests from the website and from the app, keeps a shortened IP address (the last part of an IPv4 address removed; of an IPv6 address only the first three groups kept), the time, the website name, the method, the page address without any query, the response's status and size, how long it took (and how long our API took, for a request it answered), a request number and your browser's or app's user-agent text. We keep it for up to 14 days, then delete it.

When the web server meets a serious fault of its own while it answers a request (its disk is full, for example), it also writes a line to its error log: your full IP address, the time, the whole address you asked for, including any query such as search words, the website name and the address of the page you came from. Only such serious faults are written there, never ordinary requests, and the error log is deleted on the same schedule as the access log.

The proxy in front of our web server on the same machine keeps no access log. Our API also writes a line for each request it answers to its own log (the time, the method, the route and the address without any query, the status, how long it took, a request number and which server process wrote it), and a line about the problem when something goes wrong while it answers a request, with no IP address, push token or email. The server keeps the newest 30 MB of it.

Our accounts on Facebook, Instagram, LinkedIn and X (Twitter) are run on those companies' sites, and their privacy policies apply when you visit them.

Our brand guide

Our brand guide, at ptakaro.com/branding/, is a separate page with its own web server, and the one part of our website that loads anything from an outside service: Google Analytics, Google's service for counting visits. When you open the guide, your browser loads Google's code from Google's servers and sends Google a record of the visit. By default, that code sets two cookies for ptakaro.com, _ga and one whose name starts with _ga_, which last up to 2 years after they were last set; your browser then also sends them with its requests to the rest of ptakaro.com. The rest of our pages and our server do not read them, and our logs do not record them. Google handles what it collects under its own privacy policy: see How Google uses information from sites or apps that use our services.

The guide's web server can log each request it answers with your full IP address, the time, the address you asked for including any query, the page you came from and your browser's user-agent text, and keeps the newest 30 MB of that log. The rest of ptakaro.com and the app use no outside analytics service.

When you use the app

The app asks our API for the phones, prices and pages you open, so the access log above records those requests as it records the website's, and their addresses name the phone or page. When you search, your words go to our API in the request's address; they are used only to answer it, and the answer is marked so that no cache keeps it. The access log and our API's log leave them out; only an error-log line about a serious server fault can hold them, as described above.

The app contains no analytics, advertising or crash-reporting code and sends us no usage events. If you let your phone share crash reports with app developers, Apple or Google may pass on reports of ptakaro crashing. Pages of ptakaro.com that the app opens (About, this privacy policy and the other pages under More) load in your phone's in-app browser, where the website rules above apply.

When you follow a shop link

Every “Go to shop” link, on the website and in the app, passes through our server. We record which offer you chose (and so the phone, version and shop), whether the link can earn us a commission, the kind of page you came from (or that it was the app), whether the request looked like a bot, the hashed IP and the time. This happens even with Global Privacy Control or Do Not Track, because it is how we count clicks for shops; it says nothing about who you are. Our server then sends you on to the shop's website, which is under the shop's own privacy policy. Click records are deleted from our database after 90 days; its backup copies keep them for up to 31 days more.

When you report a wrong price

We store what you send (the phone and version, the shop's offer if you picked one, the price you saw, the shop's name, your note, your email if you add it, and whether it came from the website or the app) with the time and the hashed IP, so a person can check it and we can limit abuse; we also note whether that person resolved or dismissed it, and when. Your email is used only to reply about that report. After 90 days we erase the email and the hashed IP from our database, and its backup copies keep them for up to 31 days more; the rest of the report stays as part of our price records. On request we erase your note, the shop's name as you gave it, your email and the hashed IP from our database at once; backup copies made before then keep them for up to 31 days.

When you set a price alert in the app

The ptakaro app keeps your watchlist on your phone; saving a phone sends us nothing. In versions of the app that offer price alerts, turning one on first asks your phone for permission to show notifications. Your phone's push service (Google's Firebase Cloud Messaging on Android, Apple's Push Notification service on an iPhone) then gives the app an address for your phone, a push token, which the app registers with Expo, the service our notifications go through, together with a random number it makes up for this install. On an iPhone that number and the details of the registration are kept in the phone's keychain, which an iPhone can keep after the app is deleted, so the app can use the same number again if you install it again.

For each alert we store a random identifier, Expo's push token for your phone (and a hash of it, to find your alerts), the phone and version, your target price if you set one, the platform (Android or iOS), when you set it, when the app last used or renewed it, when it last sent you a notification and at what price, how many notifications in a row could not be delivered, and whether and when we switched it off.

When an alert has a price to tell you about, our server sends the notification to Expo: your push token, a title and a short text with the phone's name and price and, where they apply, the version, the shop, the earlier price or your target (for several phones at once, two of them with their prices and how many more), what a tap opens (for one phone, which phone and version it is about and the address of its page; for several, the app's list of saved phones) and how to deliver it (sound, priority, Android channel, and that it expires after a day). Expo passes it to Google's Firebase Cloud Messaging on Android or to Apple's Push Notification service on an iPhone, which deliver it to your phone.

Turning an alert off in the app deletes it from our database at once; backup copies made before then keep it, push token included, for up to 31 days. An alert we switch off, because its push token stopped working or 5 notifications in a row could not be delivered, is erased from our database 90 days later, and its backup copies keep it for up to 31 days more. When your last alert is gone, the app stops renewing your phone's registration with Expo, and on Android also deletes its Firebase token. Expo, Google and Apple keep their own records of push tokens under their own terms.

On your phone and in your browser

The website stores nothing in your browser: no cookies and no local storage, apart from the Google Analytics cookies of our brand guide (above). The app keeps your watchlist, recent searches, the phones in the compare tray, your settings, the last prices it loaded (for up to 7 days, so it works offline), the screen you had open and, if you set price alerts, their list and your push token. None of that is sent to us except as described above, and the app leaves it out of your phone's cloud backups. Settings in the app clears the offline data and recent searches; uninstalling the app deletes all of it, except the keychain entries for price alerts on an iPhone (above).

How we protect it

  • Our website and our API are served only over encrypted connections (HTTPS): an address that starts with plain http is sent on to https, and the app talks only to https addresses.
  • IP addresses reach our database only as a hash with a secret key that is replaced every day. Old keys are deleted and backups are made without any, so a stored hash can be neither traced back nor linked across days.
  • Our request logs keep only a shortened IP address (only an error-log line about a serious server fault can hold a full one), except the log of our brand guide's own web server, which can hold your full IP address (above), and no log keeps a push token or an email address.
  • Data we erase is wiped from the database files by the next nightly clean-up at the latest, not only marked as deleted; backup copies made before then keep it until they are deleted (above).
  • The database cannot be reached from the internet. The console where a person reads reports opens only through an encrypted connection to the server.
  • Our pages load no code from anyone else, apart from Google's code on our brand guide (above).

How long we keep it

What How long
Website events 90 days in our database; in its backup copies up to 31 days more
Shop-link clicks 90 days in our database; in its backup copies up to 31 days more
A report's email and hashed IP 90 days in our database, or less on request; in its backup copies up to 31 days more
The rest of a report With our price records
A price alert In our database until you turn it off, or 90 days after we switch it off; in its backup copies up to 31 days more
The check that spots a report or alert sent twice (a key, a hash of what was sent, our answer) 24 hours, then deleted from our database by the next daily clean-up, so up to about two days, and deleting an alert deletes its check at once; in its backup copies up to 31 days more
The secret key for hashing IP addresses One day (Pakistan time), then deleted by the next morning; no backup copy holds one
Web server access log We keep it for up to 14 days, then delete it.
Web server error log (serious server faults only) As long as the access log
Our API's request log Its newest 30 MB
Our brand guide's web server log Its newest 30 MB
Backup copies of the database About two weeks, the 3 newest longer; never more than 31 days

Who handles it for us

  • Hostinger hosts the server, so everything we record is stored on its computers, apart from what Google Analytics records on our brand guide, which Google keeps (above).
  • Expo, Google (Firebase Cloud Messaging) and Apple (Apple Push Notification service) deliver price alerts: they handle your phone's push token and each notification.
  • Google runs Google Analytics for our brand guide, and receives what its code sends (above).
  • Google Play and Apple's App Store deliver the app, under their own terms.

We send what we record to no one else.

Your choices

  • Turn on Global Privacy Control or Do Not Track to stop our website's events, apart from Google Analytics on our brand guide, which loads whatever your browser sends (above).
  • Turn off price alerts in the app at any time; each one is deleted from our database at once, and from its backup copies within 31 days.
  • Clear the app's offline data and recent searches in its settings, or uninstall the app to remove what it keeps on your phone (on an iPhone, except the keychain entries for price alerts).
  • To ask what we hold about a report you sent, or to have it erased early, write to hello@ptakaro.com and tell us roughly when you sent it.

We follow the laws of Pakistan, including the Prevention of Electronic Crimes Act 2016. Whatever the law requires, everyone gets the choices above. We do not sell your data, and we do not share it with advertisers or data brokers.

Changes

If what we record changes, we update this page and its date first. See also our terms of use.