Your developer says the tags are installed. The GA4 snippet is in the page source, the Meta pixel is in Google Tag Manager, and the LinkedIn Insight Tag was added last quarter. Yet the conversion numbers in your ad platforms look thin, or have been flat at zero for weeks.
Installed and working are not the same thing. A tag can sit in your code or your container and never send a single request. When that happens, your campaigns keep spending while the platforms paying attention to conversions see nothing, and nobody notices until someone asks why the numbers do not add up.
What is the difference between a tag being installed and a tag firing?
A tag is installed when its code exists on the page or in your tag manager. It fires when that code runs and sends a request to the platform's servers. Only the request counts. Everything before it is intention.
Think of the chain a conversion has to travel. The tag code has to load. A trigger has to match the event, such as a page view or form submission. Consent, if required, has to be granted. The script has to execute without errors. The browser has to be allowed to send the request. Finally the platform has to receive it.
A break anywhere in that chain produces the same result: nothing reaches GA4, Google Ads, Meta or LinkedIn. And every one of those breaks is compatible with the tag being visibly present in the source code.
Why can't I trust the page source or a browser extension to tell me?
Because both show you that the tag exists, not that it sent data. A source check proves the code is on the page. An extension shows what it detected in one browser, under one set of conditions, and can be wrong in either direction.
Viewing page source is the most common check and the least informative. It shows the HTML the server delivered, including your GTM container snippet. It does not show which tags inside the container are paused, which triggers fire, or whether the scripts that load afterward succeed.
Helper extensions from the ad platforms are more useful, but they have limits. They report what they see in your browser session. If you have already accepted the cookie banner, they will not show the problem visitors have when they have not. If your own ad blocker interferes, they may report failures that real visitors do not have. Some also flag a pixel as found because its base code loaded, even when the conversion event you care about never fired.
The only reliable evidence is the network request itself.
Open DevTools, go to the Network tab, filter for the platform's collection endpoint, and perform the action the tag is meant to track. If a matching request appears with a successful status, the tag fired. If nothing appears, it did not.
Start with a private window so cached consent and existing cookies do not affect the result. Open DevTools before loading the page, select the Network tab, and tick Preserve log so requests survive page changes and form redirects.
Then filter for each platform:
- GA4: filter for
collect. Requests go to a path ending in /g/collect and include en=page_view or your event name, plus the measurement ID in the tid parameter.
- Google Ads conversions: filter for
conversion. Look for requests to googleadservices.com/pagead/conversion or google.com/pagead carrying your conversion ID and label, triggered at the moment of the conversion, not just on page load.
- Meta: filter for
facebook.com/tr. Each request includes ev=PageView, ev=Lead or your event name, and your pixel ID.
- LinkedIn: filter for
px.ads.linkedin.com. Look for a request carrying your partner ID, and for conversion events, the conversion ID.
Then do the thing the business cares about. Submit the form, complete the checkout, click the phone number. Watch for the conversion request at that moment. A page view firing correctly tells you nothing about whether the lead event fires.
How does GTM preview mode help?
Preview mode shows you, event by event, which tags fired, which did not, and why. It is the fastest way to see whether a trigger condition is failing inside Google Tag Manager.
Click Preview in your container, enter your site's URL, and use the site in the connected window. For each event in the left panel, the summary lists Tags Fired and Tags Not Fired. Click a tag that did not fire to see its triggers, and the failing condition is marked. Click the Variables tab to see the actual values the trigger was comparing against.
Preview mode has two blind spots. It runs in your browser, so it reflects your consent choice and your extensions. And it confirms that GTM executed the tag, not that the request left the browser and succeeded. Use it to diagnose the container, then confirm the request in the Network tab.
The usual causes fall into two groups: the tag never runs because of how it is configured, or it runs and something in the browser stops the request.
The tag is paused or unpublished. Someone paused it during testing, or the fix is sitting in a GTM workspace that was never published. Check the live container version, not the workspace you are editing.
The trigger no longer matches after a redesign. Triggers depend on page details: a thank you page URL, a form ID, a button class, a CSS selector. A redesign or a new form plugin changes those details, and the trigger silently stops matching. This is the most common cause of conversions dropping to zero on a date that lines up with a site launch.
Consent blocks it. In opt in regions, tags that require consent wait until the visitor accepts. That is intended. The problem is misconfiguration: tags blocked for everyone, including regions where your policy allows them, or tags that never fire after acceptance because they are not listening for the consent update.
A script error stops execution. A JavaScript error elsewhere on the page, or in a custom HTML tag, can halt the code that would have sent the request. Check the Console tab for red errors around the moment the tag should fire.
A content security policy blocks the request. If your site sends a content security policy header, any domain not listed is refused. Adding a new platform without updating the policy means the script or its requests are blocked. The Console shows these violations clearly.
Speed plugins delay tags until interaction. Performance plugins often hold back JavaScript until the visitor scrolls, taps or moves the mouse. Visitors who bounce without interacting are never counted, and conversion tags can fire late or not at all. Exclude analytics and conversion scripts from delay settings.
Your own ad blocker is the problem. Ad blockers and privacy extensions on the tester's machine block these requests routinely. If a tag looks broken only for you, test in a clean browser profile before changing anything. Some real visitors block tags too, but that is a separate question from whether your setup works.
They cost you the conversions your bidding depends on and the credit your campaigns earned. The spend continues, the leads keep arriving, and the platforms are optimizing with less information than they should have.
When a Google Ads conversion tag stops firing, smart bidding sees clicks that no longer convert. It lowers bids or shifts budget toward whatever still reports conversions, which may be the least valuable part of the account. Meta and LinkedIn campaigns optimized for leads do the same, narrowing delivery toward people who resemble the few conversions they can still see.
In GA4, a missing lead event means the channel that drove the lead looks like it drove traffic and nothing else. Reports built on that data understate paid search, paid social and content together, and budget decisions follow the reports.
The longer the gap runs, the more it costs, because the data is not recoverable. A tag that was silent for six weeks leaves six weeks of conversions that no platform will ever learn from.
After every site change that touches pages, forms or scripts, and on a regular schedule regardless. A monthly check of your primary conversions takes little time and catches most silent failures before they compound.
Keep a short list of the conversions that matter, with the page and action that triggers each. Run through them in a clean browser with the Network tab open, and compare the counts in each platform against your CRM or order system. If the platform shows noticeably fewer conversions than your own records, something in the chain is broken. An audit or scan can automate the check across pages, but confirming the conversion request itself is what proves the tag works.
FAQ
Being installed only means the code exists. The tag may be paused or unpublished in GTM, its trigger may no longer match after a redesign, consent may be blocking it, a JavaScript error may stop it, or a content security policy may refuse its requests. Speed plugins that delay scripts until interaction are another frequent cause. Check the Network tab to see whether a request is actually sent.
How do I know if my GA4 tag is working?
Open DevTools, go to the Network tab, enable Preserve log, and filter for collect. Load your site in a private window and look for requests to a /g/collect path containing your measurement ID. Then perform your key actions and confirm matching event requests appear. You can also check the Realtime report or DebugView in GA4 to see events arriving.
They are useful for diagnosis but should not be your only check. They reflect your own browser, including your consent choice and any ad blocker, and can detect a pixel's base code without confirming the conversion event fires. Use them alongside the Network tab, where the outgoing request is the definitive evidence that data was sent.
Why did my conversions drop to zero after a website redesign?
Most likely the triggers stopped matching. GTM triggers rely on details like thank you page URLs, form IDs, button classes and CSS selectors, and a redesign or new form plugin changes them. Open GTM preview mode, complete a conversion, and check whether the conversion tag appears under Tags Not Fired. The failing trigger condition will be shown there.
Does an ad blocker on my computer affect my tracking test?
Yes. Ad blockers and privacy extensions block requests to GA4, Google Ads, Meta and LinkedIn, so tags can look broken on your machine while working for most visitors. Test in a clean browser profile with extensions disabled before concluding that a tag is broken, and treat your own browser as one test condition among several.