Skip to content

Latest commit

 

History

History
996 lines (742 loc) · 25.7 KB

File metadata and controls

996 lines (742 loc) · 25.7 KB

Google OAuth Branding Verification Issue - Complete Fix Guide

🚨 Issue Description

Google has flagged your OAuth consent screen with:

"Branding verification issues - One or more of your projects or services have been suspended for a Terms of Service violation."

This happens when Google's automated system detects potential trademark, branding, or policy violations in your OAuth consent screen configuration.


🔍 Common Causes

1. App Name Issues

  • ❌ Using "Google", "Gmail", "YouTube" in app name
  • ❌ Using "AI" without proper context
  • ❌ Names that imply Google affiliation
  • ❌ Trademarked terms without permission

2. Logo/Branding Issues

  • ❌ Using Google's logo or similar designs
  • ❌ Using other companies' logos
  • ❌ Misleading branding that implies official status

3. Scope Issues

  • ❌ Requesting unnecessary scopes
  • ❌ Sensitive scopes without justification
  • ❌ Scopes that don't match app description

4. Description Issues

  • ❌ Misleading descriptions
  • ❌ Mentioning Google services incorrectly
  • ❌ Implying official Google partnership

✅ Solution Steps

Step 1: Check Your Firebase OAuth Configuration

  1. Go to Firebase Console

  2. Check Authentication Settings

    • Go to: AuthenticationSettingsAuthorized domains
    • Verify domains are correct
  3. Check Google Cloud Console

Step 2: Review OAuth Consent Screen

Current Issues to Check:

  1. App Name

    • Current: "SOHAM - Intelligent Assistant"
    • Issue: May be flagged for "AI" usage or misleading name

    Fix Options:

    • ✅ "SOHAM" (simple, clear)
    • ✅ "SOHAM Chat" (descriptive)
    • ✅ "SOHAM Platform" (professional)
    • ❌ "SOHAM" (might be flagged)
    • ❌ "Google SOHAM" (implies Google affiliation)
  2. App Logo

    • Ensure it's your own original logo
    • Don't use Google's colors/design patterns
    • Must be clear and professional
    • Size: 120x120px minimum
  3. App Description

    • Be clear and honest
    • Don't imply Google partnership
    • Explain what your app does

    Good Example:

    SOHAM is a free chat platform that allows users to interact with 
    multiple AI language models. Users can sign in with their Google 
    account to save their chat history and preferences.
    

    Bad Example:

    SOHAM powered by Google - The best AI assistant using Google's 
    technology and other AI providers.
    
  4. Scopes Requested

    • Only request what you need
    • For basic auth, you only need:
      • email - User's email address
      • profile - Basic profile info
      • openid - OpenID Connect

    Remove unnecessary scopes like:

    • Gmail access
    • Drive access
    • Calendar access
    • Contacts access

Step 3: Fix Your OAuth Consent Screen

  1. Go to Google Cloud Console

    https://console.cloud.google.com/apis/credentials/consent
    
  2. Edit OAuth Consent Screen

    Application Name:

    SOHAM
    

    Application Logo:

    • Upload your own logo (not Google-related)
    • 120x120px minimum
    • PNG or JPG format

    Application Home Page:

    https://soham-ai.vercel.app
    

    Application Privacy Policy:

    https://soham-ai.vercel.apprivacy
    

    Application Terms of Service:

    https://soham-ai.vercel.apperms
    

    Authorized Domains:

    codeex-ai.netlify.app
    firebaseapp.com
    

    Application Description:

    SOHAM is a free multi-model chat platform. Users can sign in with 
    their Google account to save conversations and personalize their 
    experience. We use Google Sign-In for authentication only.
    

    Developer Contact Information:

    Email: codeex@email.com
    
  3. Scopes Configuration

    Keep Only These Scopes:

    • ../auth/userinfo.email - See your email address
    • ../auth/userinfo.profile - See your personal info
    • openid - Associate you with your personal info

    Remove All Other Scopes

  4. Save Changes

Step 4: Update Firebase Configuration

  1. Check Firebase Auth Domain

    // src/lib/firebase.ts
    const firebaseConfig = {
      authDomain: "your-project.firebaseapp.com", // Must match OAuth config
      // ... other config
    };
  2. Verify Authorized Domains in Firebase

    • Firebase Console → Authentication → Settings → Authorized domains
    • Should include:
      • your-project.firebaseapp.com
      • codeex-ai.netlify.app (or your domain)
      • localhost (for development)

