Skip to content
AppFoyer

Compliance pages for mobile apps

Your app's compliance URLs, live in minutes.

Privacy policy, terms, support, account deletion and app-ads.txt — hosted and store-ready. No domain, no server, no backend of your own.

Free plan: one published app, all five pages, app-ads.txt and the compliance checklist. No card.

The AppFoyer dashboard showing a compliance checklist with eleven items, six of them done.
The checklist tells you what each store still wants, and why. See the rest of the dashboard on the product tour.

Take the product tour →

The store asks for You paste
  • Privacy policy URL Google Play Console
    /privacy
  • Account deletion URL Google Play Console
    /account-deletion
  • Support URL App Store Connect
    /support
  • App website Google Play Console
    /
  • app-ads.txt AdMob
    /app-ads.txt

Each app gets its own subdomain, one level under appfoyer.page — within the subdomain depth AdMob's crawler probes. Set it as the website in your store listing; see the app-ads.txt guide.

Two ways in

Let your coding agent do it, or fill in a short form.

Both paths end the same way: five pages drafted, and a review screen where you decide what goes public.

From your coding agent

Install the plugin, then say “Make this app store-ready” inside your app's repository. It reads your build files — SDKs, permissions, bundle id — drafts every page from what it finds, and asks you only what the code cannot tell it.

export APPFOYER_API_KEY=cpk_…
claude
/plugin marketplace add appfoyer/claude-plugin
/plugin install appfoyer@appfoyer
  • Only derived facts leave your machine — SDK and permission names, the app's name. Never source code.
  • The agent cannot publish. It writes drafts; publishing needs your click in the dashboard.

Works with Claude Code today. Setup and what gets sent →

In your browser

No agent needed. Add an app, answer a short form, and the five pages are generated from templates you can then edit as Markdown.

  • App name
  • Developer or company name
  • Support email
  • Store listing URL
  • What the app collects
  • App icon (optional)

Everything a store requires is on the free plan. Start free →

What you get

Five pages, an ad file, and a checklist that tells you what is still missing.

Everything here is on the free plan. Nothing a store requires is behind a paywall — paid plans sell scale, not compliance.

  • Privacy policy

    /privacy

    Generated from your app's real SDK list. The editor asks which analytics, ads and crash reporters you use, and the checklist keeps warning you until the placeholder sentence is replaced.

  • Terms of service

    /terms

    A plain template covering use of the app, purchases and liability. Apple's standard EULA is linked when your app sells anything.

  • Support

    /support

    The support URL both stores ask for: your contact address and the basics reviewers look for.

  • Account deletion

    /account-deletion

    The page Google Play requires. A user submits a request, we store it and notify you by email, Telegram or Slack. You perform the deletion in your own systems — we never touch your users' data.

  • app-ads.txt

    /app-ads.txt

    Presets for AdMob, AppLovin, Unity and others, plus line-by-line validation. Served as plain text with no redirect, which is what crawlers require.

The legal pages are templates completed by you, not legal advice — every generated page says so, and you stay responsible for what you publish.

The honest comparison

Why not GitHub Pages and a template?

You can do all of this yourself, and for a single app it is a reasonable afternoon. One part does not work on a static host at all.

Time to first live URL
Static host2–3 hours AppFoyerMinutes
Domain
Static host≈ $12 / year AppFoyerIncluded, on a subdomain
Account-deletion form
Static hostNeeds a backend you have to run AppFoyerIncluded
When a deletion request arrives
Static hostNothing happens AppFoyerEmail, Telegram or Slack notification
app-ads.txt
Static hostHand-written, hand-checked AppFoyerPresets and line-by-line validation
Privacy policy content
Static hostCopy a template, guess the SDK list AppFoyerDrafted from the SDKs in your build files

That highlighted row is the whole argument. Google Play requires a page where a user can submit a deletion request — a form that has to reach you. Static hosting cannot do it, so the DIY route ends with a third-party form service or a small server you now maintain.

Trust & safety

What we do so a free subdomain stays worth trusting.

Every hosted page carries a footer

It names the developer, says the page is hosted by AppFoyer, states that we are not affiliated with any app store, and links a way to report abuse. You cannot remove it.

