Meme Chat AI
Support Safety Privacy

Privacy Policy

  • App: Meme Chat AI
  • Effective date: July 8, 2026
  • Applies to app version: 1.2.0 and later
  • Applies to: the Meme Chat AI mobile app (iOS and Android), its backend services, and this website at https://meme-chat-ai.com
  • Minimum age: 16 and older
  • Contact: memechataisupport@gmail.com

Meme Chat AI is an AI chat app with meme and GIF media. You confirm your age, sign in, chat with an AI companion, and can browse, search, attach, and download trending memes and GIFs, and send stickers you pick. To make that work, your messages — and the meme, GIF, and sticker images involved in a chat — are sent to OpenAI to generate replies and are stored in our Firebase backend; meme, GIF, and sticker media come from Klipy; when the AI determines a message needs current, real-world information, a short search query derived from your message is sent to Tavily (a web-search provider) and the results are used to inform the reply; and subscriptions run through RevenueCat with the app stores. You can also build your own custom chat personas: the text you write and any avatar you upload are screened by automated moderation before the persona goes live, the persona's text is sent to OpenAI as part of its prompt when you chat with it, and the personas you make are private to your account. You can optionally generate a persona avatar from a short text description, which is sent to OpenAI's image generation to create the picture. Free users see ads served by Google AdMob (we request non-personalized ads); paid plans are ad-free. We do not sell your personal information, and the app does not use third-party analytics, crash-reporting SDKs, attribution SDKs, or cross-app tracking.

This policy explains, in plain English, what data Meme Chat AI handles, who processes it, how long it is kept, and the choices you have.

1. Overview

Meme Chat AI ("the App") is published by MemeChatAI ("we", "us"). The App is built with Expo and React Native, and its backend runs on Google Firebase (Authentication, Cloud Firestore, and Cloud Functions).

The main services that process your data are:

  • Firebase / Google Cloud — accounts, database, and backend logic.
  • OpenAI — generates AI chat replies, conversation titles, conversation summaries, and (optionally) persona avatar images from a short text description you provide; also used for content moderation, including moderation of the custom personas and avatars you create (see Section 18). The App sends OpenAI both text and image inputs (see Sections 5, 6, and 7).
  • Klipy — supplies trending meme, GIF, and sticker media and powers meme/GIF/sticker search.
  • Tavily — a web-search provider used only when the AI determines a message needs current, real-world information; it receives a short search query derived from your message and returns web results that inform the reply (see Section 5).
  • RevenueCat — manages subscriptions and entitlements (with Apple App Store and Google Play as the payment rails).
  • Google AdMob — shows banner and full-screen interstitial ads to free users; paid plans are ad-free.

We do not sell your personal information. Free users see ads served by Google AdMob, for which we request non-personalized ads (see Section 14); paid plans are ad-free. Aside from AdMob, we do not use third-party analytics SDKs, crash-reporting SDKs, attribution SDKs, or cross-app tracking. Backend logs and diagnostics are still processed by Firebase / Google Cloud as part of running the service (see Section 13).

Chat content and meme/GIF images may be processed by OpenAI. Your messages, recent conversation context, and the meme/GIF images involved in a turn are sent to OpenAI to generate replies. Please don't enter highly sensitive personal, financial, health, legal, or otherwise confidential information into chats unless you are comfortable having it processed this way.

2. Data categories at a glance

