Skip to main content

Google One Tap Popup

Google One Tap is the signature feature that makes OneTap Login unique. Unlike traditional social login that requires page redirects, One Tap displays a popup directly on your website for instant authentication.

What Is One Tap?

Google One Tap is a modern authentication method developed by Google that:

  • Displays a popup in the corner of your page
  • Detects if visitor is signed into Google
  • Allows single-click login
  • Requires no page redirects
  • Keeps users on the same page
The Unique Differentiator

OneTap Login for WooCommerce is the only WordPress plugin that implements real Google One Tap. All competitors use traditional OAuth redirects, which are slower and more disruptive.

How It Works

User Experience Flow

1. User visits your site

2. Plugin detects Google session

3. One Tap popup appears (corner)

4. User clicks their account

5. Instantly logged in (same page)

Technical Flow

1. Google Identity Services (GIS) JavaScript loads

2. GIS checks for active Google session

3. If found, displays One Tap popup

4. User clicks → JWT credential returned

5. Plugin verifies credential with Google

6. WordPress session created

7. Page updates without redirect

One Tap vs Traditional OAuth

AspectOne TapTraditional OAuth
Clicks required14-5
Page redirects02-3
Time to login2-3 seconds15-30 seconds
Stays on pageYesNo
User frictionVery lowHigh
Conversion impact+30% registrationsBaseline

One Tap Popup Appearance

The popup appears as a small card in the corner:

One Tap Popup My Account

Popup contains:

  • Google logo
  • "Sign in to [Your Site]" text
  • User's Google profile picture
  • User's name and email
  • "Continue as [Name]" button
  • Close button (X)
ContextPosition
Desktop (LTR)Top-right corner
Desktop (RTL)Top-left corner
MobileTop-center
Custom containerSpecified element

Configuration

Enable One Tap

  1. Go to Settings > OneTap Login
  2. In One Tap Configuration section
  3. Check Enable One Tap
  4. Save Changes

Additional Options

OptionDefaultDescription
Auto-selectOffAuto-select if only one Google account
Cancel on tap outsideOnClose when clicking elsewhere
Prompt parent ID(empty)Custom container element

Where One Tap Appears

Default Locations

PageShows One TapConfigurable
My AccountYesAlways enabled
CheckoutYesPRO only
CartYesPRO only
wp-login.phpYesFREE

Pages Where One Tap Doesn't Appear

  • Admin pages (/wp-admin/)
  • Already logged-in users
  • Pages with no OneTap JavaScript
  • When cookie consent not given

FedCM Support

OneTap Login supports Google's Federated Credential Management (FedCM):

What Is FedCM?

FedCM is a browser API that:

  • Improves privacy for authentication
  • Works when third-party cookies are blocked
  • Is supported by Chrome 108+
  • Will be required when Chrome removes third-party cookies

Automatic Fallback

The plugin automatically:

  1. Tries FedCM-based One Tap first
  2. Falls back to iframe-based One Tap
  3. Falls back to Sign-In Button if both fail
FedCM One Tap → iframe One Tap → Sign-In Button

Browser Support

BrowserFedCM SupportOne Tap Fallback
Chrome 108+FullYes
Edge 108+FullYes
FirefoxNot yetiframe
SafariNot yetiframe

Conditions for One Tap Display

The popup only appears when ALL conditions are met:

ConditionRequirement
One Tap enabledSetting is on
User not logged inNo WordPress session
User has Google sessionSigned into Google
On enabled pageMy Account, Checkout, etc.
Cookie consent givenIf required by setting
Not in cooldownNo recent dismissals
HTTPS enabledRequired by Google
Valid Client IDConfigured in settings

Cooldown Behavior

Google implements a cooldown when users dismiss the popup:

ActionCooldown Period
First dismiss2 hours
Second dismiss1 day
Third+ dismiss2 weeks
Close button clickSame as dismiss
Tap outsideSame as dismiss

Resetting Cooldown

Cooldown is stored in cookies. To reset:

  • Clear browser cookies
  • Use incognito window
  • Wait for cooldown to expire
Testing

Always use fresh incognito windows when testing One Tap to avoid cooldown issues.

Automatic Account Detection

One Tap can detect if the user's Google email matches an existing WordPress account:

New User Flow

Google email not in WordPress

New account created

Default role assigned

User logged in

Existing User Flow

Google email found in WordPress

Account linked to Google

No duplicate created

User logged in

Mobile Experience

On mobile devices:

Appearance

  • Popup appears at top-center
  • Larger touch targets
  • Full-width on small screens

Interaction

  • Tap to select account
  • Swipe up/down to dismiss
  • Optimized for touch

Performance

  • Lightweight JavaScript
  • Fast loading on mobile networks
  • Minimal battery impact

Debugging One Tap

One Tap Not Appearing

Check these in order:

  1. Settings: Is One Tap enabled?
  2. Google session: Is user signed into Google?
  3. WordPress session: Is user already logged in?
  4. Cooldown: Has popup been dismissed recently?
  5. Console: Any JavaScript errors?
  6. Client ID: Is it valid and configured?

Console Logging

Enable debug mode to see One Tap events:

// Browser console
localStorage.setItem('onetap_debug', 'true');

Then reload the page and check console for:

  • "One Tap: Checking eligibility..."
  • "One Tap: Displaying popup..."
  • "One Tap: Credential received..."

Common Issues

IssueLikely CauseSolution
Never appearsNot signed into GoogleSign into Google first
Appears then hidesInvalid Client IDCheck credentials
Shows errorDomain not authorizedAdd domain to Google Cloud
Dismissed instantlyCooldown activeClear cookies or wait

Security

JWT Validation

One Tap returns a JWT (JSON Web Token) that the plugin validates:

  1. Signature verified against Google's public keys
  2. Issuer checked (accounts.google.com)
  3. Audience checked (your Client ID)
  4. Expiration checked (not expired)
  5. Issued-at checked (not too old)

CSRF Protection

The plugin includes CSRF protection:

  • Nonce verification
  • State parameter validation
  • Origin checking

Data Privacy

One Tap only shares:

  • Email address
  • First and last name
  • Profile picture URL
  • Google user ID

Does NOT share:

  • Password (there isn't one)
  • Browser history
  • Other Google data

Performance Impact

JavaScript Size

ComponentSize (gzipped)
Google GIS library~15 KB
OneTap plugin script~5 KB
Total~20 KB

Loading Strategy

  • Scripts load asynchronously
  • No render blocking
  • Lazy initialization
  • Minimal main thread impact

Core Web Vitals

One Tap is optimized for:

  • LCP: No impact (loads after)
  • FID: Minimal (async processing)
  • CLS: Zero (skeleton placeholders)

Best Practices

Do's

  • Keep One Tap enabled for best UX
  • Use on high-traffic pages (My Account)
  • Test with incognito windows
  • Monitor conversion rates

Don'ts

  • Don't disable on mobile
  • Don't add too many custom containers
  • Don't block Google's domains
  • Don't ignore console errors

Next Steps