Step 5: Update Your App Branding

  1. Update Manifest

    // public/manifest.json
    {
      "name": "SOHAM - Chat Platform",
      "short_name": "SOHAM",
      "description": "Multi-model chat platform for conversations and productivity"
    }
  2. Update App Config

    // src/lib/app-config.ts
    export const APP_CONFIG = {
      APP_NAME: 'SOHAM',
      APP_DESCRIPTION: 'Free multi-model chat platform',
    };
  3. Update Package.json

    {
      "name": "SOHAM-chat",
      "description": "Multi-model chat platform with smart routing and web search"
    }

Step 6: Submit for Re-Review

  1. Request Review

  2. Provide Additional Information If Google requests more info:

    • Explain your app's purpose clearly
    • Show you're not impersonating Google
    • Demonstrate you only use basic auth scopes
    • Provide links to your privacy policy and terms

🛠️ Quick Fix Implementation

Fix 1: Update App Name (Remove "AI")

# Update package.json

<function_calls> package.json

Fix 2: Update Manifest.json

{
  "name": "SOHAM - Chat Platform",
  "short_name": "SOHAM",
  "description": "Multi-model chat platform for conversations and productivity. Sign in to save your chats and preferences.",
  "id": "SOHAM-chat"
}

Fix 3: Update SEO Config

Check src/lib/seo-config.ts and ensure:

  • No misleading claims about Google
  • Clear description of what the app does
  • Proper attribution

Fix 4: Update Privacy Policy

Ensure your privacy policy (src/app/privacy/page.tsx) clearly states:

  • How you use Google Sign-In
  • What data you collect
  • That you're not affiliated with Google
  • How users can delete their data

Fix 5: Update Terms of Service

Ensure your terms (src/app/terms/page.tsx) clearly state:

  • Your app is independent
  • Not affiliated with Google
  • Users' rights and responsibilities

📋 Google OAuth Consent Screen Checklist

Application Information

  • App name doesn't include "Google", "Gmail", or misleading terms
  • App name is clear and honest (e.g., "SOHAM")
  • Logo is original and doesn't resemble Google's
  • Logo is at least 120x120px
  • Home page URL is correct and accessible
  • Privacy policy URL is correct and accessible
  • Terms of service URL is correct and accessible

Authorized Domains

  • All domains are verified
  • Includes your production domain
  • Includes firebaseapp.com domain
  • No typos in domain names

Scopes

  • Only requesting necessary scopes
  • Using basic scopes: email, profile, openid
  • Not requesting sensitive scopes unnecessarily
  • Scope descriptions match actual usage

Branding

  • App description is clear and honest
  • No claims of Google affiliation
  • No misleading statements
  • Developer contact email is valid

🔄 Alternative Solutions

Option 1: Use Email/Password Only (Temporary)

While fixing Google OAuth, you can temporarily disable Google Sign-In:

  1. Firebase Console

    • Authentication → Sign-in method
    • Disable "Google" provider
    • Keep "Email/Password" enabled
  2. Update Your Code

    // src/lib/firebase-auth-service.ts
    // Comment out Google sign-in temporarily

Option 2: Use Different OAuth Provider

Consider adding alternative sign-in methods:

  • GitHub OAuth (developer-friendly)
  • Microsoft OAuth
  • Email/Password (always works)
  • Anonymous auth (for testing)

Option 3: Create New Firebase Project

If the issue persists:

  1. Create a new Firebase project with compliant naming
  2. Set up OAuth consent screen correctly from the start
  3. Migrate users (if needed)

📞 Contact Google Support

If the issue persists after fixes:

1. Google Cloud Support

2. Firebase Support

3. Email Template

Subject: OAuth Consent Screen Branding Verification Issue

Hello Google Support Team,

I'm experiencing a branding verification issue with my OAuth consent screen.

Project Details:
- Project Name: SOHAM
- Project ID: [your-firebase-project-id]
- GCP Project Number: [your-project-number]

Issue:
My OAuth consent screen has been flagged for branding verification issues.

Clarification:
1. App Name: "SOHAM" - This is my own brand, not affiliated with Google
2. Purpose: Free chat platform that uses Google Sign-In for authentication
3. Scopes: Only using basic scopes (email, profile, openid)
4. No Impersonation: We clearly state we're not affiliated with Google
5. Compliance: We have proper privacy policy and terms of service

