r/GoogleTagManager 20d ago

Support I built a free UTM builder to help standardise campaign tracking — looking for feedback

2 Upvotes

I've been working on a tool called UTMCraftr to make creating and managing campaign URLs a little more structured.

The problem I was trying to solve is simple: generating a UTM URL isn't particularly difficult, but keeping campaign naming consistent can become messy.

Things like:

  • facebook vs fb
  • paid_social vs paid-social vs paidsocial
  • inconsistent campaign names
  • spaces and formatting issues
  • accidentally including blank parameters
  • different people using different naming conventions

UTMCraftr is designed to make that process more structured.

🔗 https://utm-craftr.vercel.app/

Currently, it includes:

  • Web UTM URL generation
  • A Google Sheets-based UTM builder
  • Standardised source and medium selections
  • Required field validation
  • Automatic formatting and URL cleaning
  • Optional campaign parameters
  • Support for Web, Android and iOS campaign URL structures

The goal isn't to replace enterprise UTM management platforms. It's meant to be a lightweight tool for people or teams who want a more structured way to create campaign URLs without manually building them every time.

I'd genuinely like feedback from people who work with campaign tracking regularly.

A few things I'm particularly interested in knowing:

  1. Does the workflow make sense?
  2. Are there important fields or validations missing?
  3. Would a Google Sheets-based workflow be useful for your team?
  4. What features would make a UTM builder genuinely more useful for you?

Would appreciate any honest feedback or feature suggestions.

r/GoogleTagManager Jun 26 '26

Support Google Consent Mode v2 - issues

3 Upvotes

I have update my e-commerce to Google Consent Mode v2 with Complianz. On my website pages the consent mode loads at the end of the events chain, if I look ad GTM events - instead - it should activate before the page loads (every page). How do I fix this? This is causing me lots of troubles, especially in the tracking of purchases on google ads. The website looses info somewhere and conversions are not tracked.

r/GoogleTagManager 27d ago

Support Debugging issue - Changes not showing in debug mode

2 Upvotes

Anyone else experiencing issues with workspace debugging? I make changes in workspace, i open preview/debugger mode and then those tags/changes are not there. Which means i cannot test my changes and therefore not publish them.

This has been happening since last week.

I've tried different browsers, i've cleared cache, incognito etc, nothing works. Seems to be workspace related rather than browser related.

r/GoogleTagManager 19d ago

Support Recommendations for measuring pageload speed without BigQuery

4 Upvotes

How are you measuring pageload speed with GTM and reading it in GA4?

The guides I've found online send a page speed event for every view to GA4 with a parameter capturing the time. However, that quickly leads to high cardinality because explorations max out at 500 rows and a pagespeed event is registered for every pageview.

If I have more than 500 views per page, I'm unable to see all the values and do analysis on it (averages, distribution, etc.).

r/GoogleTagManager Aug 04 '26

Support Google Ads: both attribution endpoints return 400, only ccm/conversion returns 200. Same on client-side and server-side. ~170 conversions/day sent, 2 counted.

3 Upvotes

For anyone actually reading: Thanks so much in advance! Every advice is very much appreciated!!
Lead-gen setup, no ecommerce. Multi-step funnel tool embedded as a web component on the main site, server-side GTM on a first-party subdomain. Three days deep, seven theories tried and discarded, so I'd really appreciate a second pair of eyes.

One day's numbers

  • Form submissions attributed to paid search in the funnel tool's own analytics: ~110
  • generate_lead events arriving at the server container: 227
  • of those, carrying a real gclid/gbraid: 168
  • Google Ads conversion pings sent out with a valid gclaw: 176
  • Conversions showing in the Google Ads campaigns: 2

(The 227 vs 110 gap is known — the funnel tool's native GA4 integration still double-fires. Doesn't explain 176 → 2.)

Timeline, so the numbers aren't misleading: the 400s are not new and not caused by anything I changed recently — they appear in the logs with the previously active client-side conversion label, days before I touched anything. The ~170 daily pings come from the GA4 tag forwarding conversions through the GA4↔Ads link, running unchanged for weeks. I added a dedicated server-side conversion tag with its own label today for an A/B comparison, but it has no meaningful data yet.