Your page content is Markdown, never raw HTML

Nothing you write can become a script, an embedded frame or a third-party image. Links to your own site, your store listings and your support address become clickable; anything else is printed as plain text. The only form on a hosted site is the account-deletion request form we provide, and it carries a bot-protection challenge.

Publishing is screened

Each publish is scored for impersonation and scam patterns before anything goes public. A false positive delays a page by a review; it never deletes your work.

Seeing a page that shouldn't exist? Report it — every report is read.

Questions developers actually ask

Do I need my own domain?

No. Each app gets its own subdomain, and that URL is what you paste into the store console. If you already own a domain, you can still use it for your app's marketing site — these pages are the compliance ones.

Can I point my own domain at these pages?

Not today. On the Pro plan you can replace the random subdomain with a name you choose — within naming rules that refuse reserved words, brand names and sign-in-sounding words like “login”, and that ask the name to relate to your app or company. Custom domains are not part of the product yet.

Does AppFoyer delete my users' data?

No, and it cannot. The account-deletion page collects the request, stores it, and notifies you. Deleting the account inside your own backend is yours to do — that is what Google Play actually requires of you. Any wording suggesting otherwise would be false.

Are the generated legal pages legally valid?

They are templates you complete, not legal advice. They cover what the stores ask for and each page says plainly that the developer is responsible for its accuracy. If your app operates somewhere with specific requirements, have a lawyer read them.

Does app-ads.txt on a subdomain really work with AdMob?

Yes, by the published rules. AdMob's app-ads.txt guide states that its crawler uses the hostname of the developer website in your store listing and probes up to one subdomain level, and it names platform hosting such as Firebase Hosting as an accepted place for the file. Your site is one level under appfoyer.page and serves the file the way the specification requires — plain text, HTTP 200, no redirect, correct headers. Set your store listing's website to your AppFoyer URL and check your ad network's dashboard after it has crawled.

What if the .page domain is blocked where my users are?

Every site answers on a second domain as well: the same address with .site instead of .page. Same pages, same slug, same app-ads.txt — one site, two addresses. Some countries and networks block whole top-level domains, so if .page is unreachable for you or your users, use the .site address in your store listing and in your app. You switch which address the dashboard shows with one click.

What happens to my pages if I stop paying?

Nothing at all while the charge is still being retried — that runs for two to four weeks and no countdown of ours starts during it. Once the subscription is actually cancelled you return to the free plan: you pick which one app stays published, the rest stay online but read-only for a week, and come offline three weeks in. You are emailed on day 0, day 7 and day 18. Nothing is deleted at any point, and your custom subdomain is held for you and never given to anyone else — subscribing again brings it all back with one publish.

If my pages come offline, how do my users still request account deletion?

They still can. The account-deletion page is the one page we keep serving after an app is unpublished — read-only, hidden from search engines, indefinitely. Requests still reach you by email. Your users never chose AppFoyer and have no idea about your billing, so losing their route to you over an unpaid invoice would be our mistake, not yours. The file that does stop immediately is app-ads.txt, because ad networks require it, not an app store.

What if AppFoyer shuts down? My URL is in a store listing.

The fair question to ask a hosting service, so the answer is in our Terms rather than only in a blog post. If we ever discontinue the service you get at least twelve months' notice: your pages stay online the whole time, and new sign-ups stop immediately so nobody starts a submission on a URL that is going away. You can edit and republish for the first three months; after that the pages keep serving but stop changing, nothing is billed for the remaining nine months, and a prepaid period is refunded pro rata. Export everything — the Markdown of every page, your app-ads.txt, your settings and your deletion-request log — from the day of the announcement.

Can I get a refund?

Ask within 14 days of any charge — the first one or a renewal — and you get it back in full, no reason needed. Cancelling is one click in the customer portal, and you keep the plan until the period you paid for ends.

Can I edit what was generated?

Yes. Every page is Markdown with a live preview, whether a template or your agent wrote the first draft. Nothing is published until you publish it.

Get the URLs your store listing is waiting for.

One app, all five pages and app-ads.txt on the free plan. No card, and nothing a store requires is ever paywalled.