Changes Made:
- Removed potentially misleading terms from app name
- Updated app description to be clear and honest
- Reduced scopes to only what's necessary
- Added proper privacy policy and terms

Could you please review my OAuth consent screen and provide guidance on what needs to be corrected?

Thank you,
[Your Name]
[Your Email]

⚠️ Common Mistakes to Avoid

Don't:

  • ❌ Use "Google" in your app name
  • ❌ Use "AI" without context (might be flagged)
  • ❌ Claim Google partnership or affiliation
  • ❌ Use Google's logo or similar designs
  • ❌ Request unnecessary OAuth scopes
  • ❌ Have misleading app descriptions
  • ❌ Use generic or suspicious app names
  • ❌ Have broken privacy policy or terms links

Do:

  • ✅ Use your own unique brand name
  • ✅ Be clear about what your app does
  • ✅ Only request necessary scopes
  • ✅ Have working privacy policy and terms
  • ✅ Use your own original logo
  • ✅ Clearly state you're independent
  • ✅ Provide valid contact information
  • ✅ Keep app description honest and accurate

🎯 Recommended Configuration

OAuth Consent Screen Settings

Application Type: External
Application Name: SOHAM
Application Logo: [Your original logo - 120x120px]
Support Email: codeex@email.com

Application Home Page: https://soham-ai.vercel.app
Application Privacy Policy: https://soham-ai.vercel.apprivacy
Application Terms of Service: https://soham-ai.vercel.apperms

Authorized Domains:
  - codeex-ai.netlify.app
  - firebaseapp.com

Scopes:
  - .../auth/userinfo.email
  - .../auth/userinfo.profile
  - openid

App Description: |
  SOHAM is a free chat platform that allows users to interact with 
  multiple language models. Users can sign in with their Google account 
  to save their chat history and preferences. We use Google Sign-In for 
  authentication purposes only and do not access any other Google services.

Developer Contact: codeex@email.com

📊 Timeline

Immediate (Today)

  1. Review OAuth consent screen
  2. Make necessary changes
  3. Update app branding
  4. Save changes

24-48 Hours

  • Google automatically re-reviews
  • Issue may be resolved automatically

If Still Suspended After 48 Hours

  • Contact Google Support
  • Provide detailed explanation
  • Request manual review

✅ Verification Checklist

After making changes, verify:

  • OAuth consent screen updated
  • App name is compliant
  • Logo is original
  • Description is clear and honest
  • Only necessary scopes requested
  • Privacy policy accessible
  • Terms of service accessible
  • Authorized domains correct
  • No Google trademark violations
  • No misleading claims
  • Developer contact valid

🚀 Testing After Fix

  1. Wait 24-48 hours for Google to re-review

  2. Test Google Sign-In

    # Run your app locally
    npm run dev
    
    # Try Google Sign-In
    # Should work without errors
  3. Check for Errors

    • Browser console
    • Firebase console logs
    • Network tab for OAuth errors
  4. Verify User Flow

    • Click "Sign in with Google"
    • Should see consent screen
    • Should successfully authenticate
    • User data should save correctly

📝 Documentation Updates Needed

After fixing, update your documentation:

  1. README.md

    • Update app name if changed
    • Update description
    • Clarify Google Sign-In usage
  2. Privacy Policy

    • Clearly state Google Sign-In usage
    • Explain data collection
    • Provide opt-out options
  3. Terms of Service

    • State independence from Google
    • User responsibilities
    • Service limitations

🆘 Still Having Issues?

Resources

Community Help

Professional Help

  • Consider hiring a Firebase/OAuth consultant
  • Google Cloud Partner can help with verification
  • Legal review if trademark concerns

💡 Prevention Tips

For future projects:

  1. Choose App Names Carefully

    • Avoid trademarked terms
    • Don't imply affiliation with big companies
    • Keep it simple and unique
  2. Start with Minimal Scopes

    • Only add scopes as needed
    • Document why each scope is necessary
    • Remove unused scopes
  3. Maintain Proper Documentation

    • Keep privacy policy updated
    • Keep terms of service current
    • Respond to user concerns
  4. Regular Compliance Checks

    • Review OAuth settings quarterly
    • Update branding as needed
    • Stay informed about policy changes

📞 Support Contacts

Google Cloud Support

Firebase Support

Your Options

  1. Fix the issues yourself (recommended - follow this guide)
  2. Contact Google Support (if issues persist)
  3. Use alternative auth methods temporarily
  4. Create new project with compliant setup