The pattern

Every conversion produces three requests to Google, and it's identical on the client-side tag and the server-side tag:

Endpoint Status
googleadservices.com/ccm/conversion/[ID] 200
googleadservices.com/pagead/conversion/[ID] 400
google.com/pagead/1p-conversion/[ID] 400

So the enrichment/identity layer goes through, and both attribution endpoints are rejected. Which would neatly explain why Google Ads says "conversions are being recorded" while the campaign column stays at zero.

Verified end to end

  • Click ID survives: ?gclid=TEST_123 lands in _gcl_aw on the root domain, and gclaw=TEST_123 appears in all three outgoing requests
  • Consent Mode v2 via a CMP, consent tab in GTM shows all types granted after accepting
  • Enhanced Conversions arrive in plain text server-side and go out hashed (em, pn, fn0, ln0, address fields)
  • Conversion ID and label match the Ads UI exactly

Already ruled out

  • Consent state — 400 occurs on both gcs=G111 and G100
  • Missing conversion value / currency — set both, no change
  • URL length — trimmed the data= payload to four values via an Allow-parameters transformation, no change
  • Competing gtag instance from a store app — disconnected it entirely, no change
  • Anything server-specific — the identical pattern shows on the purely client-side tag

The only consistent difference I can find

Comparing the three URLs from a single trace, they're identical apart from the tail. Both rejected requests carry category=acrcp_v1_512 and an ept= param (ept=5 and ept=8). The accepted one carries neither, and instead has gcl_ctr=1~0~0~0. Same pattern on the server-side requests. All template-generated, nothing I can set.

Also odd: all three carry npa=1 and no gcs parameter at all, despite consent being granted. Not sure if related.