CategoryExamplesWhere it goes
Account & authentication Email address, Firebase user ID (UID), email-verification status, sign-in provider, Apple Sign In identifier Firebase Authentication, Firestore profile
Age-gate data Date of birth you enter and the resulting pass/block decision Stored locally on your device (AsyncStorage); see Sections 4 and 11
AI conversation content Your messages and the AI's replies (text) Sent to OpenAI; stored in Firestore
Meme/GIF/sticker image inputs & references Meme image URLs, animated-GIF still frames, and the still image of any sticker you send involved in a turn; stored references/metadata (including a sticker's title and the search term you typed) for memes, GIFs, and stickers attached to messages Image inputs sent to OpenAI; references stored in Firestore; media fetched from Klipy
User-uploaded chat photos Photos you take with the camera or pick from your library to attach to a message (compressed on-device before upload) Stored in Firebase (Cloud) Storage under messageImages/{uid}; sent to OpenAI as image inputs; deleted on conversation/account deletion
Custom persona content (Persona Creator) The personas you build: name, description/tagline, identity, example reply, humor and slang notes, greeting styles, emoji set, optional word bank, and meme/GIF preferences Stored in Firestore (user_personas, linked to your UID) and private to your account; the persona text is sent to OpenAI for moderation when you save or edit it, and as part of the system prompt when you chat with that persona; see Sections 5, 7, and 18
Persona avatars An optional image you upload for a persona you create, or one generated for you from a short text description Stored in Firebase (Cloud) Storage under personaAvatars/{uid}; sent to OpenAI's moderation as an image input when you save the persona; deleted on persona/account deletion; see Sections 7, 9, and 18
Persona avatar generation prompt The short text description you type to generate a persona avatar Sent to OpenAI's image generation API to create candidate avatar images and screened by moderation; not stored after generation (only an image you choose and save is kept, as a Persona avatar above); see Sections 5 and 18
Persona description generation input When you ask AI to write a persona's description: the creator fields you have entered (name, tagline, vibe, humor) plus the persona's avatar image Sent to OpenAI to generate a short description and screened by moderation; not stored after generation (only the description you keep is saved, as Custom persona content above); see Sections 5 and 18
Conversation metadata Conversation titles, first-message snippet, last-message preview, summaries, persona metadata, timestamps Firestore (titles/summaries are generated by OpenAI)
Message ratings / reactions Thumbs up/down you give an AI reply Firestore (stored on the message)
Memory notes (paid plans) Short notes the AI writes about you during conversations, such as your general vibe, people you mention, and topics you return to; only written when Memory is enabled Stored in Firestore on your account (linked to your Firebase UID); included in AI context sent to OpenAI when Memory is on; manageable in-app (see Section 7)
Profile & personalization Alias/nickname, display name, rot-level preference, chat appearance customization Firestore profile and/or local device; rot level may influence AI prompts
Usage, credit & billing metadata Token counts, cost estimates, credits, plan/model, usage events Firestore; visible in backend logs
Purchase & subscription data Subscription status, product IDs, entitlement/expiry, receipts/purchase tokens, transaction metadata, and RevenueCat app user ID (= your Firebase UID) RevenueCat, Apple App Store, Google Play; status mirrored in Firestore
Klipy meme/GIF/sticker request data customer_id (= your Firebase UID), page, results-per-page, locale/country, content-filter level, and a search query. For memes and GIFs this query may be one you type or one the AI generates from the conversation; for stickers it is only a query you type, since stickers are send-only and the AI never picks them Sent to Klipy via our backend
Web search query data A short search query the AI generates from your message (and recent conversation context) when it determines the turn needs current, real-world information; no account identifier is sent Sent to Tavily via our backend; results inform the AI reply and are not stored long-term (see Section 5)
Content moderation records When a message, name, persona/avatar, or photo is flagged: your user ID, conversation ID (if applicable), message reference (if applicable), flag reason, model/version, and timestamp — never the raw flagged text or image Stored in our backend (Firestore) for safety and audit purposes; not readable through the App or accessible to other users; see Section 18 for data handling and our Safety page for what is blocked/steered and how to report a concern
Message reports When you use the in-app report action on a message: your user ID, conversation ID, message ID, report category, app version, an optional note, and timestamp Stored in our backend (Firestore); server-only, not readable through the App or accessible to other users; see Section 18
Local device data Theme/appearance, language, onboarding flag/step, alias, chat customization, age-gate status & date of birth, rot level, last-open conversation, Firebase Auth session/cache Stays on your device (AsyncStorage)
Age data (server copy) Date of birth and derived age band (16–17 or 18+), synced once after you pass the age gate; write-once, used only for age-appropriate safety handling (see Section 4) Firestore (your account profile); deleted with your account
Technical, log & rate-limit data Diagnostic logs, error strings, IP address / network data, attachment metadata, hashed IP rate-limit buckets Cloud Functions logs (Google Cloud); Firestore (hashed IP)
Device permissions / OS surfaces Camera and photo/media library access (to take or pick a photo to attach), media-library save access, notification permission, clipboard (when you copy a reply) Your device; see Section 12
Support communications Emails you send us and their contents Our support inbox
Advertising data (free users) IP address, device information, advertising or app identifiers (where available and permitted), coarse location derived from IP, ad interactions, and diagnostics — used to serve non-personalized ads; paid plans are ad-free Google AdMob; see Section 14
Not collected (current version) No microphone, precise location, contacts, calendar; no file or audio uploads; no third-party analytics, crash-reporting, or attribution SDKs; no cross-app tracking (free users do see ads via Google AdMob — see Section 14) —

3. Account creation and authentication

An account is required to chat and to keep your conversation history. You must be signed in and have a verified email address to use the chat features. Anonymous sign-in is not permitted.

You can sign in with:

  • Email and password (handled by Firebase Authentication), or
  • Sign in with Apple.

For your account we store your email address, your Firebase-generated user ID (UID), your email-verification status, and which sign-in provider(s) you used. If you use Sign in with Apple, we receive an Apple identifier and the email Apple shares with us — if you choose Apple's Hide My Email, that may be an Apple private relay address rather than your real email.

We do not store raw passwords. Password-based sign-in is handled entirely by Firebase Authentication.

During onboarding you may also set a personalization alias / nickname and a display name; see Section 7.

4. Age eligibility and date-of-birth gate

Meme Chat AI is intended for users 16 and older. The App includes a mandatory date-of-birth age gate. Before you can use the App, you enter your date of birth; the App computes your age and either lets you continue or blocks access if you are under the minimum age.

Your date of birth and the resulting pass/block decision are stored locally on your device (see Section 11). This record is intentionally retained on the device after you delete your account, so that someone under the minimum age cannot bypass the check by deleting and re-creating an account. It is cleared by reinstalling or removing the App.

In addition, once you pass the age gate, the App syncs your date of birth to your account profile on our servers (Firebase Firestore), along with a derived age band (16–17 or 18+). This server record is write-once (later submissions cannot change the stored date), is used only to support age-appropriate safety handling, and does not unlock any additional content — Meme Chat AI has no mature or 18+ mode for any age. The server copy is deleted with your account when you delete your account.

5. AI features and OpenAI

Meme Chat AI uses OpenAI to generate AI chat replies and to create conversation titles and conversation summaries. The App may use different OpenAI models depending on your plan.

What is sent to OpenAI

When you send a chat message, our backend may send OpenAI:

  • the system / persona prompt that defines the AI character, including the text of any custom persona you built and rot-level context;
  • an optional summary of earlier parts of the conversation;
  • recent conversation history (your previous messages and the AI's previous replies), for context;
  • for paid subscribers with Memory on, your memory notes as part of the system context (see Section 7);
  • your current message; and
  • image inputs for any meme, GIF, or sticker involved in the turn (see Section 6).

Conversation history is sent to OpenAI so the AI can respond with context. In addition to text, the App sends image inputs to OpenAI: meme images are sent as image URLs, animated GIFs are decoded by our backend into a few still frames that are sent as image data, stickers you send are sent as their still (transparent) image so the AI can react to them, and photos you upload to a message (taken with the camera or chosen from your photo library) are sent as image data so the AI can respond to them. The App does not support other file uploads, audio, or microphone input, so those are not sent to OpenAI.

We also use OpenAI's moderation API as part of our content moderation pipeline (see Section 18), including when you create or edit a custom persona, where the persona's text and any avatar image (uploaded or AI-generated) are sent to OpenAI for moderation. Moderation calls are separate from chat calls and are subject to the same OpenAI data-handling terms.

AI-generated persona avatars. In the Persona Creator you can optionally generate an avatar instead of uploading one: you type a short description (up to 100 characters) and we send it to OpenAI's image generation API (gpt-image-1-mini) to create two candidate images. The description is screened by moderation before generation, and the candidate images are discarded unless you select one — a selected image is then treated exactly like an uploaded avatar (moderated and stored under personaAvatars/{uid}). Generating avatars draws from the same usage allowance as chat. AI-generated images can be imperfect or unexpected.

AI-written persona descriptions. In the Persona Creator you can optionally have us draft a persona's description for you. When you do, the details you have already entered (such as the name, tagline, vibe, and humor) and the persona's avatar image — the photo you uploaded or the avatar you generated — are sent to OpenAI to write a short description. The result is screened by moderation and placed in the field for you to keep or edit. This draws from the same usage allowance as chat. The request is not retained beyond generating the text, and the avatar image follows the same storage and deletion rules as any other persona avatar.

Separately, and at our own cost (never billed to you):

  • Conversation titles are generated by sending your first message in a conversation to OpenAI.
  • Conversation summaries are generated by sending a transcript of the conversation to OpenAI; the resulting summary is stored.

What is stored

Your messages and the AI's replies are stored in our Firestore database, along with conversation titles, a first-message snippet, a last-message preview, summaries, persona metadata, and references to any attached memes, GIFs, and stickers (see Sections 6 and 7).

OpenAI training and retention

OpenAI states that data submitted through its API is not used to train its models by default, unless the developer explicitly opts in (we do not), and that OpenAI may retain limited API logs for abuse monitoring for up to 30 days unless a longer period is required by law or another exception applies. We have not entered into a Zero Data Retention arrangement with OpenAI. OpenAI's own privacy policy and API data-use terms govern its processing.

Please don't share highly sensitive information. Because your messages and meme/GIF image inputs are processed by OpenAI and stored as described, you should not enter highly sensitive personal, financial, health, legal, or otherwise confidential information into chats unless you are comfortable having it processed this way.

Web search (Tavily)

To answer questions that depend on current, real-world information (for example recent events, news, scores, prices, or anything that changes over time and may be beyond the AI's training knowledge), the App can perform a web search on your behalf. This happens automatically and only when it is needed:

  • For each message, a lightweight OpenAI model (a "router") looks at your message and recent conversation context and decides whether a web search is required. Most messages — jokes, chit-chat, opinions, general knowledge — do not trigger a search.
  • When a search is warranted, that model rewrites your message into a short, clean search query (for example, turning a casual question into a few keywords). This query is generated from your message and recent context, so conversation-derived terms — not only text you type — may be included in it.
  • Our backend sends that query to Tavily, a web-search provider, which returns a brief set of results (a short answer and a few source snippets and links).
  • Those results are added to the context sent to OpenAI for that one reply, so the AI can answer accurately. The fetched results are not stored long-term by us; only the AI's resulting reply is saved as part of your conversation (see Section 7).

We send Tavily only the search query and the parameters needed to run the search. We do not send Tavily your account identifier, your email, or your full conversation — just the short query. Tavily's processing, retention, and any logging are governed by Tavily's own privacy policy. Web search uses the same usage allowance as chat (the search and the extra context are metered like any other AI usage; see Section 13). Results returned from the web can be inaccurate, incomplete, or out of date.

AI responses can be inaccurate, incomplete, or out of date. Do not rely on them as professional advice.

6. Meme, GIF, sticker, and photo attachments in chat

Both you and the AI can attach Klipy memes and GIFs to messages. When a meme or GIF is part of a turn:

  • the media is fetched from Klipy (see Section 8);
  • a reference to the meme/GIF (such as its media URLs and basic metadata) may be stored on the message in Firestore so the conversation renders correctly later; and
  • the image is sent to OpenAI as an image input so the AI can reason about or respond with relevant media. A still meme is sent as an image; an animated GIF is first sampled into a few still frames by our backend, and those frames are sent as image data.

You can also send stickers from Klipy. Stickers are a send-only feature: you pick one from a trending strip or by searching, and the AI never sends stickers back. You can send up to three stickers in a turn, on their own or alongside memes and a GIF. When you send a sticker, its still (transparent) image is sent to OpenAI as an image input so the AI can react to it in character, and a reference to the sticker (its media URLs, basic metadata, the sticker's short title, and the search term you typed, if any) is stored on the message in Firestore so the conversation renders correctly later. The title and search term are used only to give the AI context about what you sent and are never shown to you.

You can also attach your own photos — taken with the camera or chosen from your photo library. An attached photo is compressed on your device, uploaded to our Cloud Storage under a path scoped to your account (messageImages/{uid}/{conversationId}), referenced on the message in Firestore, and sent to OpenAI as an image input. The App does not support uploading other files or audio. Uploaded photos are deleted when you delete the conversation or your account (see Sections 20–21).

7. Conversations, titles, summaries, ratings, and chat history

Your conversations — including the full text of your messages and the AI's replies — are stored in Firestore and linked to your Firebase UID, so your history is available across your sessions. We also store conversation titles, a first-message snippet, a last-message preview, AI-generated summaries, persona metadata, references to attached memes, GIFs, and stickers, and any thumbs up/down rating you give an AI reply.

You may set a personalization alias/nickname and a display name, which are stored in your Firestore profile (and mirrored locally). Your rot-level preference is stored locally and on your messages and may influence the style of the AI's responses (see Section 5). Optional chat appearance customization (such as bubble style and background, which may be tied to paid features) is stored locally on your device.

You can delete individual conversations from within the App. Deleting a conversation removes that conversation and its messages, but it does not delete your account or profile, does not delete your purchase data, and does not refund credits. Your conversation data remains until you delete the conversation, delete your account, or we remove it for operational, safety, or legal reasons.

Memory notes (paid plans)

Paid subscribers (Sidekick, Wingman, and MVP plans) get a Memory feature that lets the AI write short notes about you over time, such as your general vibe, the people you mention, and topics you keep returning to, so it does not ask the same things twice.

  • Memory is only available on paid plans and is not available to free (Newbie) users.
  • For paid subscribers, Memory is on by default. You can turn it off (opt out) at any time from Settings → Memory, and the chat screen shows a small "Memory is on" indicator on a new chat so you always know its state.
  • When Memory is on, the AI writes short notes about you during chats. You cannot edit these notes by hand, but you can delete individual entries or wipe all memory at any time from Settings → Memory.
  • Memory notes are stored in your Firestore account, linked to your Firebase UID, and are kept deliberately short.
  • When Memory is on, the relevant notes are included in the system context sent to OpenAI along with your message, so OpenAI processes them as part of each request (see Section 5).
  • Turning Memory off stops new notes from being written and stops existing notes from being used. Using Wipe removes all existing notes from your account immediately.
  • Memory notes are deleted when you delete your account (see Section 21).

Custom personas you create (Persona Creator)

The App lets you build your own chat personas. When you create or edit a persona you provide text such as its name, a short description/tagline, an identity, an example reply, humor and slang notes, greeting styles, an emoji set, an optional word bank, and meme/GIF preferences, and you may upload an optional avatar image.

  • What you author is stored in Firestore (in user_personas, linked to your Firebase UID), together with the prompt the App renders from it. An uploaded avatar is stored in Cloud Storage under personaAvatars/{uid} (see Section 9).
  • The personas you create are private to your account. They are not shown to, or shared with, other users.
  • Every persona is moderated when you save or edit it, before it can be used. The persona's text and any uploaded avatar are sent to OpenAI as part of that check (see Sections 5 and 18). A persona that does not pass is rejected and is not saved.
  • When you chat with one of your personas, its text is sent to OpenAI as part of the system prompt for that conversation, the same way the built-in persona is (see Section 5).
  • How many personas you can store depends on your plan: the free plan allows one custom persona, and paid plans allow up to 100. You can edit or delete a persona at any time from within the App; deleting it also deletes its stored avatar.
  • Your personas and their avatars are deleted when you delete your account (see Section 21).

8. Klipy meme, GIF, and sticker media

The App uses the Klipy API to show trending memes, GIFs, and stickers, to let you search them by keyword, and to let the AI attach relevant meme/GIF reactions. Stickers are send-only: you can search for and send them, but the AI does not pick or send stickers. The Klipy app key is held only on our backend and is never exposed to the App.

When the App requests media, our backend sends Klipy:

  • customer_id, which is set to your Firebase UID;
  • the page and results-per-page;
  • your locale/country code, when available;
  • a content-filter level (defaulting to a conservative setting); and
  • for searches, a search query.

Search queries sent to Klipy may be ones you type or ones the AI generates from the conversation. When the AI decides a meme or GIF fits the moment, it forms a short search query based on the conversation context and our backend sends that query to Klipy. This means conversation-derived terms — not only text you type into a search box — may be sent to Klipy. Sticker searches are different: because stickers are send-only, sticker search queries are only ones you type, never ones the AI generates.

According to Klipy's integration notes, customer_id is used for personalization and de-duplication and is expected to stay consistent for the same user, which is why the Firebase UID is passed. Meme/GIF results are shown in the App and are not stored long-term by us, except that a reference to a meme/GIF/sticker you or the AI attach to a message is stored on that message (see Section 6). Klipy's own handling, retention, and analytics are governed by Klipy's policies. The current version does not use any Klipy advertising features or ad SDK.

9. Firebase and Google Cloud

We use Google Firebase to run the App:

  • Firebase Authentication for account creation and sign-in.
  • Cloud Firestore stores your profile, conversations and messages, AI replies, conversation metadata, message ratings, persona metadata, meme/GIF/sticker references, usage events, billing fields, rate-limit documents, content moderation records (see Section 18), and revenue/audit records.
  • Cloud Functions run our backend logic, including the AI streaming proxy and OpenAI calls, the Klipy proxy, the web-search proxy (Tavily), account and conversation deletion, the RevenueCat webhook, title generation, summarization, usage aggregation, rate limiting, content moderation (see Section 18), and server-side watermarking of downloaded media (see Section 12).

Cloud Storage for Firebase stores the photos you upload as chat attachments, under a path scoped to your account (messageImages/{uid}/{conversationId}), and any avatar image you upload for a custom persona, under personaAvatars/{uid}. Storage access is locked down so you can only read and write within your own namespace. Chat-photo objects are deleted when you delete the conversation or your account, and a persona avatar is deleted when you remove or replace it, delete the persona, or delete your account (see Sections 20–21). The App does not store any other user uploads (no other files or audio) in Cloud Storage.

Our Cloud Functions logs may contain technical metadata such as your UID, conversation and message IDs, token counts, cost/credit figures, plan/model, attachment metadata, rate-limit details, IP/network data, and error strings. We do not intentionally log the text of your prompts or the AI's replies (see Section 13). Our Cloud Functions run in Google's us-central1 region.

Firebase / Google Cloud processes this data on our behalf as a service provider/processor under its own terms.

10. Purchases, subscriptions, free trials, RevenueCat, Apple, and Google

Subscriptions, entitlements, and purchase restoration are managed through RevenueCat, with Apple App Store and Google Play as the payment processors. Your RevenueCat "app user ID" is set to your Firebase UID.

Free trial / introductory offer

New subscribers may be offered a 7-day free trial of the Wingman (Plus) plan as a one-time introductory offer. The following terms apply to the free trial:

  • The trial is available only to users who have never previously subscribed to that plan tier (one introductory offer per Apple ID or Google account, enforced by the App Store / Google Play).
  • Full plan features are available immediately when the trial starts.
  • Your subscription auto-renews at the regular monthly price at the end of the 7-day trial period unless you cancel at least 24 hours before the trial ends.
  • No charge is made during the trial period. Your payment method is collected when you start the trial and charged only if you do not cancel before the trial period ends.
  • To cancel: open the App Store (iOS) or Google Play (Android) → Subscriptions → Meme Chat AI → Cancel.
  • We record whether your active subscription is in a trial period (rcIsInTrial) and the trial end date (rcTrialExpiresAt) in your Firestore profile. These fields are cleared when the trial converts to a paid subscription or when the subscription is cancelled or expires.

RevenueCat and the app stores may process purchase history, product identifiers, subscription status, receipts or purchase tokens, transaction metadata, the app user ID / purchase identifier, entitlement status, trial period information, and renewal/expiration/cancellation events, along with related device/technical information. We never receive your full payment card number.

In your Firestore profile we store billing fields such as your plan, active product ID, entitlement expiry, trial status and trial end date, credit balance, RevenueCat app user ID, and related status while your account exists. We also keep a compact webhook/audit record (revenueCatEvents) of purchase events for accounting, fraud-prevention, and legal purposes; that audit record does not store your Firebase UID or RevenueCat app user ID.

Deleting your Meme Chat AI account does not cancel an active subscription or free trial. To cancel, manage your subscription through the Apple App Store or Google Play subscription settings. App-store and RevenueCat purchase/audit records may be retained after you delete your account (see Sections 20–21).

RevenueCat's processing is governed by its privacy policy, and purchases are also governed by Apple's and Google's respective policies.

11. Local device storage

The App stores a small amount of data locally on your device using AsyncStorage:

  • app settings such as theme/appearance and language;
  • an onboarding status/step flag;
  • your alias/nickname (a local copy of the personalization value);
  • chat appearance customization (bubble style, background);
  • your age-gate status and date of birth (see Section 4);
  • your rot-level preference;
  • the last conversation you had open; and
  • session tokens and a user cache managed by the Firebase Auth SDK.

Chats, prompts, AI responses, purchases, downloaded media, and logs are not persisted locally by the App's own code beyond what is listed above. Local app data is cleared as part of the sign-out and account-deletion flow, except the age-gate status and date of birth, which are intentionally retained on the device after account deletion (see Section 4). You can remove everything, including the age-gate record, by deleting the App from your device.

12. Device permissions, notifications, gallery saves, and media downloads

The current version of the App:

  • uses Sign in with Apple;
  • requires internet / network access to function;
  • requests camera and photo-library access so you can take or choose a photo to attach to a message;
  • requests permission to save to your photo/media library so you can download memes/GIFs to your device gallery;
  • requests notification permission during onboarding; and
  • may use the clipboard when you copy an AI reply.

The current version does not request access to your microphone, precise location, contacts, calendar, Bluetooth, or speech recognition, and does not support file or audio uploads.

Notifications

We ask for notification permission during onboarding. In the current version, granting permission does not result in a push token being collected or sent to us, and we do not currently send push notifications.

Media downloads and watermarking

When you download a meme or GIF you've seen in chat, our backend fetches the Klipy media asset, composites a watermark onto it, and returns the watermarked image to the App. The App then saves the watermarked image to your device's photo/media library using the save permission above. We do not read or scan the rest of your photo library — the permission is used only to add the file you chose to save.

13. Usage, credits, rate limits, and technical logs

The App meters AI usage with a credit ledger. To do this we store token counts, cost estimates, the model/plan used, credit balances, and usage events linked to your UID. We may also keep anonymized daily usage aggregates that are not tied to an individual user.

To protect the service from abuse, our backend applies a per-IP rate limit. We store a hashed, truncated form of your IP address in a short-lived rate-limit record (swept automatically by a time-to-live policy) rather than your raw IP. However, your raw IP address or network information may appear in our Cloud Functions diagnostic logs — for example, in a rate-limit warning.

We do not intentionally log the text of your prompts or the AI's replies. Backend logs are used for operating the App, billing, security, rate limiting, and debugging, and may include metadata (including attachment metadata such as counts/hosts/types, never asset URLs) and error strings as described above.

14. Analytics, ads, and tracking

Ads. The App shows ads to free users through Google AdMob and requests non-personalized ads where supported; paid plans are ad-free. Free users see two ad formats: a small banner on some screens, and occasional full-screen interstitial ads shown at natural breaks in the app, for example after an AI reply finishes or after you tap to create a new bot. We limit how often interstitials appear so they stay infrequent, and they are never shown while a message is being written or sent. Paid plans do not see any ads.

Ad providers may process information such as:

  • IP address
  • Device information
  • Advertising or app identifiers, where available and permitted
  • Coarse location derived from technical information such as IP address
  • Ad interactions
  • App interactions related to ad delivery
  • Video views, where an ad contains video
  • Diagnostics and performance information
  • Fraud-prevention and frequency-capping information

Non-personalized ads are not based on your past behavior, but they may still use contextual information, general location, device information, and technical data for ad delivery and measurement. Where required by law or platform rules, we or our ad partners may ask for consent before using certain identifiers or ad technologies.

Aside from Google AdMob, and based on the current version of the App, we do not use Google Analytics or Firebase Analytics, Crashlytics, Sentry, attribution SDKs, or any cross-app tracking. The only internal events we record are our own usage events and server logs, used for app functionality, billing, security, rate limiting, and debugging. Backend logs and diagnostics are still processed by Firebase / Google Cloud as part of running the service.

15. How we use information

We use the data described above to:

  • confirm your age eligibility;
  • create and authenticate your account and keep you signed in;
  • provide AI chat, including titles, summaries, meme/GIF reactions, and web search for current information when a message needs it;
  • store and show your conversation history, ratings, and personalization;
  • provide the Memory feature (for paid subscribers who have it enabled), using memory notes as additional context in AI sessions;
  • let you build, edit, and chat with custom personas, and moderate each one before it goes live;
  • show, search, attach, and let you download trending memes and GIFs, and let you send stickers;
  • manage subscriptions, entitlements, and credits;
  • show ads to free users through Google AdMob (paid plans are ad-free);
  • meter usage and prevent abuse (including rate limiting and fraud prevention);
  • screen content for safety and enforce our Terms of Use (see Section 18);
  • operate, debug, secure, and improve the App; and
  • comply with legal obligations and respond to your support requests.

16. How we disclose information

We share information only as needed to run the App:

  • OpenAI — chat content and conversation context, meme/GIF/sticker image inputs, photos you attach, the text and avatar of custom personas you create (for moderation and as the persona prompt), moderation checks, and the inputs for titles/summaries.
  • Firebase / Google Cloud — account, database, and backend processing.
  • Klipy — meme/GIF/sticker media requests, including your UID as customer_id and any search query (meme/GIF queries may be typed or AI-generated; sticker queries are typed only).
  • Tavily — a short, AI-generated web-search query (no account identifier), when a message needs current information.
  • RevenueCat, Apple, and Google — purchase and subscription processing.
  • Google AdMob — ad requests and the technical / ad-delivery information listed in Section 14, for ads shown to free users.
  • Legal/safety — where required by law, to enforce our terms, or to protect users and the service.

We do not sell your personal information. Free users see non-personalized ads through Google AdMob as described in Section 14; we do not otherwise share your data for cross-app tracking.

17. Security

We use measures such as Firebase Authentication, server-side authorization checks, restricted database rules, backend-only API keys, host allowlisting for media, rate limiting, and automated content moderation to help protect your data and the safety of the App. No method of transmission or storage is completely secure, so we cannot guarantee absolute security.

18. Content moderation

Meme Chat AI runs automated content moderation on message text, display names/aliases, custom persona text and avatars, and uploaded photos before they are processed by the AI or saved. This is part of how we enforce our Terms of Use and keep the App a safer space. For a plain explanation of what the app blocks or steers, how self-harm and crisis situations are handled, and how to report a message or safety concern, see our Safety page: https://meme-chat-ai.com/safety. This section covers only the data-handling side of moderation.

What is stored when content is flagged

When a message, name, persona, avatar, or photo is flagged, a moderation record is written to our backend containing: your user ID, the conversation ID (if applicable), a message reference (if applicable), the reason for the flag, the moderation model/version, and a timestamp. We do not store the raw flagged text or image in this record. It is retained for safety and audit purposes and is not readable through the App or accessible to other users (see Sections 2 and 20).

Flagged messages are not sent to the AI and are not stored in your conversation history; flagged names, personas, and avatars are rejected before they are saved. In each case you see an in-app notice, and the moderation record above is written.

Message reports

If you use the in-app report action on a message, we write a report record containing your user ID, the conversation ID, the message ID, the category you selected, your app version, an optional note you add, and a timestamp. Report records are server-only: they are not readable through the App or accessible to other users, and are reviewed as part of our safety process (see Section 2).

Reporting and feedback

If you believe your content was incorrectly flagged, or if you want to report content that you think should have been moderated but was not, use the in-app report action on a message, or contact us at memechataisupport@gmail.com. Please include as much context as possible so we can review the situation.

19. Children / minimum age

Meme Chat AI is intended for users 16 and older. It is not directed to children, and we do not knowingly collect personal information from anyone under the minimum age. The App uses a date-of-birth age gate to enforce this (see Section 4). If you believe someone under the minimum age has provided us personal information, contact us at memechataisupport@gmail.com and we will take appropriate steps.

20. Data retention

  • Conversations and messages (including ratings, persona metadata, and meme/GIF/sticker references) remain until you delete the conversation, delete your account, or we remove them for legal, safety, or operational reasons.
  • Memory notes remain until you delete individual entries, wipe all memory from Settings → Memory, or delete your account.
  • Photos you upload as chat attachments (stored in Cloud Storage) are removed when you delete the conversation or your account.
  • Custom personas (their text in Firestore and any uploaded avatar in Cloud Storage) remain until you delete the persona or your account; an avatar is also removed when you replace or remove it.
  • Profile / account data (including alias/display name and billing fields) remains while your account exists.
  • Usage events tied to your UID are removed when you delete your account.
  • Anonymized daily usage aggregates may be retained.
  • Content moderation records (see Section 18) are retained for safety and audit purposes and may be kept for a reasonable period after your account is deleted.
  • De-identified RevenueCat webhook / audit records may be retained for accounting, fraud-prevention, and legal purposes, including after account deletion.
  • Hashed IP rate-limit records are short-lived and swept automatically by a time-to-live policy. Raw IP that appears in our Cloud Functions diagnostic logs is retained for up to 30 days under Google Cloud Logging's default retention.
  • Local device data (settings, onboarding flag, alias, customization, rot level, session, persona selection, persona drafts, review-prompt state, and scheduled daily notifications) is removed on sign-out, account deletion, or App deletion — except the age-gate status and date of birth, which are intentionally retained on the device after account deletion and cleared only by deleting the App.
  • Web search results fetched from Tavily are used only to inform a single AI reply and are not stored long-term by us (the resulting reply is saved as part of your conversation).
  • Third parties (OpenAI, Klipy, Tavily, RevenueCat, Apple, Google) retain data under their own policies.

21. Account deletion, conversation deletion, and local data deletion

Deleting your account

You can delete your account from within the App. For your security, this requires recent re-authentication. Once you confirm, the App shows a non-cancellable progress screen while the deletion runs, so it cannot be interrupted partway through. When you delete your account, the App is designed to delete your Firebase Authentication user, your profile and its subcollections, the conversations and messages you own, your Memory notes, the custom personas you created and their avatars, the photos you uploaded as chat attachments (in Cloud Storage), and the usage events linked to your UID. After deleting these, the server re-checks that no per-user records or uploaded objects remain before reporting success. The App then signs you out and wipes local app data — settings, onboarding flag, alias, chat customization, chat session, persona selection, persona drafts, review-prompt state, and any scheduled daily notifications — other than the retained age-gate/DOB record described above.

Account deletion is performed across separate systems, so it cannot be perfectly atomic. We delete your sign-in record first; if a later cleanup step (or the post-deletion verification described above) fails, some records may briefly remain. The App is designed to report that failure instead of telling you deletion fully completed, so the issue can be retried or remediated. We attempt to delete all of the data described above, but cannot guarantee that every copy is removed instantly.

The following are not deleted by account deletion:

  • content moderation records (see Section 18 and Section 20);
  • de-identified RevenueCat webhook / audit records (revenueCatEvents);
  • anonymized daily usage aggregates;
  • hashed IP rate-limit records (until their time-to-live sweep);
  • the local age-gate status and date of birth on your device;
  • purchase/transaction records held by RevenueCat, Apple, or Google;
  • any API logs OpenAI retains, and any records held by Klipy or Tavily.

Deleting your account does not cancel your subscription — cancel through the App Store or Google Play (see Section 10).

Deleting conversations

You can delete selected conversations from within the App. This removes those conversations and their messages (including ratings, meme/GIF/sticker references, and any photos you uploaded to them in Cloud Storage) but does not delete your account, profile, or purchase data, and does not refund credits.

Deleting local data

Deleting the App from your device removes the local settings, onboarding flag, personalization, age-gate/DOB record, and session data stored on it.

22. Your choices and privacy rights

You can:

  • create, sign in to, or delete your account;
  • use Sign in with Apple, including Hide My Email, where available;
  • delete conversations within the App;
  • create, edit, or delete your custom personas from within the App;
  • enable, disable, or wipe your Memory notes from Settings → Memory (paid plans only);
  • manage notification and photo/media-library permissions in your device settings;
  • manage or cancel subscriptions through your App Store or Google Play subscription settings;
  • delete local app data (including the age-gate record) by deleting the App;
  • choose not to enter sensitive content into chats; and
  • contact us at memechataisupport@gmail.com with any privacy request.

Depending on where you live, you may also have the right to request access to, correction of, deletion of, or a copy/export of your personal data; to object to or restrict certain processing; to withdraw consent; and to lodge a complaint with, or appeal to, your data-protection authority. We may need to verify your identity before acting on a request. The App does not currently offer an in-app data export, but you can request a copy of your personal data by emailing us (see Section 26).

23. App Store and Google Play privacy information

The privacy disclosures we provide in Apple's App Store ("App Privacy") and Google Play's ("Data safety") are intended to match this policy and the App's actual behavior. The mapping below is a draft to be confirmed against the final store listings.

Data typeExamplesLinked to you?Purpose
Contact infoEmail addressYesAccount management, app functionality
IdentifiersFirebase UID, RevenueCat app user ID, Apple Sign In identifierYesApp functionality, purchases, security
User contentChat messages, AI replies, titles/summaries, meme/GIF/sticker references and image inputs sent to OpenAI, photos you upload as attachments, custom personas you create and their avatars, message ratings/reactions, alias/personalization, Memory notes (paid plans, when enabled)YesApp functionality (sent to OpenAI / stored in Firebase)
PurchasesSubscription status, product IDs, entitlement status, purchase/transaction metadata (via RevenueCat/Apple/Google)YesApp functionality, fraud prevention
Usage dataToken counts, credits, plan/model, usage events, ratings/reactionsYesApp functionality, billing
DiagnosticsLogs, errors, IP/network data, attachment metadata, rate-limit dataYesSecurity, diagnostics, app functionality
Search historyMeme/GIF/sticker search queries sent to Klipy — meme/GIF queries are typed by you or generated by the AI from the conversation, and sticker queries are typed by you — and AI-generated web-search queries sent to Tavily when a message needs current informationYesApp functionality (meme/GIF/sticker search/attachment; web search)
Photos or videosPhotos you take or choose to attach to a message are uploaded and sent to OpenAI. (Separately, the App saves watermarked memes/GIFs to your gallery via add/save access and does not otherwise read your library.)YesApp functionality (chat attachments)
Coarse locationLocale/country code (not collected as device location)—Meme/GIF localization
NotificationsPermission requested; no push token collected in the current version——
Advertising data (free users)IP address, device info, advertising/app identifiers where available, coarse location from IP, ad interactions, and diagnostics — processed by Google AdMob for non-personalized ads; paid plans are ad-freeYesThird-party advertising (Google AdMob)
Data used to track youNone identified in the current version (AdMob requests are for non-personalized ads and are not used for cross-app tracking)——

Free users see ads through Google AdMob, which requests non-personalized ads and may process advertising or app identifiers where available and permitted (see Section 14). The App does not present an App Tracking Transparency prompt or use cross-app tracking in the current version.

24. International processing

Your data may be processed in the United States and other countries by us and our service providers, including Firebase / Google Cloud, OpenAI, Klipy, Tavily, RevenueCat, Apple, and Google. Where required, transfers are intended to rely on appropriate safeguards such as Standard Contractual Clauses or equivalent mechanisms.

25. Changes to this policy

We may update this policy from time to time. When we do, we will update the effective date above and, where appropriate, provide additional notice.

26. Contact

Questions or privacy requests? Email memechataisupport@gmail.com.

© MemeChatAI Back to home