Last Updated: February 28, 2026 Status: Active Issue - Follow steps above Estimated Resolution Time: 24-48 hours after fixes

Good luck! The issue is usually resolved quickly once you make the necessary changes. 🎉


📋 Complete Brand Verification Requirements Checklist

Based on Google's official verification requirements, here's a complete checklist:

1. Homepage Requirements ✅

  • Homepage hosted on verified domain

  • Homepage accurately represents app/brand

    • Clear branding as "SOHAM"
    • Professional design and layout
  • Homepage describes app functionality

    • Features section explains what the app does
    • Not just a login page
  • Privacy Policy link on homepage

    • Link: https://soham-ai.vercel.apprivacy
    • Accessible from footer and navigation
    • Must match OAuth consent screen link

2. Privacy Policy Requirements ✅

  • Hosted on same domain as homepage

    • Privacy Policy: https://soham-ai.vercel.apprivacy
    • Same domain as homepage ✓
  • Linked from homepage

    • Available in footer
    • Easy to find
  • Linked from OAuth consent screen

    • Must add this URL to Google Cloud Console
    • URL must match exactly
  • Discloses Google user data usage

    • Section 10 explains Google Sign-In usage
    • Clear about what data is accessed
    • Explains how data is used
  • Limited Use compliance

    • Confirms compliance with Limited Use requirements
    • States data is only used for authentication
    • No advertising or selling
  • In-product privacy notifications

    • Privacy information prominently displayed
    • Users can easily find information
  • Kept up to date

    • Last updated: February 28, 2026
    • Will be updated as needed

3. Domain Ownership Verification

Action Required:

  1. Verify domain in Google Search Console

    • Go to: https://search.google.com/search-console
    • Add property: codeex-ai.netlify.app
    • Verify ownership using one of these methods:
      • HTML file upload
      • HTML tag
      • DNS record
      • Google Analytics
      • Google Tag Manager
  2. Add verified domain to OAuth consent screen

Steps to Verify Domain:

# Option 1: HTML File Upload
1. Download verification file from Search Console
2. Upload to your Netlify site's public folder
3. Deploy and verify

# Option 2: DNS Record (Recommended for Netlify)
1. Get TXT record from Search Console
2. Add to your domain's DNS settings
3. Wait for propagation (up to 48 hours)
4. Verify in Search Console

4. Google Branding Guidelines ✅

5. Project Contact Information ✅

  • Up-to-date contact information

    • Email: codeex@email.com
    • Listed in OAuth consent screen
    • Listed in Privacy Policy
  • Project ownership configured

    • Firebase project has correct owner
    • GCP project has correct permissions

Verify Contact Info:

  1. Go to: https://console.cloud.google.com/
  2. Select your project
  3. Go to: IAM & Admin → Settings
  4. Verify contact email is correct

🔍 Scopes Verification

Current Scopes (Basic - No Sensitive/Restricted)

Your app only uses basic scopes:

  • email - User's email address
  • profile - Basic profile information
  • openid - OpenID Connect

These are NOT sensitive or restricted scopes, so you don't need:

  • ❌ Security assessment
  • ❌ App functionality video
  • ❌ Additional verification

If You Add Sensitive/Restricted Scopes Later

If you ever need to add scopes like Gmail, Drive, Calendar, etc., you'll need:

  1. Appropriate Use Case

    • Justify why you need the scope
    • Explain how it benefits users
  2. App Functionality Video

    • Show end-to-end OAuth flow
    • Demonstrate scope usage
    • Show consent screen in English
  3. Limited Use Compliance

    • Only use data for stated purpose
    • No selling or sharing
    • No advertising use
  4. Security Assessment (for restricted scopes)

    • Annual assessment required
    • From Google-approved assessor
    • Costs $15,000-$75,000

Recommendation: Stick with basic scopes (email, profile, openid) to avoid additional requirements.


✅ Final Verification Checklist

Before submitting for verification:

Homepage

  • Homepage is live and accessible
  • Homepage describes app functionality
  • Privacy Policy link is visible on homepage
  • Terms of Service link is visible on homepage
  • App name and branding are clear

Privacy Policy

  • Privacy Policy is accessible at the URL
  • Privacy Policy URL matches OAuth consent screen
  • Privacy Policy explains Google Sign-In usage
  • Privacy Policy states Limited Use compliance
  • Privacy Policy is up to date