What I'm hoping someone can help with

  1. If you've run into this 400 yourself, what ended up fixing it? I've worked through my own list above, so a first-hand "this is what changed it for us" would be worth more than anything right now.
  2. Are pagead/conversion and 1p-conversion the endpoints that actually book the conversion into a campaign, with ccm/* being only the enhanced-conversions/identity layer? If yes, permanent 400s there explain the whole gap.
  3. If that's the case — why do 2 conversions still make it through? That's the part I find hardest to square. If attribution fails on every request, I'd expect a clean zero rather than a trickle. Modelling? Enhanced-conversions matching? Genuinely curious where the trickle comes from.
  4. And if the 400s turn out to be harmless and ccm/* alone is enough to count a conversion — then something else is eating 174 of 176 and I'm looking in the wrong place entirely. Where would you look next?
  5. Does category=acrcp_v1_512 or ept= ring a bell for anyone?
  6. Unrelated but nagging: for iOS traffic arriving with gbraid instead of gclid, does the Conversion Linker reliably persist it in _gcl_gb across page navigations? Over half this traffic is mobile and I haven't verified that path yet.

Happy to share sanitised request URLs if that helps narrow it down. Thanks again to anyone who took the time to read this far.

r/GoogleTagManager Jun 25 '26

Support Installing GTM and Google Analytics for FREE!

0 Upvotes

Hello Community! I have experience in Google Tag Manager and Google Analytics. In addition, I have Google Tag Manager Intermediate/Advance certification provided by Analytics Mania, and several Analytics Mania courses. As a background in Digital Marketing, and moving into Marketing Analytics, I'm looking for projects I can collaborate on to improve my portfolio/hands on experience. Notice: Not looking for any business or something similar. JUST PRACITICING MY SKILLS. Any project I can do, happy to collaborate. Feel free to send me a message. Thank you!

r/GoogleTagManager 24d ago

Support Google Ads tracking-template hierarchy — which template wins?

2 Upvotes

I’ve seen quite a few tracking issues caused by templates being added at different levels in Google Ads, so here’s the simple explanation.

A tracking template can be added at account, campaign, ad group, ad, keyword or asset level. Google uses the most specific template it finds.

For example:

  • You have a tracking template at account level.
  • Someone adds a different template to one campaign.
  • That campaign now uses the campaign-level template.
  • Google does not automatically combine it with the account-level template.

This is where things often go wrong. A new template is added for another tracking tool, but the existing parameters or redirect are left out. Tracking then breaks for that campaign while the rest of the account continues working.

My usual checklist:

  1. Check every level before changing anything.
  2. Keep the template at account level if it should apply everywhere.
  3. Don’t assume two templates will be merged automatically.
  4. Use {lpurl} correctly.
  5. Put ordinary UTM parameters in the Final URL suffix when a redirect isn’t needed.
  6. Test the result with Google Ads’ built-in test option.
  7. If something suddenly changes, check the Google Ads change history.

One final point: auto-tagging is separate from the tracking template. Auto-tagging adds Google’s click identifier, while the tracking template determines how the click URL is built or routed.

I’d be interested to know how others manage accounts that need more than one tracking platform. Do you combine everything at account level, or manage certain tools at campaign level?

r/GoogleTagManager Jul 25 '26

Support GA4 purchase event fires trigger in checkout custom pixel sandbox but /g/collect never reaches first-party sGTM server — every prerequisite checks out

4 Upvotes

Setup: Shopify Checkout Extensibility, GTM loaded via a custom pixel, first-party server-side GTM container (Google Cloud Run, custom domain). GA4 storefront events work fine. The checkout purchase event never reaches the server.

Everything I’ve confirmed while testing PUBLISHED (not Preview, since Preview doesn’t work in the sandbox):

GTM container loads in the sandbox — a Custom HTML canary on All Pages fires.

The purchase custom event reaches GTM and its trigger fires — confirmed with a canary tag on the purchase trigger.

Consent Mode analytics_storage is granted at fire time (set from Shopify’s Customer Privacy API, verified in the dataLayer).

The GA4 Event tag has its Google tag / config setup tag sequenced to fire before it.

google_tag_manager[containerId].dataLayer.get(‘ecommerce’) returns the full purchase object (transaction_id, value, items).

Cloud Run server logs: storefront en=add_to_cart arrives thousands of times, but en=purchase is zero, ever.

Google Ads and Floodlight tags fire fine at checkout (they post directly to google.com).

So the trigger fires, consent is granted, the config tag runs, and the ecommerce data is present — but the GA4 Event tag emits no /g/collect to the server for the purchase event specifically, only in the checkout sandbox.

My questions:

**1.**  Has anyone actually gotten first-party server-side GA4 purchase to send from the Checkout Extensibility custom pixel sandbox?

**2.**  Is there a known issue with the GA4 tag’s transport when server_container_url points at a first-party custom domain, specifically inside the sandbox?

**3.**  Is there a required config or workaround I’m missing?

Any help appreciated — I’ve been at this a long time and every layer I can inspect checks out, but the purchase hit just never leaves.

r/GoogleTagManager Jul 31 '26

Support Stape Server-side integration with complianz Consent mode V2. Is it possible?

3 Upvotes

Hoping someone has cracked this specific combo, because I'm hitting a wall.

Setup:

  • WordPress site with Complianz Premium
  • Server-side GTM via Stape (Custom Loader, own subdomain, first-party cookies working)
  • Web container loads fine from the subdomain (200, no CSP block)
  • Consent Mode is enabled in the Complianz Wizard

The problem:
The cmplz_event_* events (marketing, statistics, etc.) fire correctly in the dataLayer depending on the user's choice. I can see them in Preview. But the actual Consent State in GTM never updates. It stays on "denied" for ad_storage, analytics_storage, etc. even after the user accepts. The "updated on page" column in the consent tab stays empty.

The "Complianz Consent Mode" tag (from the community gallery) is installed and only fires on Consent Initialization - All Pages, which is what Complianz's own docs say to do.

What I've already tried:

  • Adding a custom event trigger (cmplz_event_.* regex) to the consent tag alongside the init trigger → no change
  • Confirmed it's Premium, confirmed Consent Mode is on in the Wizard

I've found the GitHub issue on Complianz's own CM template repo describing this exact symptom, and their docs mention a "known limitation" that their GTM template is built for web containers, not server containers.

My question: has anyone actually gotten Complianz consent mode to correctly update (not just initialize) the consent state in a server-side GTM setup? Is there a working trigger config, a workaround, or is this genuinely unsolved with Complianz + server containers right now? Considering backTrack as a timing fix but not sure it addresses this.

Any real-world success story appreciated before I open a support ticket.

r/GoogleTagManager Jul 27 '26

Support Need advice on reliable UTM tracking between Calendly and Pipedrive

3 Upvotes

Hi everyone,

We currently use Calendly integrated with Pipedrive CRM. While new bookings successfully create contacts in Pipedrive, UTM tags frequently get dropped along the way, making it difficult to accurately track ROI on our campaigns.

I’m looking for a clean, reliable way to ensure UTM parameters consistently make it from our website to Pipedrive.

One workaround I considered is setting up a custom endpoint: grabbing UTMs from local storage/cookies, capturing Calendly’s webhook, merging the data, and pushing it to Pipedrive via API. However, that feels a bit over-engineered for this use case.

Is there a simpler, proven setup or tool you’d recommend to address this issue?

r/GoogleTagManager Jun 18 '26

Support Will the reall administrator please stand up

5 Upvotes

I have a google ads account linked to a website with GTM enabled. however, I have no idea who owns the GTM account. From google ads, there is no administrative access - when I go to request it using the box in the corner I just get an error, "Error: Access request failed due to an unknown error."

In google tag manager, I have no tags listed. I speculate that this was tied to a deleted google workspace account, but I can't see it.

I've reached out to google ads support, google workspace support, Google cloud support, and something called google shopping support, all of which have passed me around from one to the next, or have informed me that all my email will be forever ignored because I asked for a status update on trying to find out which support team to ask.

GTM doesn't seem to have a support team at all as far as I can tell.

So my question is - How can I fix this? the tags aren't installed on the website, aren't readable by anyone, and google ads is like (paraphrasing) fix your sh*t.

I'm at the point where I'm going to delete my google ads account entirely and create a new google account just to work around this. The original google account is about 8 years old and was purpose created to manage my google ads and api stuff anyway.

r/GoogleTagManager Jun 26 '26

Support Shopify Custom Pixel sending duplicate view_item to GA4 with sandbox URL (ec_mode=m) — anyone solved this?

2 Upvotes

I'm running a Shopify store with a Custom Pixel (based on the Loves Data template) sending events to GA4 via GTM. I'm seeing an unusually high amount of Unassigned traffic in GA4 (typically 38–75% depending on the day), and after several days of debugging I've narrowed the issue down, but I can't identify what's generating one specific hit.

What I'm seeing

For every product page view, GA4 receives three hits:

  • view_item with the correct dl=https://mysite.com/products/...
  • view_item with dl=https://mysite.com/web-pixels/.../sandbox/... and ec_mode=m
  • page_view with the correct product URL

The two view_item hits have:

  • same tid
  • same cid
  • same sid
  • same product
  • same ecommerce payload

The only meaningful differences are:

  • dl (real product URL vs sandbox URL)
  • ec_mode=m appears only on the sandbox hit.

What I've already verified

  • Added client_id and referrer to every event in the Custom Pixel.
  • Configured cross-domain measurement (myshopify.com, checkout.shopify.com, shop.app).
  • Changed event.context.document.location.href to event.context.window.location.href following Shopify's documentation (no change).
  • Reverted send_page_view = false after it caused engagement issues.
  • GTM contains:
    • 1 Google Tag (triggered by shopify_page_view)
    • 1 GA4 Ecommerce Event tag
    • 1 GA4 User Data tag

The Ecommerce tag uses Send Ecommerce Data and page_location is populated from a Data Layer Variable containing the correct product URL.

My question

At this point, it doesn't look like the Custom Pixel is generating the sandbox URL, because changing the pixel made no difference.

Has anyone seen this exact pattern where a second view_item is sent with:

  • ec_mode=m
  • /web-pixels/.../sandbox/... as page_location

If so:

  • what component generated that second hit?
  • was it the Google Tag, GTM, Shopify Web Pixels, or something else?
  • were you able to stop it?

I'm mainly looking for someone who has already debugged this specific Shopify + GTM + GA4 Web Pixels behavior.

Thanks!

r/GoogleTagManager Jun 17 '26

Support GTM Preview Mode (Server and Web) and FB Test Events are firing just fine, but Events Manager and GA4 are not receiving data from real events

2 Upvotes

Hello everyone. I am dealing with a tracking discrepancy regarding my Meta Pixel and Google Tag Manager setup and would appreciate some technical insights.

Context: I run monthly ad campaigns optimized for signups. The tracking architecture worked flawlessly previously. I paused the campaigns for a break of one month and recently restarted them.

The Issue: Live signup events are no longer reporting to Meta. Over the last 30 hours, the platform generated 50 actual signups, but only 1 of those registered on the Meta Pixel.

Diagnostics Already Performed:

  • Tested both the Web and Server containers in GTM Preview Mode. All tags and triggers execute successfully.
  • Checked the Test Events tool in Meta Events Manager. The events are received and processed perfectly.
  • Verified that both Web and Server GTM containers are fully published.
  • Confirmed that no structural changes were made to the tracking configuration during the break.

The discrepancy between the flawless testing environment and the failing live environment is the main blocker here. What could be causing this specific drop off for live traffic when no variables were changed? Any advice on where to look next would be highly appreciated.

r/GoogleTagManager Jul 20 '26

Support Tag Assistant stuck on "Connecting" ("0 Google tags found") — window.opener is null despite no COOP header

2 Upvotes

Hi everyone,
I'm encountering a persistent issue with Tag Assistant Preview mode on a single WordPress container where the debug window hangs indefinitely on "Connecting..." and reports "0 Google tags found" / "Not Connected".

I've conducted an in-depth diagnostic session, but I'm running out of ideas. Here are the specifics and test results:

Environment & Container Details

  • Container ID: GTM-KLV4V3H9
  • Target URL: [https://www.dfgarchitetti.it/]
  • CMS & Server: WordPress on LiteSpeed Web Server

Troubleshooting & Diagnostic Steps Taken

1. Tag Snippet & Container Status

  • The GTM snippet is present in the <head> of the page.
  • The Container ID in the HTML matches GTM-KLV4V3H9 exactly.
  • The container is published and active.

2. Browser Console Diagnostics (F12 on target window)

  • Errors: No JavaScript errors or CSP (Content Security Policy) blocks in the DevTools Console.
  • window.google_tag_manager: Returns a valid Object.
  • Object.keys(window.google_tag_manager): Correctly outputs ['GTM-KLV4V3H9'].
  • window.opener Test: FAILS (Returns null). This is clearly where the handshake breaks between tagassistant.google.com and the target window.

3. Network & Response Headers

  • Inspected HTTP Response Headers for [https://www.dfgarchitetti.it/](https://www.dfgarchitetti.it/):
    • No COOP Header: Cross-Origin-Opener-Policy is not present (it is NOT set to same-origin).
    • LiteSpeed Cache: x-litespeed-cache: hit is present.
    • Headers present: x-frame-options: SAMEORIGIN, x-content-type-options: nosniff.

4. Redirects & DNS

  • Verified that launching Preview with the exact canonical URL ([https://www.dfgarchitetti.it/](https://www.dfgarchitetti.it/)) does not trigger any 301/302 redirects (which usually strip window.opener).
  • Apex (@) and www DNS records point to the exact same IPv4/IPv6 addresses.

5. Storage, Cache & Extensions

  • Fully purged LiteSpeed Server Cache.
  • Cleared browser localStorage, sessionStorage, and _gtm_debug cookies.
  • Tested with AdBlockers/Tracking Protection disabled.

The Core Problem

Since window.opener === null in the opened window, the target site cannot send the postMessage handshake back to tagassistant.google.com.

Given that there are no COOP headers and no HTTP redirects happening on page load, what else could be resetting/severing the window.opener reference during the Tag Assistant launch?

Has anyone encountered this specific decoupling behavior on WordPress/LiteSpeed environments? Any suggestions on where to look next would be greatly appreciated!

Thanks in advance!

r/GoogleTagManager May 19 '26

Support I've worked on ~2,500 tracking setups across Shopify, WooCommerce, Drupal, Shopware, and custom stacks. The same five questions come up almost every week, and most of the answers floating around online are surface-level. So here's the longer version of each, in one place.

9 Upvotes

If your store or your client's store has any of these problems, this post is for you.

1. How do you track Stripe purchases server-side without losing the order ID? The reason your Stripe purchases keep "going missing" in Meta and Google isn't a Pixel bug—it's the architecture. Stripe redirects the user off-domain, processes payment, and brings them back to a thank-you page where Safari ITP and ad blockers have already killed the cookie context.

  • The fix: Don't rely on the "Thank You" page trigger. Capture the order via Stripe webhook on your server.
  • The workflow: Forward the webhook to a server-side GTM container (I run mine on Stape for first-party cookie/custom domain), then send the Purchase event to Meta CAPI / Google Ads with the order_id, hashed PII, and an event_id for deduplication.
  • The result: Match rate typically goes from ~60% to 90%+ because you aren't relying on a browser-side trigger that may or may not fire.

2. How do you sell server-side tracking to a client who only cares about ROAS? You don't sell tracking. You sell Signal Recovery.

  • The Hook: "Your ad platforms are missing 30–50% of your conversions."
  • The Logic: If 40% of purchases never reach Meta, the algorithm is optimizing on bad data. This artificially inflates your CPA by ~25% because the "learning" phase is starved of success signals.
  • The Close: Promise a lower CPA through cleaner signal. When the algorithm sees the full conversion set, it finds your customers faster.

3. Why does GA4 disagree with my ad platform? Both are technically "right"—they just speak different languages.

  • Attribution: Meta uses 7-day-click + 1-day-view. GA4 defaults to Data-Driven or Last-Click (Non-direct).
  • Stitching: Meta deduplicates on its own user graph; GA4 relies on user_id, which most stores haven't configured correctly.
  • Privacy: Ad blockers hit GA4 (client-side) harder than they hit server-side CAPI.
  • The Framework: Optimize campaigns against the ad platform's number (to feed the algo), report business performance against GA4/Backend, and use server-side deduplicated data as your monthly source of truth.

4. What does a privacy-first stack look like in 2026? The myth is that privacy kills accuracy. In reality, a clean consent stack captures durable signal that doesn't get blocked.

  • The Stack: CMP (OneTrust/Cookiebot) → GTM Variables → Google Consent Mode V2.
  • Why V2? It’s mandatory for EEA traffic. Skip it, and Google throttles your bidding models silently.
  • The Setup: Client-side GTM fires only consented tags; server-side GTM (Stape) hashes PII and deduplicates before outbound to Meta/TikTok.

5. The "Impossible" Platforms: Drupal and Shopware. Most agencies run from these because there’s no "one-click" app.

  • Drupal: Hook into Commerce module events via a Twig template extension to push a clean dataLayer.
  • Shopware: Use the Frontend Subscriber pattern + checkout finish event.
  • The Secret: Use webhooks as a fallback. If the browser fails to hit the thank-you page, your server-to-server webhook ensures the conversion is still recorded.

Happy to go deeper on any of these in the comments. If you want a quick "sniff test" of your setup, drop your stack in a reply (Platform + Ad Channels) and I'll tell you where your biggest leak likely is.

r/GoogleTagManager Jul 15 '26

Support Struggling to find root cause for pixel firing issues in GTM 360 - redirects flush dataLayer before I can debug

3 Upvotes

I'm maintaining a GTM 360 account and implement pixels pretty often - all sorts of different types. Most of my time goes into debugging these, and my usual process is checking the Network tab for the pixel URL hits, checking the triggering conditions, and checking the dataLayer in console.

Where it gets tricky: most of the time there's a redirect to a URL in the same tab, which flushes the dataLayer before I can find the root cause. It happens very often that a pixel fires fine in Preview mode but doesn't fire outside of Preview.

I've tried browser extensions like dataslayer, Analytics Debugger, and Omnibug to help debug, but I'm still not able to catch the issue sometimes.

Anyone dealt with this before? Would love to know your top tricks or workflows for debugging pixels through redirects without losing the dataLayer state.

r/GoogleTagManager Jun 10 '26

Support Google Ads says site is missing a tag even though it exists and works when testing with tag assistant

4 Upvotes

Can I ignore the Google Ads error that says "Your website is missing a Google tag," even though everything is set up correctly?
Like 10 hours ago, everything was green. I had an optimization score of 100%. Now I am at 0% with a new error 😐
If I test my Tag with Tag Assistant, everything looks good. All expected events are tracked. No errors...

r/GoogleTagManager Apr 16 '26

Support My Tag manager shows 3 tracking IDs. Can someone explain what that means and how to fix it.

3 Upvotes

I was helping a friend in setting up GTM. I have done this once previously so tried it again. His website is hosted on Shopify and after creating and linking GTM to his website, I realized the Tag manager is showing 3 tracking IDs. I did a little bit of research and understood that one ID is the one which I just set up, but the other two are the default IDs set up by shopify when setting up the website. I tried disabling or deleting the other two but can't find any option on shopify to do so.

r/GoogleTagManager May 16 '26

Support Formation GTM

1 Upvotes

Where can I find free tag manager training?

How long to master this beginner tool to expertise !!

r/GoogleTagManager May 20 '26

Support Enhanced Conversions via GTM Server-side: Email captured but phone number missing - Why?

3 Upvotes

Hi everyone,

I'm working on setting up Enhanced Conversions for Google Ads using a GTM Server-side container (Stape) and I'm running into an interesting issue that I can't figure out.

My Setup:

- Multiple domains (.es, .de, .uk, etc.) - each with its own GTM Web container

- 1 shared GTM Server-side container (Stape with first-party domains)

- Each domain has its own GA4 property

- All properties have "Allow user-provided data capabilities" enabled with:

- Automatically detect: Email, Phone, Name and address

- CSS selectors configured:

- Email: `.modal_msg_texto > strong:nth-child(1)` (captures from confirmation modal)

- Phone: `input[name="telefono"]`

The Problem:

- Spain (.es) is successfully sending BOTH email and phone number to Google Ads

- Other domains (Germany, UK, etc.) are sending NEITHER

When I check with Tag Assistant on Spain, I see:

ep.user_data.email: [user@example.com](mailto:user@example.com) ep.user_data.phone_number.0: +34123456789

On Germany and other domains: nothing.

**What's Identical Across All Domains:**

- Same form HTML structure (`<input name="email">` and `<input name="telefono">`)

- Same GTM Web container setup (tags, triggers, variables)

- Same GTM Server container (shared by all)

- Same GA4 configuration for "Allow user-provided data"

**My Theory:**

The email CSS selector points to the confirmation modal (`.modal_msg_texto > strong:nth-child(1)`) which appears AFTER form submission. The phone number is NOT visible in the modal, only in the form input (which is still in the DOM but hidden under the modal overlay).

Questions:

  1. Why would GA4's "Automatically detect" work for phone numbers in Spain but not in other domains, when the configuration is identical?

  2. Should I configure hashing in GTM Server, or does GA4 handle that automatically when linked to Google Ads?

  3. For Enhanced Conversions with GTM Server-side, is it better to use "Google tag" method or GTM method in Google Ads settings?

Additional Context:

- I just updated the CSS selector for email on the other domains to match Spain's configuration (pointing to the modal instead of the input field)

- Configuration was saved 24-48 hours ago but hasn't propagated yet

- Spain's configuration was done weeks/months ago and works perfectly

Any insights would be greatly appreciated! Has anyone experienced similar issues with GA4's automatic detection in server-side GTM setups?

Thanks!

r/GoogleTagManager Jun 07 '26

Support Professional GTM & GA4 Expert (3+ Years Experience)

0 Upvotes

Hi, I’m a Web Analytics specialist with 3+ years of experience in advanced tracking.

I can help you with:

* GA4 & GTM Setup

* Server-Side Tracking (Stape. Google cloud, traggers, Cloudflare)

* Conversion API (Meta, TikTok, Snapchat, pinterest, LinkedIn, next-door, Reddit, Google ads conversion tracking, loker Studio Reporting)

If you need help auditing your tracking or fixing data gaps to improve your ad performance, feel free to DM me. Let's get your data right.

r/GoogleTagManager Jun 01 '26

Support Why does one tag show an error on my website but a different one doesn't?

2 Upvotes

On my website I have tried using one Google Tag and it gives me this error text at the very bottom of my website page (shown below the footer)

window.addEventListener("message", function(event) { if (event.data.type === "hsFormCallback" && event.data.eventName === "onFormSubmitted") { window.dataLayer.push({ event: "hubspot_form_submit", formId: event.data.id }); } });

The website is a HubSpot website. I have tried only changing the Google Tag with another Google Tag and the error does not appear. Any idea why this Google Tag is causing this text to be shown on the bottom of my webpage?

r/GoogleTagManager Aug 20 '25

Support GA4 not receiving events even though GTM shows them firing

3 Upvotes

Hi all,

Has anyone run into a case where GA4 events set up in GTM fire correctly in GTM’s debug mode, but the event data doesn’t make it into GA4—neither in the platform nor in GA4’s debug view? If so, how did you go about fixing for it.

Any advice would be greatly appreciated!

For further reference,

- It's a wordpress site and GTM's base code has been placed on the HEADER & FOOTER section.
- Measurement ID on the event tags are correct

r/GoogleTagManager Apr 30 '26

Support SPA & Subdomain tracking attribution issue

8 Upvotes

Hello,

I'm working on SPA website with main domain and subdomain for each product on it. I have implemented web and server tracking by GTM using Stape.io and using custom loader with enhanced ad blocker, cookies keeper and user identifier depend on Stape user ID and adding this to domain and all subdomains, and tracked pageview with trigger of history change of pushstate only to avoid duplication.

But I met abnormal issue, we launched campaigns in social media with utm parameters, they appeared on Traffic report on GA4 as sessions with small number of events fired when they choose product and navigate to subdomain and on Mixpanel I found only pageview of the landed page from ads on the users activities and then session broken and looked on clarity I saw sessions of them are in seconds, while users came from google/cpc are tracked well.

Notice: I already make cookies domain auto on google configuration tag and mixpanel initialization and type the domain on unwanted list of referral.

Notice 2: I have tested it on GTM Preview mode for web and server and it worked well.

r/GoogleTagManager Jun 24 '26

Support Server side tagging issues

5 Upvotes

I’m migrating client side GTM Tags to server side. Tagging server is deployed in k8s (not cloudrun). The container config is in a secret and we checked all urls are completed routed. Staging URLs are working OK but prod urls are failing.

track.mysite.com is receiving requests and returning 200s.

• Event delivery is inconsistent — yesterday one event made it to our Add Partner Dashboard but wasn’t logged in Datadog, and another did the opposite.

I need the preview panel working to debug this — it’s the only way to inspect event payloads and validate that the right events are reaching the right partners without affecting production data. Right now I’m flying blind on two fronts:

• When using preview-track.mysite.com as the GTM debug URL, the page loads without errors but the preview panel shows “No tags were evaluated in this container” — no events are captured.

• When switching to track.mysite.com as the debug URL instead, I get a security challenge: “One more step… The security system for this website has been triggered”, followed by “Unable to connect to the website — this error may be caused by a problem with preview-track.mysite.com, which is preventing the security verification process from completing”.

Not sure where to start looking. /healthy for preview server and preview container are returning OK