Skip to content
WebViewGold Vibe Coding to App Store
English
Get WebViewGold

Google Play rejection

User-generated and AI-generated content: the moderation features Google expects in your app

If users can post, comment, upload or chat, or if a model generates content inside your app, Google expects you to control what appears. The requirements are concrete: a report button, a block option, a moderation process, and for AI features a way to flag bad output. Here is how to implement all of it in a vibe-coded web app.

From $109 one-time per platform, or let our team do it all from $698.

  • Approval guarantee – or money back within 14 days
  • No coding needed
  • One-time payment, free updates
  • 24/7 human support
  • Made in Germany since 2014 · ISO 27001

What the two policies require

The user-generated content policy applies to any app where users create or share content that other users can see: forums, comments, profiles with photos, chats, marketplaces, reviews. Such an app must define what is not allowed (terms or community rules), give users a way to report content and other users from inside the app, let them block people, moderate reported content and remove violations in a reasonable time, and keep objectionable content out of the parts of the app that minors or the general public see. Apps that make money from UGC or that are primarily UGC get a closer look.

The AI-generated content rules add a layer for apps with generative features: the app must not produce prohibited content (sexual content involving minors, content that enables fraud, harassment or deception), must apply reasonable safeguards to prompts and outputs, and must let users report or flag offensive AI output without leaving the app. Reviewers test this by prompting your model for exactly the things the policy forbids and by looking for the flag button.

The minimum viable moderation kit

Report content and users

A visible "Report" action on every piece of UGC and on profiles, with a reason and an optional note, stored in your database and visible to you. A mailto: link is a weak substitute; build the form.

Block users

Blocking hides the blocked user's content from the blocker and prevents contact. It must work immediately, in the UI and in the queries behind it.

Rules users agree to

Community guidelines or terms accepted at sign-up and linked from the report screen, including what happens to violators.

A moderation queue

An admin page that lists reports, lets you hide or delete content, warn or ban users, and records what was done. Email or push notifications for new reports keep response times short.

Filters where it makes sense

Keyword filters, an image moderation API for uploads, rate limits. Not mandatory everywhere, but expected the larger your community gets.

Flag AI output

A thumbs-down or "Report this answer" control on every generated message or image, stored with the prompt and the output so you can review it, plus provider moderation and a system prompt that refuses prohibited requests.

Build it in a Supabase-based app

The same shape works with Firebase, Base44 or any backend; the tables just change names.

  1. Add the tables

    reports (id, reporter_id, target_type, target_id, reason, note, status, created_at) and blocks (blocker_id, blocked_id, created_at). For AI apps add ai_flags (id, user_id, conversation_id, message_id, reason, created_at) with a copy of the flagged output.

  2. Protect them with row-level security

    Users can insert their own reports and blocks and read their own blocks. Only an admin role can read all reports and change their status. Your builder can generate the policies if you name the roles.

  3. Apply blocks everywhere content is read

    Feeds, comments, search, direct messages: every query excludes content from blocked users, and blocked users cannot message the blocker. Test it from two accounts.

  4. Add the UI

    Report and Block in the overflow menu of every post, comment and profile; a thumbs-down and "Report" on every AI response; a confirmation that the report was received and what happens next.

  5. Build the admin page

    A protected route that lists open reports with the content, buttons to hide or delete it and to warn or ban the user, and a status change. Log each action. Send yourself an email or a push notification (OneSignal works from the server) when a report comes in.

  6. Write it down

    Community rules in the app, a moderation paragraph in the privacy policy, and a short description of the process in the App access notes so the reviewer knows where to find the report flow.

Great way of converting your web app to a native app! Fast turn-around, and a great way to get your apps into the app stores without the need to develop a full native app!

Kevin Joling · FlightConnections & TrainConnections · Trustpilot

Prompt for your builder

Adjust table names and the admin role to your project.

Paste into Lovable, Bolt, Base44, Cursor or Claude Code
Add user-generated content moderation to my app as required by Google Play and the App Store.
1. Create tables reports (reporter_id, target_type, target_id, reason, note, status, created_at) and blocks (blocker_id, blocked_id, created_at) with row-level security: users can create their own rows and read their own blocks; only users with role admin can read and update all reports.
2. Add a Report option (with reasons: spam, harassment, hate, sexual content, violence, other, plus a note field) to the menu of every post, comment and user profile, and a Block user option on profiles and messages. Show a confirmation after reporting.
3. Exclude content from blocked users in every feed, search, comment list and chat, and prevent messages between a blocker and the blocked user.
4. For AI-generated responses, add a thumbs-down and a Report this answer action that stores the prompt, the answer and the reason in a table ai_flags.
5. Create an admin page at /admin/moderation (admin role only) listing open reports with the reported content, with actions: hide content, delete content, warn user, ban user, dismiss report. Log every action with the admin id and timestamp.
6. Add a Community guidelines page, require acceptance at sign-up, and link it from the report dialog.
7. Send an email to the admin address when a new report is created.

What a reviewer tries

Reviewer actionExpected result
Posts an abusive comment from a test accountReport option visible on the comment; confirmation shown
Blocks the other test accountIts content disappears; it can no longer message the blocker
Looks for the rulesCommunity guidelines reachable from sign-up, settings or the report dialog
Asks the AI for prohibited contentRefusal, and a visible way to report the answer
Checks the listing and privacy policyModeration described; content rating declares user interaction

Frequently asked questions

My app only has an AI chat, no users talking to each other. Does the UGC policy apply?

The UGC rules apply when users see each other's content. The AI content rules apply regardless: safeguards against prohibited output and an in-app way to report generated content are expected for any generative feature.

Is a thumbs-down enough as the AI report mechanism?

It is a good start if it stores the output and lets you review it. A clearer "Report this answer" with a reason is safer, because the reviewer must recognize it as a reporting function.

Do I have to moderate within a fixed number of hours?

Google asks for timely action without a universal number. Set a target you can keep, state it in your guidelines, and make sure reports reach you immediately so you can act.

Three ways to get your app into the stores

Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.

Do it yourself

$109 per platform, one-time

The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.

See plans on the main page

Cloud Builder

$349 per license, one-time add-on

No Mac, no Xcode, no Android Studio: configure in the browser, we build both apps in the cloud and hand them to App Store Connect and the Play Console.

How the Cloud Builder works Try the free demo

Full Service

$698 per platform $798

Send us your URL and icon. Our team configures, builds and delivers your app within 72 hours, white-label, with source projects. Both platforms for $1,158.

Full Service details Powered by WeSetupYourWebViewApp

Winter Sale prices valid until December 31, 2026.

Ready to ship your app?

App Store & Google Play approval guarantee – or your money back within 14 days

Rather hand it over? Full Service: we configure, build and deliver within 72 hours, from $698 per platform. Questions? Chat with us 24/7.

Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.