Login and trial signups as Google Ads conversions (SaaS)
Count the account created or trial started, not the login and not the click on "Start free trial". A login is a user you already have. Then send the steps that make money (activated, paid) back to Google Ads. On 5 Nov 2026 we read the public GTM containers of 206 B2B SaaS sites that run Google Ads conversions: 15 (7.3%) count a login or a page load inside the logged-in app, 69 (33.5%) count a finished signup, and none counts a trial ending.
What 206 SaaS sites count, step by step
On 5 Nov 2026 we fetched the homepage, /pricing, /signup and /demo of 306 B2B SaaS sites and read every public GTM container they load. 229 were left after removing sites with no public container and sister domains that serve the same containers. 206 had at least one Google Ads conversion tag. We sorted every trigger on those tags (2,695 tag and trigger pairs) into the step of a self-serve signup it counts, from its event name, URL condition and click target, and read the login, signup, activation and paid rows by hand.
| Step the trigger counts | Example trigger | Sites | Share of 206 |
|---|---|---|---|
| Click on "Sign up" or "Start free trial" | Click Text contains "Start Free Trial" | 32 | 15.5% |
| Signup page loaded, or a "signup began" event | Page View, URL contains /signup | 16 | 7.8% |
| Signup finished, trial started, account created | sign_up, trial_started, /signup/success | 69 | 33.5% |
| Action inside the product after signup | onboarding_step_complete, connectedInbox, created_org | 14 | 6.8% |
| Paid: purchase, subscription, upgrade | purchase, PaidSubscriptionStart | 28 | 13.6% |
| Trial ended or expired | 0 | 0.0% | |
| Login, or a page load inside the logged-in app | Click URL contains /signin, login event | 15 | 7.3% |
A site can sit in several rows. The other triggers were demo and contact forms, CTAs, content and page views. Three things stand out:
- 26 sites (12.6%) count signup only by the click or the page view. They have a signup conversion, but no conversion for a finished signup. Everyone who opens the form counts as a signup.
- No site counts a trial ending. Our 449-site study found the same: 0.0%. When this goes wrong, it is a login, not a trial end.
- 35 sites (17.0%) send Ads a step after signup from the browser: an in-product action or a payment. The rest stop at the signup, so bidding can't tell a trial that pays from one that never logs in again.
The 15 login conversions
| How the login is counted | Sites |
|---|---|
| Click on "Log in" or "Sign in", or a link to the app's sign-in page | 9 |
A login success event (login, signinSuccess, email_login_success) | 3 |
| Page load of the login page or of a page inside the app | 3 |
| Form submit on the sign-in page | 1 |
One site is in two rows. 9 of the 15 have no finished-signup conversion at all, so the login may be standing in for "a user did something". Our 4 Nov study counted logins on 11.5% of 235 Ads sites with a looser text match. This rescan reads each trigger, drops matches like "signing" in a blog URL, and lands lower.
Why a login conversion is worse than it looks
Every login can count
Google Ads has two counting options. Every counts each conversion after an ad click; One counts one per click. Google says Every "is the default for website, in-app actions" and recommends One when you care "whether or not a certain kind of lead was generated" (Google Ads Help: conversion counting options). A login tag left on the default counts each login by a user who came through an ad within the conversion window.
Users come back through your ads
If a customer searches your brand name plus "login" and clicks your brand ad to reach the login page, their login counts as a conversion of that campaign. If the action is primary, bidding uses it (Google Ads Help: primary and secondary actions), and brand campaigns look like they make conversions out of people who already pay you.
A logged-in page load is the same thing
Three sites fire a conversion when a page inside the app loads: any page on an app subdomain, a scheduling page, a training home page. Every working day of every user is a candidate.
The one login that is fine: the first one
Two sites tag the first login: a firstSignIn event, and a dashboard URL with isFirstTimeLogin=1. That happens once per account, so it works as a stand-in for "account created". We did not count those as logins.
Real triggers from the scan (anonymised)
Login, counted as a conversion
AW-•••••••••/•••• Custom Event email_login_success|social_login_success
and userPlan matches "bronze|silver|gold"
AW-•••••••••/•••• Page View Page Hostname contains "login.•••••.com"
AW-•••••••••/•••• Page View Page Hostname contains "app.•••••.com"
and Page Path matches "^/[^/]+/home/training"
AW-•••••••••/•••• Click Click Text equals "Sign In"
Signup, counted at the right step
AW-•••••••••/•••• Custom Event account_registration_complete
and isFreeTrial equals "true"
AW-•••••••••/•••• Page View Page URL contains "/signup/success"
After signup
AW-•••••••••/•••• Custom Event onboarding_step_complete
and onboarding_step_number equals "3"
AW-•••••••••/•••• Custom Event appEvent, eventAction equals "PaidSubscriptionStart"
The first one is deliberate: a login by a user on a paid plan. It still counts each login, not each new customer. If paid users matter, count the payment once.
What to count instead
| Step | Make it a conversion? | How to tag it |
|---|---|---|
| Click on "Start free trial" | Secondary at most | Leave it in GA4. See button click conversions. |
| Signup page view | No | It is a visit, not a signup. |
| Account created or trial started | Yes, primary, count One | An event your app pushes after the account exists (GA4's recommended name is sign_up), or the first page after signup, with the user ID as transaction ID. |
| Activated (the action that predicts paying) | Yes, if you can send it | Browser event from the app, or offline import. |
| Paid | Yes, with value | Browser event at checkout success, or import from billing. |
| Login, dashboard view | No | Keep it in product analytics. |
| Trial ended | No | It happens to every trial. |
GA4 lists login and sign_up as two separate recommended events (GA4 recommended events). If your app sends both, mark only sign_up as a key event, and import only that into Ads. A transaction ID stops the same signup counting twice if the event fires again on a reload (Google Ads Help: transaction ID).
Signup often ends on the app domain, where the marketing GTM container may not load. If so, fire the conversion from the app, or send it later from your database or CRM with offline conversion import or enhanced conversions for leads. The same route carries "activated" and "paid", which the browser rarely sees.
Check your own site in 5 minutes
- Open your site in Chrome, accept the cookie banner, open DevTools, Network, tick Preserve log, and filter on
conversion. - Click "Log in" and sign in with a test account. A request with
label=in it, on the click or on the first app page, means a login is a conversion. - Reload a page inside the app. Same test.
- Log out, open the signup page and leave it. A conversion here counts visitors as signups.
- Finish a signup with a new test address. You want exactly one conversion request, after the account exists.
- In GTM, open Tags, filter on "Google Ads Conversion Tracking" and read each trigger for
login,signin,dashboardor an app hostname. - In Google Ads, Goals, Conversions: check which of these labels are Primary and whether the count is One or Every. We can't see either from outside.
How to fix it
- Write down 30 days of Conversions and cost per conversion first. They will move.
- Set the login action to secondary, or remove its tag. Secondary keeps it in All conversions without steering bids.
- Tag the account created with an event from the app, count One, and pass the user ID as transaction ID.
- Make signup clicks and signup page views secondary. If both a click and a finished signup are primary, the same person counts twice: see duplicate conversions.
- Add one step after signup (activated or paid) as soon as you can send it, and give paid a value.
- Decide which of all these stay primary with primary vs secondary conversions.
What we can't see from outside
- Primary or secondary, and One or Every. Both are set in your Google Ads account. The 7.3% is the share of sites where a login is set up as an Ads conversion, not the share where it is bid on.
- Tags in the app. We read the containers loaded by the homepage,
/pricing,/signupand/demo. A separate container that only loads inside the app is missed, so the signup, activation and paid rows are floors. - Server-side tags, offline imports, tags added by consent tools or non-Google loaders, and GA4 key events imported into Ads.
- Whether a trigger still fires. A tag for a removed page or event never fires. We read the container, not a browser session.
- The sample is hand-picked B2B SaaS vendors plus sites from our own prospect list, skewed to larger companies. It is not random. Steps are sorted by text patterns in event names, URLs and click targets, and a trigger named only by a CSS class or a vague event lands in "other".
FAQ
Should a login be a Google Ads conversion?
No. A login is a user you already have. If customers reach the login page through a brand ad, each login can count as a conversion of that campaign. Count the account created instead, and keep logins in product analytics.
Should a free trial signup be a Google Ads conversion?
Yes, the finished signup: the account exists. Not the click on "Start free trial" and not the signup page view. Count it once per account and add a later step (activated or paid) when you can send it.
Our login conversion is set to secondary. Is that fine?
Mostly. Secondary actions show in All conversions and don't steer bidding. Check it in Goals, Conversions: we can't see that setting from outside, and one goal edit makes it primary again.
Is the first login a valid signup conversion?
Yes, if it really fires once per account, like an isFirstTimeLogin flag set by the app. Two sites in our scan do this. A plain login event is not the same thing.
Can Fireshift see which of my conversions are primary?
No. Primary, secondary and the count setting live inside your Google Ads account. We show which conversions your site sends and what triggers them. You check their status in Goals, Conversions.
Run all nine checks on your site, free.
Fireshift reads what your site tells Google Ads, GA4 and Meta from the outside. No install, about a minute.
Get my Leak Score