Privacy Policy
Last updated: 2026-10-15
1. Introduction
This Privacy Policy explains how your personal data is collected, processed, stored, and protected by the Macro Handler application ("App") and the macrohandler.com website ("Website"). Macro Handler is an automation platform for Android devices that provides macro creation, editing, execution, and sharing features.
By using the App or the Website, you acknowledge and agree to the data processing practices described in this Privacy Policy. We encourage you to read this policy carefully to understand how we handle your data.
This policy has been prepared in accordance with the Turkish Personal Data Protection Law No. 6698 (KVKK) and the European Union General Data Protection Regulation (GDPR).
2. Data Controller
The data controller within the meaning of Article 3 of the KVKK and Article 4 of the GDPR is:
- Operator / Business: ESAT ACAR
- Website: macrohandler.com
- Email: support@macrohandler.com
- Address: 50. YIL MAH. 2004. SK. NO:34 IC KAPI NO:2 SULTANGAZI/ISTANBUL
- Country: Turkey
- Registration Number: 0030575719
- Tax Number: 0030575719
In this policy, "Macro Handler" refers to the service provided by ESAT ACAR. You may direct all questions, requests, and complaints regarding the processing of your personal data to the email address above. You may also use this contact channel to exercise your right of application to the data controller under the KVKK.
3. Information We Collect
3.1. Account Data
To use sharing and license features, you are required to sign in with your Google account. During this process, the following data is collected:
- Google user identifier (UID)
- Email address
- Display name
- Profile photo URL or profile photo data
This data is obtained through Firebase Authentication and is used for account verification, license management, and sharing functionality.
If you provide a profile photo, it may be used to display your account identity in the profile interface, forum, and community surfaces. Any profile photo shown on community content is processed as part of the public-facing identity of your account.
Your saved and favorited content IDs, opened plugin download guides and community notifications are stored privately on the server for your account. Opening a GitHub guide does not confirm a file download. Topic and comment activity is read from community records. Notifications are hidden after 90 days and queued for automatic deletion. You can undo saved and favorite actions; download guide history remains until account deletion. These records are included in personal data export and account deletion.
3.2. Device Data
The following device information is collected for the purpose of license binding and ensuring macro compatibility:
- Install-scoped device binding identifier
- Device model and manufacturer
- Screen resolution and DPI value
- Android version
On new installs, license binding uses an install-scoped identifier stored in the app no-backup area; it is not derived from a hardware identifier. Screen resolution and DPI information are necessary to ensure macros function correctly across different devices.
3.3. Diagnostics and Usage Data
In the app, diagnostics are off by default. The following run only when you turn on Diagnostic Reports in Settings:
- Crash reports through Firebase Crashlytics (error stack traces, device state, operating system version)
- Performance measurements through Firebase Performance Monitoring, such as app start time and the duration of network requests
- First-party runtime telemetry: critical reliability events such as crashes, ANRs, runtime errors, stop timeouts, and backend rejections, reported to our own service infrastructure (reportRuntimeTelemetry)
The app does not include Firebase Analytics or any advertising SDK. On the website, Google Analytics for Firebase measures page views and basic usage statistics only after you accept analytics cookies (Section 14 and the Cookie Policy).
Independently of the diagnostics setting, a Firebase Cloud Messaging (FCM) registration token is used to deliver announcement, account, support, moderation, gift, and operational notifications.
An FCM registration token may be stored in Firebase Firestore so we can deliver first-party notifications related to your account. This token is used only for notification delivery, invalid-token cleanup, and reliable delivery operations.
Runtime telemetry is off by default and is enabled only when you turn on the diagnostics setting yourself. When enabled, the relevant event is sent to our own backend infrastructure together with the app version, device Android (API) level, session identifier, screen geometry, and truncated error context (up to 200 characters); raw device manufacturer/model identity is not shared. These records are automatically deleted after 90 days and are purged when you delete your account.
3.4. Purchase and Entitlement Data
When you make or restore a premium, badge, or gift purchase, the product identifier, order identifier, purchase token or its secured digest, transaction status and time, subscription expiry, and related account/entitlement record may be processed for Google Play verification, fraud and replay prevention, restoration, revocation, and support. We do not receive your payment-card or bank-account details; payment is processed by Google Play. Purchase and audit records are retained as required for legal, tax, fraud-prevention, and dispute purposes.
3.5. Macro Sharing Data
When you use the macro sharing feature, the following data is stored in Firebase Firestore:
- Shared macro metadata (name, description, creation date)
- Recipient account identifier (recipient UID) and masked recipient contact hints when needed
- Sharing duration and expiry date
- Identity of the sharing user
Direct macro shares are authorized primarily through the recipient account identifier (recipient UID). If an email address is used to find the target account or manage a pending share, it is not shown publicly and may be retained only as routing metadata, a masked contact hint, or for backward compatibility.
3.6. Macro Content
When you send a macro directly to a selected account, export it as a ZIP file, or back it up to the Premium Cloud Macro Vault, the package contains the macro's scripts and project files, settings, guide, and the files it uses: template images, guide images, imported sounds, replay (touch) recordings, learned visual target profiles, and color swatches. From version 1.0.51 it also contains the Agent Detect reference sets it uses (the reference screenshots and cut-outs you saved) and Navigation map and marker images. Newv1.0.51 Direct shares and Cloud Vault backups are uploaded to Firebase Storage; a ZIP file goes wherever you save or send it. These images can include whatever was on your screen when you captured them, such as other players' names or chat.
When you publish a macro publicly, the package carries the scripts, project files, settings, and guide text; the app uploads the template set after showing its count and size and asking for your separate affirmative approval. A public publication does not carry replay recordings, imported sounds, learned visual profiles, Agent Detect references, or map images; the app warns you about the first four before you publish.
Content is encrypted in transit and at rest; direct shares are available only to authorized recipients, while public publications are available to users who can access the applicable community flow.
3.7. Screen Capture Data
IMPORTANT: In the default screen-capture flow, data is processed only on-device for image matching (template matching), OCR, and color/image scanning; it is not automatically uploaded to our servers, stored externally, or shared with third parties. Apart from packages you choose to send, export, or back up (Section 3.6), nothing you capture leaves the device until you turn on an AI feature and configure a provider and your own API key for it. After that the two AI paths differ. An MH-AI assistant vision request is one you start, and in the Play build every assistant step waits for your approval. A Visual Decision step is not an assistant action: it is an ordinary step inside a macro, so it sends a JPEG of the screen region you configured to the AI provider you configured on every run of that macro, including a run a trigger starts while you are away, and it does not ask you each time. Configuring the step and its trigger is the consent point; there is no second one.
Images you save into a macro (template images and, from version 1.0.51, Agent Detect reference screenshots and Navigation map images) stay on the device; they are uploaded to Firebase Storage as part of a package when you send the macro to a selected account or back it up to the Cloud Macro Vault, and template images also when you approve them for a public publication, as described in Section 3.6. When you export a ZIP file, they go wherever you save or send it. Newv1.0.51
3.8. MH-AI Content Reports
If you choose to report an MH-AI response for safety review, we store in our Firebase/Google Cloud infrastructure a server-redacted copy of the reported response of up to 4,000 characters, your selected reason, app language, content fingerprint, and review status. Your prompt, API key, and other chat messages are not included in the report. If you are signed in, your account identity may be processed for abuse prevention, rate limiting, and security auditing, but it is not stored in the report record. Reports are accessible only to moderators and administrators with verified report-review permission.
3.9. My Agent Routine, Agent Detect, and NavigationNewv1.0.51
My Agent Routine, Agent Detect, and Navigation work on the device. They use no cloud or chat AI service, and what they record stays on the device unless it is part of a package described in Section 3.6.
- Agent Detect: the reference screenshots and cut-outs you mark are stored on the device with the macro. During tests and runs, appearance descriptors of candidate matches (numeric summaries, not pixels) are saved to its Visual Memory; candidates are not used until you review them. Recognition compares the references with the screen using a small image model built into the app; no data is sent to a server for this. You can delete Visual Memory entries in the Agent Detect editor.
- Teach recordings: with your consent, a recording you start stores screen fingerprints and redacted interface events of the app you are teaching, also outside a macro run. Teach recordings save no typed text and no screen pixels.
- Optional tap recording ("Also record my taps (games)"): your taps reach the Agent first and are passed to the app when you lift your finger, so each tap is delayed by its press time and a held joystick or multi-finger move plays back on release. Tap position, time, kind, and a numeric appearance summary are stored encrypted; no screenshot is written to disk. To teach targets, a few frames stay in memory, for at most 15 minutes after the recording ends; a frame you open to teach a target stays in memory until you save or discard that reference draft. Recording stops while a keyboard is open, another app is in front, the screen rotates, or a password field is focused.
- Plans, routines, and run records are encrypted on the device with a key kept in the Android Keystore, in storage that Android backups do not include, and are never exported. A run record lists events such as the step, the target's position and confidence, and each tap; it contains no screen pixels and no recognized text. For each Agent block, at most the 20 most recent runs and 8 rehearsals are kept (fewer if the on-device storage limit requires it); older ones are deleted.
- A routine you have approved runs from the Agent card with your consent for each run, or inside a macro when the macro reaches its Agent block: you confirm when you start the macro, or you can let that macro start the Agent without asking, which is needed for starts from schedules, triggers, and other macros. That permission lapses when the routine, its targets, or its limits change, is suspended when you use Stop, and can be removed on the Agent card at any time.
- Navigation: the reference map, the live map area, the player marker you teach, and the joystick area you select are stored with the macro on the device. While it navigates, the accessibility service holds the joystick; calibration moves your character, and the joystick is released when the position is lost, frames are stale, or the route deviation is too large.
- "Reset recordings" on an Agent block permanently deletes that block's recordings, task plans and their revision history, its routine, rehearsals, run results, and run reports; the macro itself is kept. Deleting your account from this device also deletes all Agent recordings, plans, routines, run records, and start-without-asking permissions stored on it.
4. Legal Basis for Processing
Your personal data is processed on the basis of the following legal grounds under Article 5 of the KVKK and Article 6 of the GDPR:
4.1. Explicit Consent
We rely on your explicit consent for: your account data (UID, email, display name) when you sign in with your Google account; optional diagnostics in the app (Crashlytics, Performance Monitoring, and runtime telemetry), which you turn on in Settings; and website analytics and functional storage, which you choose in the cookie banner. From version 1.0.51 this also covers the Teach recordings and tap recording you start in My Agent Routine. Newv1.0.51 You can withdraw consent at any time: turn diagnostics off, change your cookie choice, delete recordings, or delete your account.
4.2. Legitimate Interest
Security and abuse prevention (the App Check integrity checks with Google Play Integrity in the app and Google reCAPTCHA Enterprise on the website, rate limiting, audit logs, and the risk scoring described in Section 9.2) are processed under our legitimate interest in protecting the service and its users. This processing is proportionate to user rights and follows the data minimization principle.
4.3. Contract Performance
License management, device binding, and macro sharing features fall under data processing necessary for the performance of the service contract offered to you. Without this processing, the relevant features cannot be provided.
4.4. Legal Obligation
In the event that we have a legal obligation under Turkish law or applicable legislation, your personal data may be transferred to the relevant authorities and institutions.
5. How We Use Your Information
The collected personal data is used for the following purposes:
- Authentication and account management: Secure sign-in with your Google account and management of account operations
- License management: Verification of your license status, device binding, and access control for premium features
- Macro sharing: Secure sharing of your macros with designated recipients, management of access durations and permissions
- Crash analysis: If you turned on diagnostics, detection of application errors, investigation of root causes, and implementation of fixes
- Service improvement: Improving the app and the website based on optional diagnostics and aggregated website statistics collected with your consent
- Security: Prevention of unauthorized access, fraud, and abuse attempts
- MH-AI safety: Review by authorized moderators of AI responses that a user explicitly reports
- Communication: Informing you about important service changes, security notifications, or policy updates
6. Data Sharing and Third Parties
6.1. Firebase (Google)
The following Firebase services form the foundation of our data processing infrastructure. These services operate under Google's privacy policy and data processing terms:
- Firebase Authentication: User authentication and session management
- Firebase Firestore: Macro sharing metadata, license information, and user preferences
- Firebase Storage: Storage of shared macro packages and Premium Cloud Macro Vault backups (Section 3.6)
- Firebase App Check: Checks that requests come from the genuine app (with Google Play Integrity) or website (with Google reCAPTCHA Enterprise, which runs on every page)
- Firebase Cloud Messaging: Delivery of first-party notifications
- Firebase Crashlytics / Performance Monitoring: Crash reports and performance measurements from the app, only when you turn on diagnostics
- Google Analytics for Firebase: Website usage statistics, only after you accept analytics cookies. The app does not use it.
6.1.1. Data Processing Roles of Firebase Services
- Google Analytics for Firebase: Measures page views and basic use of the website in aggregate after you accept analytics cookies; it uses the _ga and _ga_<ID> cookies.
- Firebase Crashlytics: Collects application crash reports when diagnostics are on. Processes technical data including error stack traces, device state, and operating system information.
- Firebase Performance Monitoring: Collects performance measurements such as app start time and network request duration when diagnostics are on.
- Firebase App Check: Uses Google Play Integrity in the app and Google reCAPTCHA Enterprise on the website; Google receives device and browser signals to tell genuine traffic from automated abuse.
- On-device recognition: ML Kit text recognition, Tesseract (Arabic and Cyrillic text), OpenCV image matching, and LiteRT models, including the MobileNetV3-small image model used for learned visual target profiles, run entirely on the device. From version 1.0.51 Agent Detect also uses that model, and the MagicTouch model is added for image cut-outs. Newv1.0.51 These components send no images anywhere.
- Firebase Auth: Provides user authentication and session management. Processes Google account information (UID, email, display name).
Data processed through Google Firebase services is subject to Google's data processing policies.
6.1.2. Subprocessors
The subprocessors used in our data processing chain are listed below. These services are used only to technically deliver the service and satisfy security requirements.
- Google Firebase: Authentication, Firestore, Storage, App Check, Cloud Messaging, Crashlytics, Performance Monitoring, Analytics (website only)
- Google reCAPTCHA Enterprise: Security check on the website
- Google Cloud Functions: Server-side licensing, security, rate-limiting, and audit flows
- Google Cloud Platform (infrastructure): Infrastructure, networking, and logging layer
Google/Firebase data processing terms and regional transfer rules are defined in their official documentation. Data is processed only for the purposes described in this policy.
6.1.3. Premium Cloud Macro Vault
Premium Cloud Macro Vault: Premium users can manually upload, replace, delete, and restore up to three private macro backups, each limited to 10 MiB, on devices signed in to the same Firebase UID. Backups are user-initiated rather than continuously synchronized. When Premium ends, the vault is retained for a 30-day grace period before automatic cleanup; deleting a backup or the account removes its stored package. Binary ZIP payloads remain in private object storage and are not embedded in the account data-export JSON.
6.2. Optional AI Providers
When you send a message to the web MH AI assistant with your own API key, your text, recent chat messages and relevant public API/guide references go directly to your selected provider, and its model provider when using OpenRouter. It does not read account documents, the device screen or private page content. Chat and connection keys are not stored on our servers. Charges, quotas and retention terms belong to your own provider account.
MH AI: API keys and connection details added by signed-in users are stored in this browser using account-scoped AES-GCM encryption in the mh-ai-account-vault IndexedDB database. The encryption key is kept in the same browser as a non-extractable CryptoKey; this does not guarantee protection from malicious page code or extensions. Records are not sent to our server or synced across devices. Signing out clears memory but retains saved connections for restoration when the same account signs back in. In MH AI Connections, remove one connection or forget all saved AI connections on this device. Clearing browser data also removes these records. Guest keys and chat stay only in tab memory.
The AI features are off until you turn them on, and Macro Handler does not provide the required API credentials; you enter your own API key for the provider you select: OpenAI, Anthropic, Google (Gemini), Groq, DeepSeek, Alibaba Cloud (Qwen), xAI, OpenRouter, Cerebras, Fireworks AI, Perplexity, Mistral AI, Together AI, Cohere, or NVIDIA. The MH-AI assistant runs only when you start it, and in the Play build every assistant step waits for your approval. A Visual Decision step is different: it is a step inside a macro you built, so it sends the screen region you configured to that provider on every run of the macro, including a run a trigger starts while you are away, and it does not ask you each time.
When you send an AI request, the prompt content, relevant chat context, and generated response are transmitted directly to the third-party provider you selected. This flow is not advertising-related data sharing. Your AI API keys are stored in encrypted local storage on your device and are not routinely uploaded to our service backend.
6.3. We Do Not Sell Your Data
Your personal data is never sold, rented, or commercially marketed to third parties under any circumstances. Your data is processed solely for the purposes stated in this policy.
6.4. Legal Requirements
Your personal data may be transferred to relevant authorities upon the lawful request of competent courts, prosecutors, or administrative authorities under Turkish law. Such transfers are carried out solely for the purpose of fulfilling legal obligations and within the limits prescribed by applicable legislation.
6.5. Referral Credit Data
To operate the referral program securely and accurately, we process the referral code; the Firebase UID relationship between inviter and invited accounts; binding time; eligible purchase and credit events; credit balances and counters; reward redemption and recipient identity; deduplicated operation identifiers; verified device-binding signals; and a one-way HMAC-derived network fingerprint for abuse prevention. The client is not an authoritative source for credit amounts or purchase validity.
The public leaderboard displays a server-generated non-reversible pseudonym instead of the real Google profile name. When an account is deleted, eligible profile and relationship data is removed; however, minimal credit events and an account-deletion tombstone that contain no email or payment-card details may be retained separately to preserve refund, chargeback, replay, and fraud defenses.
Rankings include accounts automatically. Credit rankings require a referral profile.
7. Data Retention
Your personal data is retained for the duration required by the purpose of collection or within the periods determined by our legal obligations:
- Account data: Retained for as long as your account remains active. Once your deletion request is verified, eligible remote account data is removed within 30 days at the latest; records subject to legal retention may be kept separately.
- Support / appeal drafts: Support or appeal drafts are kept in temporary browser storage and automatically expire after 30 minutes.
- Auth and admin portal recovery entries: Auth redirect recovery markers, short-lived auth/callable incident records, and admin portal handoff session keys are stored primarily in sessionStorage; they are cleared when the browser session ends or when the related recovery flow completes.
- Local admin summary cache: A local admin dashboard summary cache may be stored in localStorage only for the relevant administrator account and is removed when the sign-in context changes, when a newer summary replaces it, or when browser storage is cleared.
- Shared macros: Retained until the sharing period expires or the sharing user revokes the share. Data of expired shares is automatically cleaned up.
- Crash data: Crash reports collected by Firebase Crashlytics while diagnostics are on are retained for 90 days and are automatically deleted at the end of this period.
- Analytics data: Website usage data collected by Google Analytics with your consent is retained for 14 months.
- Audit and security logs: Hot logs retained for fraud prevention, abuse analysis, and operational audit are stored for 90 days; longer retention applies only to separate record classes that must be preserved by law.
- MH-AI content reports: A server-redacted MH-AI response that a user explicitly reports, together with its moderation state, is retained for no more than 90 days from creation and is then automatically deleted by a Firestore TTL policy.
- Referral and credit security records: Active-account referral relationships are retained while the program is used. Eligible relationship and profile data is removed after account deletion. Minimal pseudonymous credit events and the permanent account-deletion tombstone required for refund and abuse handling are retained separately for as long as necessary to preserve clawback and replay defenses, and are not used for unrelated purposes.
- Device data: The install-scoped device binding identifier used for license binding is retained for as long as the associated license remains active.
- Agent and Navigation data on the device: Teach recordings, tap records, plans, and routines stay on the device until you reset them or delete your account; for each Agent block, at most the 20 most recent routine runs and 8 rehearsals are kept. Frames held for teaching targets stay in memory for at most 15 minutes after a recording ends. Agent Detect references and Navigation images are stored with the macro on the device until you delete them. Newv1.0.51
8. Your Rights Under KVKK
In accordance with Article 11 of the Personal Data Protection Law No. 6698, you may exercise the following rights by applying to us as the data controller:
- Right to be informed: The right to learn whether your personal data is being processed.
- Right to request information about processing: The right to request information regarding the processing of your personal data if it has been processed.
- Right to know purpose and compliance: The right to learn the purpose of processing your personal data and whether it is used in accordance with that purpose.
- Right to know third-party transfers: The right to know the third parties to whom your personal data has been transferred domestically or abroad.
- Right to correction: The right to request correction of your personal data if it has been processed incompletely or inaccurately.
- Right to deletion and destruction: The right to request deletion or destruction of your personal data within the framework of the conditions stipulated in Article 7 of the KVKK.
- Right to notification: The right to request that correction, deletion, or destruction operations be notified to third parties to whom personal data has been transferred.
- Right to object to automated processing: The right to object to any result that arises against you through the exclusive analysis of processed data via automated systems.
- Right to compensation: The right to claim compensation for damages incurred due to the unlawful processing of your personal data.
You may submit your application in writing to support@macrohandler.com along with information that verifies your identity. Applications are concluded free of charge within 30 days at the latest. If the process requires an additional cost, a fee may be charged based on the tariff determined by the Personal Data Protection Board.
8.1. Data Deletion Request SLA
Your request for deletion of personal data will be processed within 30 (thirty) days. Once your request is processed, the data is permanently removed; you can verify the deletion status in the app under Settings > Account.
8.2. Data Retained After Deletion
Due to legal obligations (tax, accounting, crime prevention), certain data may be retained for the duration of legally mandated retention periods. This data includes invoice information, license activation records, and audit records that must be preserved separately by law.
8.3. Data Portability
Under KVKK Article 11/c and GDPR Article 20, you may request your personal data in a structured, commonly used, and machine-readable format.
8.4. How to Submit a Request to the Data Controller
You may submit your requests to support@macrohandler.com or through the in-app Profile > Delete My Account flow. Your request will be concluded within 30 days.
9. Your Rights Under GDPR
For users located within the European Economic Area (EEA), the following additional rights apply under the GDPR:
- Right of access (Article 15): The right to request a copy of your personal data being processed.
- Right to rectification (Article 16): The right to request rectification of inaccurate or incomplete personal data.
- Right to erasure / Right to be forgotten (Article 17): The right to request erasure of your personal data under certain conditions.
- Right to restriction of processing (Article 18): The right to request restriction of processing of your personal data in certain circumstances.
- Right to data portability (Article 20): The right to receive your personal data in a structured, commonly used, and machine-readable format.
- Right to object (Article 21): The right to object to processing based on legitimate interest.
- Right not to be subject to automated decision-making (Article 22): The right not to be subject to decisions based solely on automated processing that produce legal effects.
9.1. Data Portability Details
Under KVKK Article 11/c and GDPR Article 20, you may request your personal data in a structured, commonly used, and machine-readable format. You may submit this request to support@macrohandler.com or through the in-app Profile > Delete My Account flow.
9.2. Automated Decision-Making
Macro Handler uses automated abuse- and fraud-prevention risk scoring to protect community and sharing surfaces. The score may evaluate signals such as account age, recent content or engagement velocity, reports received about the user, install-scoped device-linkage counts, and prior moderation history.
The resulting risk band may reduce rate limits, place content in pending or manual review, temporarily restrict selected high-risk actions, or raise a deduplicated alert for administrators. When a reporting threshold is met, content may be temporarily hidden or quarantined pending moderator review. These protective measures are reversible; a risk score alone does not automatically suspend or permanently ban an account. Account suspension and permanent bans require a human decision.
To appeal a moderation outcome or request human review, use the Moderation Appeal Policy route or the support email address: Moderation Appeal Policy (support@macrohandler.com)
10. Screen Capture and Accessibility Permissions
Macro Handler uses the Android operating system's screen capture and accessibility services to perform automation functions. Important information regarding the use of these permissions is provided below:
10.1. Screen Capture
- Screen capture is used to run image matching (template matching), OCR/text recognition, color, and other user-configured visual scanning algorithms on-device.
- Captured frames are kept in the device's memory while a scan needs them.
- In this default matching/OCR/color-scanning flow, screen images are not transmitted outside the device, uploaded to our servers, or permanently stored.
- In this default flow, screen capture data is not shared with third parties.
- A Visual Decision step sends an image of the screen region you configured, exactly as it appears at that moment. It is a step inside a macro, so it sends that image every time the macro runs, including from a trigger while you are not there, and it does not ask you each time. This goes to the third-party AI provider you selected, using your own API key. The MH-AI assistant is different: you start it, and in the Play build every assistant step waits for your approval.
- Images you choose to save into a macro (such as template images) are stored on the device and travel in the packages described in Section 3.6; the default screen-scanning flow does not upload captures automatically. From version 1.0.51 this also applies to Agent Detect reference screenshots and cut-outs and Navigation map images. Newv1.0.51
- Teach tap recording keeps a few frames in memory for at most 15 minutes after the recording ends so you can teach targets (Section 3.9). Newv1.0.51
10.2. Accessibility Service
- Macro Handler uses the accessibility service to run the macros you build and, if you turn them on, the optional MH-AI assistant and Visual Decision steps. What you grant here is not limited to the moments you are holding the phone: you configure a macro and a trigger once, and from then on it can run, read the screen, and send screen content on its own.
- With it the app detects on-screen text, images, colors, and OCR targets on the active screen, performs the tap and swipe steps in your macros, and stops active interactions as soon as a macro stops. These scans run locally on the device.
- Hardware keys: holding Volume-Down while a macro is running triggers an emergency stop, and if you set up that trigger, a short press of Volume-Up or Volume-Down can start or stop a macro. The service reads only which key was pressed, acts only on these two keys, and keeps nothing; the on-screen keyboard sends it no key events, and it does not record what you type.
- A macro you gave a trigger starts on its own every time that trigger fires, for example on a schedule or repeat interval, when an app closes, when a notification arrives or is cleared, at a battery level or charger change, when the screen turns on or off, on a volume-key press, on a broadcast from another app on this device, or on a remote request sent to this device. It can then read the screen and tap while you are not there. Timed macros can fire while the device is idle, and they are re-armed after a restart. Choosing an app to watch for opening is the one exception: it shows the control panel and waits for you to press play.
- For the optional MH-AI assistant the service reads the visible screen as a list of elements: their type, labels and non-editable text, whether they are tappable, and their position; on a messaging screen that includes the message text you can read there. Characters you typed into a password field or any other editable field are replaced with a placeholder in that list. Every assistant step waits for your approval, and assistant screen reads are refused on payment screens and on delete, reset, or transfer screens. Where AI content goes is described in Sections 6.2 and 10.1.
- These placeholders apply only to the list the assistant sends. A Visual Decision step is not an assistant step: it is not approved, it is not refused on payment, delete, reset, or transfer screens, and its image carries whatever the configured region shows at that moment on any screen, including message text and anything you typed into a field there.
- My Agent Routine and Navigation (Section 3.9): during a Teach recording you start, the service records redacted interface events of the app you are teaching, also outside a macro run, and with tap recording on, a full-screen layer receives your taps before passing them to the app. A routine you approved taps through the service with the consent described in Section 3.9, and Navigation holds the joystick area you selected. Newv1.0.51
- The service is used for user-directed automation and is not declared as a verified accessibility tool. You can turn it off at any time in Android settings, and turning off a macro's trigger stops that macro from running on its own.
- The service does not monitor your activity for advertising, analytics, or profiling, and it does not start macros you did not create and enable yourself.
10.3. Overlay Permission
- The overlay permission is used only to show user-invoked control panels, HUD widgets, coordinate pickers, capture tools, and the on-screen Lua editor over other apps.
- These overlays are opened only by the user, and the user can close them at any time.
- The overlay permission itself does not upload screen content to servers or persist it; any local screen processing remains subject to the screen-capture and accessibility flows described in this policy.
10.4. Notification Access and Push Delivery
- The notification listener is optional and is used only for user-configured notification-triggered macros.
- The listener evaluates the posting app package, app or sender label, title, and body locally on-device against the trigger rules you configured.
- Raw notification content is not automatically uploaded to our servers; notification data is processed only to decide whether the related local macro should run.
- The notification title and body are passed to the triggered macro as variables. If you add an HTTP or Webhook step to your macro, you are sending that content to a third-party endpoint of your own choosing; this transfer happens through your configuration and remains your responsibility.
- A Firebase Cloud Messaging (FCM) registration token may also be associated with your account so we can deliver first-party push messages such as announcements and account notifications.
10.5. Foreground Services
- Special-use and media-projection foreground services are used only while a macro run, floating control panel, on-screen text editor, or screen-capture session is active. That run may be one you started or one that a trigger you configured started on its own.
- While the macro runtime is active, a persistent status notification is shown. The user can stop the run from the notification or floating panel; the related service ends when the run completes, fails, or is stopped by the user.
- The foreground-service type does not itself collect data. Any screen processing, notification triggering, or optional AI transfer during these sessions remains subject to the separate purpose, user-action, and data boundaries described above.
In summary: These permissions and notification capabilities are used for the macro automation you direct, the Agent features you start and approve, helper surfaces, and first-party notification delivery. They are ABSOLUTELY NOT used for surveillance, advertising profiles, or cross-app behavior tracking; Teach recordings (Section 3.9) are made at your request, stay on the device, and serve only the routine you are teaching.
11. Children's Privacy
Macro Handler is not directed at children under the age of 13. We do not knowingly collect personal data from individuals under the age of 13. If we become aware that an individual under the age of 13 has provided us with personal data, we will take immediate steps to delete such data.
Users between the ages of 13 and 18 may use the application only with the consent of a parent or legal guardian. Parents or legal guardians may exercise their rights regarding the processing of their children's data by contacting support@macrohandler.com.
12. International Data Transfer
Macro Handler uses the Firebase (Google) infrastructure. Firebase servers may be located in countries outside of Turkey (including the United States). This means that your personal data may be transferred abroad.
If you turn on an AI feature, the content it sends goes directly to the provider you selected with your own API key (Section 6.2). Depending on the provider, it may be processed in the United States, the European Union, China, Singapore, or other countries. This transfer takes place because you chose and configured that provider, and the provider's own terms and privacy policy apply to it.
The following safeguards are in place for transfers to Firebase/Google:
- Google is a participant in the EU-US Data Privacy Framework.
- Data processing agreements with Google include Standard Contractual Clauses (SCCs) under Article 46 of the GDPR.
- Data is protected with encryption both during transfer and on servers.
- In accordance with Article 9 of the KVKK, transfers are made to countries with an adequate level of protection or in cases where an adequate protection commitment is provided.
13. Data Security
We implement the following technical and administrative measures to ensure the security of your personal data:
- All data transfers are encrypted using HTTPS/TLS protocols.
- Database and storage access is controlled through Firebase security rules.
- User data is stored encrypted on Firebase servers.
- Authentication operations are securely performed through Google's OAuth 2.0 infrastructure.
- Data access is restricted using the principle of least privilege.
- Regular security assessments and updates are performed.
Despite all these measures, we would like to note that no data transmission over the internet or electronic storage method is 100% secure. In the event of a possible data breach, the Personal Data Protection Board and the relevant data subjects will be notified as soon as possible in accordance with Article 12 of the KVKK.
14. Cookies and Local Storage
The macrohandler.com website's own code does not create its own traditional cookie files. However, third-party services we use (Google) place their own cookies and browser storage: Firebase Authentication and Google sign-in, Google reCAPTCHA Enterprise for the security check that runs on every page, and, only after you accept analytics, Google Analytics (_ga and _ga_<ID>). The website also uses browser storage (localStorage, sessionStorage, and IndexedDB) for the following purposes:
- Language preference: To remember your selected interface language, across visits if you accept functional storage, otherwise until you close the tab.
- Cookie consent preference: To store your cookie and analytics preferences.
- Theme preference: To remember your selected display theme, across visits if you accept functional storage, otherwise until you close the tab.
- Sign-in and security: Firebase Authentication keeps your session in localStorage until you sign out, and App Check keeps its reCAPTCHA Enterprise token in IndexedDB.
- Auth and admin portal recovery state: To preserve redirect state, incident recovery, and the active admin portal session.
- Support and moderation drafts: To hold short-lived support or appeal drafts and cached local admin summaries.
We also use browser storage. Necessary entries: macrohandler_cookie_consent keeps your cookie choice in localStorage; Firebase Authentication keeps your signed-in session in localStorage under firebase:authUser:<apiKey>:[DEFAULT] until you sign out, and the Firebase SDK may also create the firebaseLocalStorageDb IndexedDB database; while a Google redirect sign-in or re-authentication is in progress, Firebase keeps the short-lived firebase:pendingRedirect:<apiKey>:[DEFAULT] and firebase:redirectUser:<apiKey>:[DEFAULT] entries in sessionStorage; Firebase App Check with Google reCAPTCHA Enterprise keeps its security token in the firebase-app-check-database IndexedDB database, and reCAPTCHA keeps the _grecaptcha key in localStorage; the Firebase SDK keeps the daily usage heartbeat it attaches to Firebase requests in the firebase-heartbeat-database IndexedDB database. Functional entries: theme, macrohandler_web_lang, macrohandler_motion (set when you pause animations) and macrohandler_sound (set when you enable interface sounds) are kept in localStorage only if you accept functional storage; otherwise they stay in sessionStorage until you close the tab. Support or appeal drafts are stored first in sessionStorage under macrohandler.appealDraft.<draftId> and may be recovered only from legacy localStorage entries for backward compatibility; forum_topic_view_<topicId> debounce markers are stored in localStorage; mh_auth_redirect_pending and mh_auth_redirect_pending_at are stored in sessionStorage first, but a short-lived localStorage fallback may be used only when the browser blocks sessionStorage during redirect recovery; mh_auth_last_incident and mh_secure_callable_last_incident are short-lived sessionStorage entries used for failed auth or secure callable recovery; mh_admin_portal_google_handoff, mh_admin_portal_unlock_token, and mh_admin_portal_client_session_id are stored only in sessionStorage for the active admin portal session; and, for administrators only, mh_admin_dashboard_summary:<uid> keeps a cached admin dashboard summary in sessionStorage for at most 15 minutes, mh_admin_recent_routes lists the admin pages recently opened in the tab in sessionStorage, and mh_admin_saved_views:<uid>:<page> keeps the filter views an administrator saves in localStorage until they are deleted or the administrator signs out. These items are not used for advertising or cross-site tracking.
These entries remain primarily in browser storage on your device; they are not copied to the server unless the related backend flow itself submits data separately. You can clear localStorage and sessionStorage from your browser settings at any time, but doing so may reset sign-in recovery, support draft continuity, or the active admin portal session.
You can change your cookie choice at any time on the Cookie Policy page.
15. KVKK Disclosure Obligation (Article 10)
In accordance with Article 10 of the KVKK No. 6698, we have the obligation to inform you as the data controller regarding the following matters related to the processing of your personal data:
- Identity of Data Controller: ESAT ACAR - support@macrohandler.com
- Processing Purpose: Account management, license verification, macro sharing and backups, optional diagnostics, the AI features you turn on, service improvement, security
- Legal Basis: Explicit consent, contract performance, legitimate interest, legal obligation (KVKK Article 5/2)
- Collection Method: Google account sign-in, Firebase SDKs, automatic device information collection, on-device processing of the screen through the accessibility service and screen capture, and browser storage on the website
- Parties Data Is Transferred To: Firebase/Google (infrastructure, security checks, optional diagnostics, and website analytics), the AI provider you select and configure for the optional AI features (Section 6.2), legal authorities (in case of legal obligation)
- Data Subject Rights: All rights under KVKK Article 11 as detailed in Section 8 of this policy
This disclosure text has been prepared within the scope of Article 10 of the KVKK and the Communique on the Procedures and Principles to be Followed in Fulfilling the Disclosure Obligation. The disclosure obligation is fulfilled independently of obtaining explicit consent.
16. Data Controllers Registry (VERBiS)
In accordance with Article 16 of the KVKK, data controllers that process personal data are required to register with the Data Controllers Registry Information System (VERBiS). Macro Handler follows the legislation regarding the VERBiS registration obligation and will complete the necessary registration procedures in a timely manner if the required thresholds are met.
You may contact us at support@macrohandler.com for current information about our VERBiS registration.
17. Data Breach Notification Procedure
In accordance with Article 12, paragraph 5 of the KVKK, the following procedure is applied in the event that processed personal data is obtained by others through unlawful means:
- Board Notification: The Personal Data Protection Board is notified as soon as possible and in any case within 72 hours after the data breach is detected.
- Notification of Data Subjects: Personal data subjects affected by the breach are informed as soon as possible through appropriate methods (email, in-app notification, or website announcement).
- Notification Content: Notifications include the nature of the breach, affected data categories, potential consequences, measures taken and recommended, and contact information.
- Corrective Measures: Necessary technical and administrative measures are immediately taken to prevent recurrence of the breach and reported to the Board.
18. Changes to This Policy
We reserve the right to update this Privacy Policy from time to time. In the event of material changes, we will inform you through one or more of the following methods:
- An announcement or notification in the app
- Publication of the updated policy on the website
- Change of the "last updated" date
Your continued use of the App or Website after changes constitutes your acceptance of the updated policy. For material changes, additional explicit consent may be requested.
19. Contact
If you have any questions, requests, or complaints about this Privacy Policy or the processing of your personal data, you may contact us through the following contact information:
- Operator: ESAT ACAR
- Email: support@macrohandler.com
- Website: macrohandler.com
- Address: 50. YIL MAH. 2004. SK. NO:34 IC KAPI NO:2 SULTANGAZI/ISTANBUL
To exercise your right of application to the data controller under the KVKK, you need to submit your request in writing to the email address above together with information that verifies your identity. Responses to applications will be provided within the legal time limits (no later than 30 days).
In the event that your application is rejected, you find the response insufficient, or no response is given within the allotted time; you have the right to file a complaint with the Personal Data Protection Board within 30 days from the date you learn of the response and in any case within 60 days from the date of application.