OAuth Consent Screen

  • App name is "SOHAM" (not "SOHAM")
  • App logo is uploaded (your own, not Google's)
  • Homepage URL: `https://soham-ai.vercel.app
  • Privacy Policy URL: https://soham-ai.vercel.apprivacy
  • Terms URL: https://soham-ai.vercel.apperms
  • Authorized domains include: codeex-ai.netlify.app
  • Authorized domains include: firebaseapp.com
  • Only basic scopes requested (email, profile, openid)
  • Developer contact email is correct

Domain Verification

  • Domain verified in Google Search Console
  • Verification method is active
  • Domain ownership confirmed

Firebase Configuration

  • Authorized domains include Netlify URL
  • Firebase Auth is configured correctly
  • Google Sign-In provider is enabled

Testing

  • Google Sign-In works locally
  • Consent screen displays correctly
  • User can sign in successfully
  • User data is saved correctly

🚀 Submission Process

Step 1: Complete All Requirements

  • Ensure all checklist items above are complete
  • Test thoroughly

Step 2: Submit for Verification

  1. Go to OAuth Consent Screen

  2. Review All Information

    • App name: SOHAM
    • Logo: Your original logo
    • URLs: All correct and accessible
    • Scopes: Only basic scopes
    • Domains: Verified
  3. Click "Submit for Verification" (if required)

    • For basic scopes, verification may be automatic
    • For sensitive scopes, manual review required

Step 3: Wait for Review

  • Basic scopes: Usually automatic (24-48 hours)
  • Sensitive scopes: Manual review (1-2 weeks)
  • Restricted scopes: Extended review (2-6 weeks)

Step 4: Respond to Requests

  • Check email regularly
  • Respond to Google's requests promptly
  • Provide additional information if needed

📊 Verification Status

Check Verification Status

  1. Go to: https://console.cloud.google.com/apis/credentials/consent
  2. Look for verification status badge
  3. Possible statuses:
    • Verified - All good!
    • ⚠️ Verification Required - Action needed
    • Suspended - Violation detected
    • 🔄 In Review - Being reviewed

If Verification Fails

  1. Read the rejection reason carefully
  2. Fix the issues mentioned
  3. Resubmit for verification
  4. Contact Google Support if unclear

💡 Pro Tips

Avoid Common Mistakes

  1. App Name

    • ❌ "Google SOHAM"
    • ❌ "SOHAM by Google"
    • ✅ "SOHAM"
  2. Privacy Policy

    • ❌ Generic template without Google info
    • ❌ Broken or inaccessible link
    • ✅ Specific section about Google Sign-In
  3. Scopes

    • ❌ Requesting unnecessary scopes
    • ❌ "Future-proofing" with extra scopes
    • ✅ Only request what you need now
  4. Domain Verification

    • ❌ Forgetting to verify domain
    • ❌ Using wrong verification method
    • ✅ Verify before submitting

Speed Up Verification

  1. Complete all requirements first

    • Don't submit until everything is ready
    • Double-check all URLs
  2. Use clear, professional branding

    • High-quality logo
    • Professional homepage
    • Clear app description
  3. Provide detailed information

    • Clear privacy policy
    • Accurate app description
    • Valid contact information
  4. Test everything

    • Test OAuth flow
    • Test all URLs
    • Test on different devices

📞 Need Help?

Google Support Channels

  1. OAuth Consent Screen Issues

  2. Firebase Auth Issues

  3. General API Issues

Community Resources

  • Stack Overflow: [google-oauth] tag
  • Reddit: r/Firebase, r/webdev
  • Google Developer Groups

📝 Documentation Links

Official Google Documentation

Firebase Documentation


✅ Summary

Your SOHAM app is now configured to meet Google's Brand Verification Requirements:

  1. ✅ Privacy Policy updated with Google API compliance
  2. ✅ Homepage describes app functionality
  3. ✅ Privacy Policy linked from homepage
  4. ✅ Only basic scopes requested (no sensitive/restricted)
  5. ✅ Clear branding (SOHAM, not SOHAM)
  6. ✅ Professional presentation

Remaining Actions:

  1. Verify domain in Google Search Console
  2. Update OAuth consent screen with correct URLs
  3. Test Google Sign-In flow
  4. Submit for verification (if required)
  5. Wait 24-48 hours for automatic review

Timeline:

  • Domain verification: 1-48 hours
  • OAuth review: 24-48 hours (automatic for basic scopes)
  • Total: 2-4 days maximum

You're almost there! 🎉


Last Updated: February 28, 2026
Status: Ready for Verification
Next Step: Verify domain in Google Search Console