Paid Media World

How to Fix "Unverified" and "No Recent Conversions" Status in Google Ads: Step-by-Step Diagnostic Guide

Complete diagnostic manual to resolving "Unverified" and "No Recent Conversions" tracking statuses in Google Ads. Learn how to debug Tag Assistant payloads, rep

SN
By Subhranil Naskar
|November 13, 2026|13 min read|Fact-Checked & Audited
Sponsored Technical Insights
google ads conversion action unverified fix
## The Real Cost of "Unverified" Conversion Tracking in Modern Google Ads Few sights in Google Ads cause more immediate concern for media buyers than logging into **Goals > Conversions > Summary** and finding critical lead or purchase actions flagged with a red or yellow warning: **"Unverified"** or **"No recent conversions"**. In the era of automated bidding—where Smart Bidding strategies like **Target CPA (tCPA)**, **Target ROAS (tROAS)**, and **Maximize Conversions** control real-time auction bids based on conversion signals—a broken or unverified conversion action paralyzes your campaigns: ``` [Broken / Unverified Conversion Tag] | v [Zero Conversion Signals Passed to Google Ads Engine] | v [Algorithm Assumes Traffic Is Failing to Convert] | v [Smart Bidding Throttles Bids & Slashes Quality Impression Share] | v [Campaign Delivery Enters Downward Death Spiral] ``` When Google's bidding algorithm stops receiving verified conversion events, it cannot distinguish between poor landing page conversion rates and broken tracking code. It assumes your traffic is failing to convert, drops bid aggressive levels, and retreats into low-intent inventory. Within 48 to 72 hours, campaign spend collapses, or your cost-per-acquisition (CPA) spikes wildly as the bidding engine hunts blindly for conversions. Official Google Ads documentation offers notoriously generic advice: *"Wait for someone to convert, or use Tag Assistant to test your page."* For performance marketers managing thousands of dollars in daily ad spend, waiting days without knowing whether your tracking code works is unacceptable. This definitive technical guide provides an exhaustive, step-by-step diagnostic framework to identify why your Google Ads conversion action is stuck on **Unverified** or **No recent conversions**, fix the underlying code or configuration failure, and force verification within hours. --- ## The Google Ads Conversion Tracking Status Matrix Before troubleshooting, you must understand the exact technical meaning behind each status label in Google Ads: | Tracking Status Label | Visual Indicator | Technical Meaning | Business Impact | Primary Root Cause | |---|---|---|---|---| | **Recording** | Green Circle | Google Ads has successfully recorded at least one verified conversion within the last 7 days. | Bidding algorithms are healthy and receiving real-time conversion signals. | None (Operational). | | **Unverified** | Yellow Circle | Google Ads has **never detected your tag firing** on your website since the action was created. | Smart Bidding cannot optimize; campaigns cannot use this action as a primary goal. | Tag is not published, incorrect Conversion ID/Label, or fired on wrong page. | | **No Recent Conversions** *(Awaiting Conversions)* | Yellow Circle | The tag was previously detected, but **no conversions attributed to ad clicks have been received in the past 7 days**. | Bidding algorithms may begin to decay or down-bid if conversion volume remains zero. | Low traffic, seasonal slump, broken form/checkout script, or stripped `gclid`. | | **Tag Inactive** | Red Circle | Google Ads has **not detected the tag firing at all for over 24 hours**, despite website traffic. | Critical tracking failure. Google Ads treats the tag as completely absent. | Script deleted during site redesign, theme update, or CMP cookie blocker. | | **Removed** | Gray Circle | The conversion action was archived or deleted by an account manager. | Historic data remains in reports, but no new conversions are counted. | Manual deletion. | --- ## Diagnostic Flowchart: Pinpointing the Failure Mechanism Follow this systematic decision tree to isolate the exact point of failure in your conversion tracking pipeline: ``` [Conversion Action Flagged] | +-------------------------+-------------------------+ | | [Status: UNVERIFIED] [Status: NO RECENT CONVERSIONS] | | Is the tag live in GTM? Did conversions stop abruptly? / \ / [NO] [YES] [YES] [NO] | | | | Publish GTM Container Check Conversion ID & Label Audit recent site/code Check campaign spend & in GTM vs Google Ads changes & form plugins traffic volume (7-day window) | | Did Tag Assistant connect? Check gclid preservation / \ across landing page redirects [NO] [YES] | Check CMP Cookie Does trigger execute Audit Consent Mode v2 Banner / Ad Blockers on Thank-You page? for missing 'granted' signals ``` --- ## 4 Root Causes of "Unverified" Status and How to Fix Them ### Root Cause 1: Container Publishing & Tag Sequencing Errors in GTM By far the most common cause of permanent "Unverified" status is operational oversight in Google Tag Manager: 1. **Unpublished GTM Workspace**: An analyst builds the conversion tag inside GTM, clicks "Save", but forgets to click the blue **Submit > Publish** button. The changes exist only in your local draft, while the live website serves the old container version. 2. **Missing Conversion Linker Tag**: Google Ads conversion tracking requires a **Conversion Linker** tag to run on every page (`All Pages` trigger). The Conversion Linker is responsible for reading the `gclid` (Google Click Identifier) or `wbraid`/`gbraid` from the landing page URL and storing it in first-party cookies (`_gcl_au`, `_gcl_aw`). Without this tag, the conversion event cannot associate the conversion with an ad click. 3. **Mismatched Conversion ID or Conversion Label**: Google Ads generates a unique alphanumeric Conversion Label (e.g., `dK8sCN-3kY0ZEP3j9_cB`) for each conversion action. If there is a trailing space or a typo in GTM, Google Ads treats the incoming ping as foreign and discards it. ``` +------------------------------------------------------------------------------------+ | GTM FIX CHECKLIST | | 1. Verify GTM Workspace is published with current version timestamp. | | 2. Ensure "Conversion Linker" tag exists with trigger: "All Pages". | | 3. Copy Conversion ID (AW-XXXXXXXXX) and Label directly from Google Ads UI. | | 4. Confirm trigger fires on Page View (DOM Ready) of confirmation page. | +------------------------------------------------------------------------------------+ ``` ### Root Cause 2: Consent Mode v2 & CMP Cookie Banner Blockers With the mandatory rollout of Google Consent Mode v2, cookie management platforms (CMPs like Cookiebot, OneTrust, Usercentrics, Iubenda) often block tags before user consent: * **Hard Blocking vs. Advanced Consent Mode**: Many CMPs are configured to "hard block" all Google tags by default. If a visitor lands on your page, does not interact with the cookie banner, or submits a form without clicking "Accept All", the CMP suppresses the conversion tag entirely. * **Missing `ad_storage` or `ad_user_data`**: For a conversion to verify in Google Ads, both `ad_storage` and `ad_user_data` must be set to `granted`. If your banner only updates `analytics_storage`, Google Ads drops the conversion signal. #### How to Fix Consent Mode Blockers: Inspect your Google Tag Manager container settings: 1. Open your **Google Ads Conversion Tracking** tag. 2. Expand **Advanced Settings > Consent Settings**. 3. Ensure **Built-in Consent Checks** are enabled. Do not set additional custom consent requirements that block the tag from firing in Advanced Consent Mode. Under Advanced Consent Mode, Google tags fire cookieless pings that allow Google Ads to verify tag health without violating user privacy. ### Root Cause 3: URL Redirects Stripping the `gclid` Parameter When a user clicks a Google Search or Performance Max ad, Google appends a unique click identifier to your landing page URL: `https://yourdomain.com/?gclid=CjwKCAjw...` If your web server or CMS executes an unmanaged redirect, that parameter is frequently wiped out: * **HTTP to HTTPS Redirects**: `http://yourdomain.com/?gclid=123` $ ightarrow$ redirects to $ ightarrow$ `https://yourdomain.com/` (parameter lost!). * **Trailing Slash Normalization**: `https://yourdomain.com/landing` $ ightarrow$ redirects to $ ightarrow$ `https://yourdomain.com/landing/` (parameter lost!). * **Subdomain or Vanity URL Routing**: `https://go.yourdomain.com` $ ightarrow$ redirects to $ ightarrow$ `https://yourdomain.com/signup` (parameter lost!). If the `gclid` is stripped on the first hop, the Conversion Linker cannot store the click ID. When the user later completes a purchase or lead submission, the conversion tag fires, but Google Ads rejects it because it cannot tie the action back to an authenticated Google ad click. #### How to Test for `gclid` Stripping: Open your browser terminal or command line and run a `curl` header check: ```bash curl -IL "https://yourdomain.com/?gclid=test_click_id_12345" ``` Review the HTTP `Location:` header in the 301/302 responses. If `?gclid=test_click_id_12345` does not persist through to the final `HTTP/2 200` response, update your `.htaccess`, Nginx configuration, or Cloudflare Page Rules to preserve query parameters (`$is_args$args` or `QSA` flag). ### Root Cause 4: Primary vs. Secondary Conversion Action Misconfiguration In Google Ads, conversion actions are divided into: * **Primary Actions**: Used for optimization and reporting in the main "Conversions" column. Smart Bidding bids directly toward these actions. * **Secondary Actions**: Used for observation only. They appear in the "All Conv." column but are ignored by Smart Bidding algorithms. If you create a new conversion action and set it as **Secondary**, Google Ads places it in an observational state. While secondary actions can still verify, their status updates can lag significantly because Google prioritizes auction verification pipelines for primary bidding goals. Ensure your main lead or transaction event is explicitly designated as **Primary**. --- ## Step-by-Step Diagnostic Walkthrough using Google Tag Assistant Never wait 48 hours to discover whether your conversion tag works. You can verify its technical integrity immediately using **Google Tag Assistant**: ``` +------------------------------------------------------------------------------------+ | TAG ASSISTANT DIAGNOSTIC PROTOCOL | +------------------------------------------------------------------------------------+ Step 1: Open Google Ads > Goals > Conversions > Summary. Step 2: Hover over "Unverified" status > Click "Troubleshoot". Step 3: Enter your target landing page URL > Click "Connect". Step 4: Execute a live test conversion in the debug window. Step 5: Inspect Tag Assistant event tree for "Google Ads Conversion Tracking". Step 6: Verify HTTP payload parameters: id (AW-XXXXX), label, value, currency. +------------------------------------------------------------------------------------+ ``` ### Step 1: Launch the Official Troubleshooter 1. In Google Ads, navigate to **Goals > Conversions > Summary**. 2. Locate the unverified conversion action. 3. In the **Tracking status** column, hover over **Unverified** and click **Troubleshoot**. 4. This opens **Google Tag Assistant** (`tagassistant.google.com`) in a specialized diagnostic session linked directly to your Google Ads customer ID. ### Step 2: Connect to Your Website 1. Enter your website URL (use the exact landing page where campaigns send traffic). 2. Ensure the checkbox for **Include debug signal in the URL** is checked. 3. Click **Connect**. A new browser window will open displaying your site with a floating badge: *"Tag Assistant Connected"*. ### Step 3: Complete a Test Conversion Navigate through your site exactly like a real user: * Fill out the contact form or submit a lead inquiry. * If testing an e-commerce store, add a low-cost or test item to the cart and complete checkout using a test payment method (Shopify Bogus Gateway, Stripe Test Card, or a 100% off coupon code). * Land on the final confirmation page (`/thank-you/` or `/order-received/`). ### Step 4: Inspect Tag Assistant Event Output Switch back to the Tag Assistant tab and inspect the left-hand navigation pane: 1. Locate the event in the timeline that corresponds to your conversion (e.g., `Page View`, `DOM Ready`, `Form Submit`, or Custom Event `purchase`). 2. Click on that event. 3. Look at the main pane under **Tags Fired**: * **Tag Fired**: You should see your **Google Ads Conversion Tracking** tag. * **Tag Not Fired**: If your tag appears under "Tags Not Fired", click on it. Tag Assistant will display the exact firing trigger and show which condition failed with a red "X" (e.g., *Page URL contains /thank-you/ was FALSE*). ### Step 5: Verify the Outgoing Network Payload Click on the fired Google Ads tag inside Tag Assistant to inspect the outgoing data: * **Conversion ID**: Must match your `AW-XXXXXXXXX` ID. * **Conversion Label**: Must match your action's unique string. * **Conversion Value & Currency**: If tracking dynamic values, verify the numerical amount is passed cleanly (e.g., `49.99`, not `$49.99` with a string currency symbol). --- ## How to Force Verification: The Synthetic Click Method If your tag fires cleanly in Tag Assistant, but Google Ads remains stuck on "Unverified" after 24 hours, it is because **Google Ads requires an actual ad click connection to finalize verification** for certain action types. Here is the exact method to force immediate verification without waiting for random organic visitors: ### Method 1: The Live Ad Self-Click (Guaranteed Fix) 1. Go to Google Search and search for an exact-match keyword that triggers one of your active search ads. 2. Click on your live ad (this costs the price of one single click, typically $1.50–$3.00). 3. Land on your website, complete the conversion form or purchase immediately. 4. Keep the confirmation page open for at least 15 seconds to ensure all asynchronous beacons and `gtag.js` payloads complete. 5. Within **3 to 6 hours**, Google Ads will process the click-to-conversion pipeline, record the authenticated hit, and switch your tracking status from **Unverified** to **Recording (Green)**. ### Method 2: Synthetic URL Click Injection (Developer Method) If you prefer not to spend money on a live ad click: 1. Open your browser in an Incognito window. 2. Manually append a simulated Google Click ID to your landing page URL: `https://yourdomain.com/?gclid=CjwKCAjw_TestVerificationClickId12345` 3. Hit Enter and allow the page to load fully. 4. Navigate to your conversion form and complete a test submission. 5. While this does not record an attributed ad conversion in campaign reports (since the click ID is synthetic), it triggers the `_gcl_aw` first-party cookie write and sends the conversion ping with `gclid` headers, which registers the tag as technically active on Google's backend servers. --- ## Expected Latency Windows: When Will the Status Change? Marketers often panic when a status does not turn green immediately after completing a test conversion. Google Ads does not operate in real time for conversion status verification: ``` [Test Conversion Completed] | v (0 - 15 minutes) [Tag Assistant Confirms Tag Fired & Payload Sent] | v (3 - 6 hours) [Google Ads Backend Processes Raw Conversion Logs] | v (12 - 24 hours) [Conversions Summary UI Updates Status from "Unverified" to "Recording"] ``` * **Tag Assistant / Network Tab**: **Instant (0 seconds)**. Confirms the script executed. * **Google Ads Diagnostics Tab**: **3 to 6 hours**. Backend ingestion registers the hit. * **Google Ads Conversions Summary Table**: **12 to 24 hours**. The primary user interface refreshes its visual status badges. * **Smart Bidding Algorithm Assimilation**: **24 to 48 hours**. Target CPA and Target ROAS bidding models incorporate the new conversion volume into auction bid calculations. --- ## Automated Google Ads Script: Conversion Inactivity Alert To protect client accounts from silent tracking failures, deploy this automated Google Ads script. It runs daily at 8:00 AM, inspects all conversion actions, and emails your team if an active conversion action stops recording: ```javascript /** * Google Ads Conversion Inactivity & Status Anomaly Alert * Engineered by PaidMediaWorld Analytics Team (2026) * Schedule: Daily at 08:00 AM */ const CONFIG = { NOTIFICATION_EMAIL: "[email protected]", CLIENT_NAME: "Enterprise Client Account", INACTIVE_DAYS_THRESHOLD: 7 }; function main() { const query = ` SELECT conversion_action.id, conversion_action.name, conversion_action.status, conversion_action.type, conversion_action.primary_for_goal, metrics.conversions FROM conversion_action WHERE conversion_action.status = 'ENABLED' AND conversion_action.primary_for_goal = TRUE AND segments.date DURING LAST_7_DAYS `; const report = AdsApp.search(query); const unverifiedActions = []; while (report.hasNext()) { const row = report.next(); const convName = row.conversionAction.name; const totalConversions = parseFloat(row.metrics.conversions || 0); // Flag primary actions that had 0 conversions over the past 7 days if (totalConversions === 0) { unverifiedActions.push({ name: convName, id: row.conversionAction.id }); } } if (unverifiedActions.length > 0) { sendAlertEmail(unverifiedActions); } else { Logger.log("All primary conversion actions recorded activity within the last 7 days."); } } function sendAlertEmail(actions) { let body = `CRITICAL ALERT: Conversion Tracking Inactivity Detected `; body += `Account: ${CONFIG.CLIENT_NAME} (${AdsApp.currentAccount().getCustomerId()}) `; body += `The following PRIMARY conversion actions have recorded ZERO conversions in the last ${CONFIG.INACTIVE_DAYS_THRESHOLD} days: `; actions.forEach(a => { body += `• ${a.name} (Action ID: ${a.id}) `; }); body += ` Immediate Action Required: `; body += `1. Verify GTM container is published. `; body += `2. Run Google Tag Assistant to check for broken triggers or CMP cookie blocks. `; body += `3. Audit website checkout/lead forms for recent code breaks. `; MailApp.sendEmail( CONFIG.NOTIFICATION_EMAIL, `[ALERT] Zero Conversions on ${CONFIG.CLIENT_NAME} (Google Ads)`, body ); Logger.log(`Alert email dispatched to ${CONFIG.NOTIFICATION_EMAIL}`); } ``` --- ## Pre-Launch Verification Checklist Before contacting Google Support or rebuilding your campaigns, ensure every item on this checklist is confirmed: - [ ] Google Tag Manager container is **Published** with the latest workspace version. - [ ] **Conversion Linker** tag is deployed with trigger: **All Pages**. - [ ] Conversion ID (`AW-XXXXXXX`) and alphanumeric Conversion Label match Google Ads exactly. - [ ] Conversion Action is set to **Primary** in Google Ads account goals. - [ ] Firing trigger is set to Page View of the specific Thank-You URL or Custom Event (not click on a link). - [ ] Advanced Consent Mode v2 is configured; tags are not hard-blocked before user interaction. - [ ] Landing page URLs preserve `gclid` parameters through all HTTP/HTTPS redirects. - [ ] Test conversion completed and verified inside **Google Tag Assistant**. - [ ] Allowed **12 to 24 hours** for Google Ads reporting latency before escalating.
SN

Subhranil Naskar

Founder & Lead Performance Strategist
Kolkata, West Bengal, India

Subhranil is the Founder and Lead Performance Strategist at Paid Media World. With over 10 years of practitioner experience managing high-budget performance marketing infrastructure across Google Ads, Meta Ads (CAPI), and GA4 event attribution, he personally architects and audits deterministic paid media infrastructure, algorithmic portfolio bidding, and enterprise conversion architecture.

Recommended Deep Dives

Related Playbooks & Further Reading

Explore All Playbooks
Sponsored Recommendations