LJ PDF Scanner privacy policy
LJ Labs. Last updated 2 November 2026.
LJ PDF Scanner turns paper into PDFs on your phone. This page says what the app keeps, what leaves your phone, and who receives it. In short: the app has no account and no server of ours, it reads text on your phone, and no document content leaves your phone unless you share it.
What stays on your phone
- Your scans, page images, PDFs, signatures, folder names, file names, and the text the app reads from your pages (OCR). They live in the app's private storage.
- Text recognition and the document scanner run on your phone through Google ML Kit. The recognition models are downloaded through Google Play services. ML Kit does not send your images or the text it reads to Google.
- We run no server for this app. We cannot see, store, or recover your documents.
- A document leaves your phone only when you choose to share, print, save, or export it. It then goes where you send it, and that service's own policy applies.
Ads
- The free app shows ads through Google AdMob, in four places:
- a full-screen ad after you finish something: saving a scan as a PDF, finishing a merge or a split, or closing the share sheet after you share a document, with limits on how often;
- a native ad, marked as an ad, among the documents in the list;
- a banner at the bottom of the viewer;
- a rewarded video that you choose to watch to export recognized text as a TXT file once the day's free exports are used.
- No ad appears on the camera, the page editor, or the tools screens, or when you open the app. Ads never use the content of your documents.
- If you buy Remove ads, the app shows no ad of any kind and the AdMob SDK never starts.
- Where the law asks for it, including the European Economic Area, the United Kingdom, Switzerland, and some US states, the app asks for your choice through Google's User Messaging Platform before it requests any ad. Where Settings shows Privacy options, you can change that choice there at any time.
- You can reset your advertising ID or turn off ad personalization in your Android settings.
Analytics and crash reports
- The app uses Firebase Analytics to count events: a scan started, the pages and filter of a finished scan, a PDF saved, an OCR run, a share, an ad shown or closed with its placement and how long it was open, whether the app was left within 30 seconds of an ad, a Remove ads purchase, and a review request. It does not send document content, file names, or recognized text.
- The app uses Firebase Crashlytics to receive crash reports.
- The app uses Firebase Remote Config to fetch settings such as how often ads may appear.
- Firebase and Google process this data for us under Google's terms. We use it to keep the app working and to tune how often ads appear.
Data that leaves your phone
This is every kind of data the app's SDKs collect, who collects it, and why. "Shared" means the AdMob SDK sends it to Google for AdMob. Document images, PDFs, and recognized text are in none of these.
- Approximate location. AdMob estimates it from your IP address. Firebase Analytics derives a coarse location from a masked IP address. Purposes: advertising or marketing, analytics, and fraud prevention, security, and compliance. Collected, and shared with AdMob.
- Device or other IDs. AdMob collects your advertising ID, the app set ID, and, if applicable, other identifiers related to signed-in accounts on the device. Firebase Analytics collects the app instance ID and the advertising ID. Firebase generates a Firebase installation ID, which Remote Config uses to choose the values it returns. Crashlytics adds its own installation ID. ML Kit collects a device identifier and per-installation identifiers for diagnostics and usage analytics, and does not share them. Purposes: app functionality, advertising or marketing, analytics, and fraud prevention, security, and compliance. Collected, and shared with AdMob.
- App interactions. AdMob records app launches, taps, and video views. Firebase Analytics records screen views, sessions, and the events listed above. Purposes: advertising or marketing, analytics, and fraud prevention, security, and compliance. Collected, and shared with AdMob.
- Crash logs. Crashlytics collects the stack trace and the state of the app at a crash. Purpose: analytics. Collected, not shared.
- Diagnostics. AdMob collects app and SDK performance, such as launch time, hang rate, and energy usage. Crashlytics collects device metadata at a crash. ML Kit collects the device model and Android version, the app's package name and version, latency, API settings, and error codes for diagnostics and usage analytics, and does not share them. Purposes: advertising or marketing, analytics, and fraud prevention, security, and compliance. Collected, and shared with AdMob.
- Other app performance data. Remote Config collects your country code, language code, time zone, platform and Android version, the Firebase app ID, the package name, and the SDK version, and uses them to choose the values it returns. Purpose: app functionality. Collected, not shared.
- Purchase history. Firebase Analytics records in-app purchase events with the product ID, name, and price, and the app records that Remove ads was bought. Purpose: analytics. Collected, not shared.
Someone who buys Remove ads never starts the AdMob SDK, so the AdMob parts of this list stop for that person.
Purchases
Remove ads is bought through Google Play. Google handles your payment. The app learns only whether the purchase exists, and records that a purchase happened. We never see your card or account details.
Permissions
- The app asks for no camera permission. Scanning uses Google's document scanner, which opens its own screen.
- On Android 9 and older, saving a PDF to Downloads needs the storage permission. Newer versions need none.
- The app reads a file or folder only when you pick it.
Report a problem
Report a problem in Settings opens your email app with the app version, your device model, and your Android version already in the message. You decide whether to send it. Please do not attach documents or personal details. We read what you send only to fix the problem and to answer you.
How long data is kept, and your choices
- Data on your phone stays until you delete the document or uninstall the app. Uninstalling removes everything the app stored.
- Analytics, crash, and advertising data are held by Google for the periods set in its services and are not tied to a name or an account of ours. Resetting your advertising ID in Android settings separates new data from old.
- Because we hold no account and cannot identify you from this data, we cannot look up or delete an individual's analytics records. If you think we hold something about you, write to us and we will tell you what we can.
Children
The app is not directed to children under 13, or under 16 where the law sets that age, and we do not knowingly collect their data.
Changes
When this page changes, the new version ships with an app update and the date above changes.
Contact
LJ Labs, contact@ljtechlabs.com