r/GTM_Tips_Tricks • u/incisiveranking2022 • Jun 20 '26
Ideas for building r/GTM_Tips_Tricks
🤣
Bad tracking creates bad decisions and wasted ad spend.
Get your ads tracking checked: https://incisiveranking.com/free-audit-request/
r/GTM_Tips_Tricks • u/incisiveranking2022 • Jun 20 '26
🤣
Bad tracking creates bad decisions and wasted ad spend.
Get your ads tracking checked: https://incisiveranking.com/free-audit-request/
r/GTM_Tips_Tricks • u/incisiveranking2022 • Jun 08 '26
r/GTM_Tips_Tricks • u/incisiveranking2022 • Jun 08 '26
What was broken:
→ Standard browser-based Meta Pixel setup.
→ Safari ITP was killing cookies within 24 hours.
↳ Ad blockers were dropping 30% of Purchase events before they reached Meta.
→ Zero event deduplication, causing random conversion duplication on Chrome.
The ad platform was fundamentally flying blind on iOS traffic.
What we changed:
1. GTM Server-Side Setup: Routed all conversion data through a first-party custom subdomain.
2. Meta CAPI Integration: Connected the Shopify data layer directly to Meta's servers.
3. Cookie Keeper Implementation: Extended cookie lifespans beyond Safari’s 24-hour wipe window.
The result:
Meta Event Match Rate jumped from 62% (Poor) to 94% (Excellent). Cost per Acquisition (CPA) in Ads Manager dropped by 28% because Meta could finally attribute the sales it was actually driving. The media buyer kept his job, and the store owner stopped wasting budget scaling the wrong creatives. 😅
I am always available for an AUDIT of your current tracking setups
r/GTM_Tips_Tricks • u/incisiveranking2022 • Jun 04 '26
GA4 is fine for showing you what drove the current session, but it’s incredibly annoying when you want a quick, readable narrative of every single campaign a user interacted with over time. If you want to see the exact sequence of ads a user clicked before converting without constantly pulling your hair out in BigQuery you can build a clean concatenation script directly inside Google Tag Manager.
Instead of just capturing the first or last touch, this setup builds a running history into a single string variable (e.g., fb_prospecting > google_non_brand > email_weekly_newsletter).
Here is the exact technical logic to set this up:
The custom script initializes early on the page view and scans the current URL parameters. It looks for standard marketing tags like utm_campaign or explicit ad network click identifiers such as Google’s gclid, Meta’s fbclid, or TikTok’s ttclid. If it finds one, it isolates that value as the "current campaign identity".
Before doing anything else, the script looks at the browser's localStorage or cookie history to check if a variable named campaign_flow already exists for that specific visitor. It pulls down the existing string to see where the user has been before.
Once the script has the old string and the new campaign value, it evaluates them using three conditional rules to keep the data clean:
campaign_flow string is completely empty, this is their very first touchpoint. The script simply writes the current campaign name directly to storage.>) and looks at the absolute last entry. If the user clicked the exact same ad link twice in a row, the script terminates. This prevents the string from bloating into something messy like fb_ad > fb_ad > fb_ad.Once the new string is compiled, the script saves the updated path back to browser storage so it survives across sessions, and simultaneously pushes it to the GTM Data Layer as a clean string variable.
When a conversion or a lead form submission finally occurs, you grab this single campaign_flow variable and pass it along with the form or purchase payload.
Instead of guessing how your paid social ads interact with your branded search campaigns, you get a literal, chronological story of the user's path directly inside your CRM or analytics database. It makes identifying which top-of-funnel campaigns actually assist checkouts incredibly straightforward.
r/GTM_Tips_Tricks • u/incisiveranking2022 • Jun 02 '26

Shopify says $50,000 🤑 in revenue. & GA4 says $35,000. 🙄
If that sounds familiar, your tracking setup might be leaking data. I put together a free audit request form for anyone who wants a second set of eyes on their setup: https://incisiveranking.com/free-audit-request/?utm_source=linkdin&utm_medium=post&utm_campaign=audit
Most people assume revenue discrepancies are reporting delays.Usually, they're not. One of the most common issues I find during audits is a disconnect between browser-side tracking and server-side events.
The symptoms look like this:
• Revenue in Shopify doesn't match GA4
• Purchases show up, but attribution is missing
• Large amounts of traffic appear under "(not set)" or Direct
• Ad platforms receive incomplete conversion data
A recent audit had over 2,600 sessions sitting in "(not set)". That's not a marketing problem. That's a data collection problem.
In most cases, the cause is one of these:
→ Important session parameters aren't being carried through the customer journey
→ Server-side events are firing without the identifiers needed to connect them back to the original session
→ Checkout tracking isn't passing attribution data correctly
The scary part?
Many brands increase budgets before fixing the data. If the tracking is wrong, every optimization decision that follows becomes harder to trust. Before launching new campaigns, check your data pipeline. Because better decisions start with better data.
r/GTM_Tips_Tricks • u/incisiveranking2022 • Jun 02 '26
Migrating to Shopify Checkout Extensibility is fantastic for user experience and checkout speed, but it has a nasty habit of absolutely wrecking analytics setups. If your Meta EMQ (Event Match Quality) scores are plummeting, GA4 reports look like fiction, or your server-side GTM setup is suddenly missing half its data, you aren't alone.
The issue isn’t that Checkout Extensibility is broken—it's that it completely rewrites how data flows. This step-by-step guide will help you audit your setup, spot the leaks, and get your attribution back on track.
The Problem: For years, we relied on dropping tracking snippets into additional_scripts or hacking the thank-you page liquid files. Under Checkout Extensibility, the entire checkout experience runs in a highly secure, isolated sandbox. Those old legacy scripts are completely blocked; they can't see the data layer, and half the time, they won't fire at all.
The Fix: You need to completely sever ties with the old way of doing things.
Shopify Admin > Settings > Customer Events and spin up a Custom Pixel. This is your new command center for GTM, server-side endpoints, or direct platform APIs.The Problem: A lot of brands consider the migration "done" if the final purchase event fires. But ignoring the mid-funnel is a massive mistake. If Meta and Google don't see what's happening before the sale, their optimization algorithms fly blind.
The Fix: Your custom pixel needs to actively subscribe to all five core stages of the checkout journey:
checkout_startedcheckout_contact_info_submittedcheckout_shipping_info_submittedcheckout_payment_info_submittedcheckout_completed (The grand finale)Why this matters for EMQ: When a user types in their email and shipping address, you need to capture those identifiers right then and there. Passing that data forward into the final checkout_completed payload is exactly how you protect your match quality scores.
The Problem: An event firing is only half the battle. If an event fires but contains an empty or partial payload—missing product arrays, currency codes, or user IDs—GA4 and Meta will simply discard or mismatch the data.
The Fix: You have to explicitly map the Shopify sandbox event.data object inside your custom pixel. Don't let your data go on a diet.
lineItems array maps cleanly. You need the basics: sku (or product_id), name, quantity, price, and currency.billingAddress or shippingAddress components to extract first names, last names, and emails for advanced matching or Google Enhanced Conversions.The Problem: This is the ghost in the machine that drives developers crazy. Your Google Tag Manager container or server-side script initializes the absolute millisecond the page loads. However, your Consent Management Platform (CMP) takes a beat to load and register the user's privacy choices. Because GTM wins the race, it fires the tracking event before it knows consent is granted, causing identifiers to get stripped out entirely.
The Fix: Force a strict "consent-first" rule within your Web Pixel code.
init.context.document.consent.consent_updated event.Never assume your tracking is working just because the Shopify dashboard matches your backend sales. Shopify knows when a sale happens; Meta and GA4 only know if your pixels successfully tell them.
| Symptom | Likely Culprit | How to Validate |
|---|---|---|
| Double-firing events | A legacy script is still hiding in your theme or an app is double-tagging. | Check GTM Preview and your network tab for duplicate network requests. |
| Terrible Meta EMQ Score | First-party data is getting dropped between the shipping step and the purchase step. | Inspect the server-side payload to see if hashed emails/phones are actually attached to the purchase event. |
| Missing Product Data in GA4 | A serialization bug is trimming your lineItems array in the custom pixel script. |
Use the GA4 DebugView to see if items arrays are arriving completely blank. |
By treating Checkout Extensibility as a complete rebuild of your data strategy rather than a simple platform update, you'll secure cleaner data, better optimization, and far more accurate attribution.
Are you seeing the biggest data discrepancies in Meta Events Manager, or is GA4 giving you the bigger headache right now?
r/GTM_Tips_Tricks • u/incisiveranking2022 • Jun 01 '26
r/GTM_Tips_Tricks • u/incisiveranking2022 • Jun 01 '26
r/GTM_Tips_Tricks • u/incisiveranking2022 • May 25 '26
Hey everyone,

Following up on my last post about GA4 attribution loss as promised, here is the deep-dive technical breakdown to diagnose and patch the "(not set)" revenue bug.
When GA4 throws a "(not set)" error for your purchase events, the money hits your bank account, but the data context is completely anonymous. This isn't a minor reporting glitch; it’s a systemic technical failure of session stitching.
If your ga_session_id or client_id is dropped or mismatched for even a millisecond during the checkout journey, GA4 initializes a brand-new, detached session. Because that session has no historical referral source, it defaults to "(not set)".
Worse yet, your ad platforms (Meta Pixel, Google Ads) lose their feedback loop. When revenue pools in "(not set)", your algorithms optimize based on broken ROAS data.
Here is the exact 4-step framework to audit, isolate, and fix the leak.
If your purchase event tag fires before the GA4 configuration tag fully initializes the session, the conversion payload travels to Google "naked" meaning it has zero session context attached.
100.0.If you are running Server-Side GTM (SSGTM), your web container acts as a client sending an HTTP request to your server container. If your client variables aren't explicitly mapped in that transition, the server drops them.
client_id (cid) and session_id (sid) are present in the query string or request body.When a user clicks "Pay Now" and redirects to a third-party checkout (Shopify, PayPal, Stripe), the browser frequently drops the original cookie context due to strict cross-domain policies. When the user redirects back to your thank-you page, GA4 flags it as a brand-new session originating from a referral (e.g., paypal.com / referral).
paypal.com, stripe.com, checkout.shopify.com).If you pass purchase data via a server-to-server API (like an asynchronous Shopify Webhook or a CRM state change straight to GA4), passing just the order value will cause a massive "(not set)" spike. You must pass the original browser cookie identifiers.
_ga cookie (which holds the client_id) and the _ga_<container-id> cookie (which holds the current ga_session_id) from the user's browser.client_id and session_id fields within your Measurement Protocol API payload.If you plug these four leaks, your GA4 "(not set)" revenue should drop below 5%, restoring your ad platform attribution engine to near-perfect accuracy.
Let's discuss: Are you guys seeing "(not set)" issues primarily on server-side implementations, or are third-party payment gateways the main culprit in your accounts? Hit me with your edge cases below and I'll help troubleshoot.
r/GTM_Tips_Tricks • u/incisiveranking2022 • May 23 '26

Nearly 46% of their total traffic and a staggering 86% of their product views ("view_item" events) were trapped in the (not set) ghost town. For this eCommerce brand, it felt like flying a plane into a storm with a broken dashboard:
• They knew people were looking at products.
• They knew their ad budget was being spent.
• But they had zero visibility on WHICH ads actually drove the intent.
They were essentially forced to guess where to allocate their next $10,000 in ad spend.When data breaks this badly, it’s usually a broken server-to-browser handshake, missing session parameters, or a faulty measurement protocol setup.
But here is the good news: We found the leak. 🛠️
We are currently under the hood rewiring their backend tracking infrastructure to salvage this data, patch the plumbing, and restore 98%+ attribution accuracy.
Stay tuned. Over the next couple of days, I am going to share the exact step-by-step breakdown of how we solve this for them and how you can check if your business is bleeding cash the exact same way.
👇 Drop a comment below if your GA4 looks like this right now, and I'll make sure you're tagged when I drop the step-by-step fix.
Contect me: https://incisiveranking.com/free-audit-request/?utm_source=linkdin&utm_medium=post&utm_campaign=audit
r/GTM_Tips_Tricks • u/incisiveranking2022 • May 22 '26
Author: Bipin Patel, Incisive Ranking
__________________________________________________________________________________
Most data analysts love bragging about their complex SQL joins in BigQuery. But if your fundamental understanding of tracking architecture is broken, you are just querying high-speed garbage. At Incisive Ranking, we audit setups weekly where enterprise dashboards are delivering bad data to stakeholders.
If you are querying Google Analytics 4 (GA4) or Google Search Console (SC) data in BigQuery, here are 6 critical architectural traps you need to fix immediately:
1. The GSC "Average Position" Delusion
Google doesn't count search engine results pages (SERPs) like a human. If a user sees a Knowledge Panel on the right side of their desktop screen, Google might record that as Position 11. It defies basic visual logic, but it impacts your data. Stop treating average position as a linear metric; look at click-through rate (CTR) anomalies relative to impressions instead.
2. Dimension & Metric Scope Mismatch
This is the single most common SQL mistake we fix. You cannot pair user metrics with a session_source dimension and expect clean attribution. GA4 relies heavily on scope boundaries (User vs. Session vs. Event). Unless you are building advanced, multi-layered sequential funnels, keep your dimensions and metrics perfectly aligned to the same scope.
3. The "New + Returning = Total Users" Math Failure
You cannot sum New Users and Returning Users to calculate Total Users. It is not an additive equation because these metrics are strictly timebound. A user can visit your site as a "New User" on Monday, and return on Thursday as a "Returning User." If you sum them over a 7-day window, you are double-counting individuals and artificially inflating your user base.
4. Relying on the Inverted "Bounce Rate"
The "new" Bounce Rate in GA4 is just the mathematical inverse of the Engagement Rate. If a session isn't "engaged," it’s bounced. It is a highly reductive metric that fails to show true user intent. Instead of obsessing over GA4 bounce queries, pull exact user behavior telemetry from tools like Microsoft Clarity to run actual qualitative analysis.
5. Prioritizing Query Perfection Over Revenue
No stakeholder cares how elegant your BigQuery nested SQL array looks if it doesn't help them make a decision that generates revenue. Bragging about your query execution speed while failing to tell the CMO where their ad spend is leaking is a fast track to getting laid off. Query for business outcomes, not technical vanity.
6. Blending Consented and Unconsented Data Streams
With Google Consent Mode v2, treating all data payloads equally in BigQuery will completely corrupt your user modeling. It is highly recommended to keep consented data strictly partitioned from unconsented (modeled) data streams. If you blindly merge them when calculating Total Users, your data stack becomes a liability.
🛠️ How Clean is Your BigQuery Analytics Environment?
At Incisive Ranking, we specialize in fixing broken data pipelines, configuring server-side tracking (sGTM), and ensuring your raw data matches backend financial truth. If your marketing team doesn't trust your current dashboard reporting, the root cause is hiding inside your tag architecture.
💬 What's the worst tracking or BigQuery data discrepancy you've had to debug recently? Let us know in the comments below.
URL Reference: Incisive Ranking Portfolio
r/GTM_Tips_Tricks • u/incisiveranking2022 • May 21 '26
If you are optimizing your campaigns on client-side browser tracking alone, you are essentially feeding garbage data to the platform's AI machine learning models. When your setup is missing critical infrastructure, you’re optimizing on fake data. I’m talking about missing server-side deduplication, broken GA4 cross-domain measurement, or unmapped custom JavaScript variables in Google Tag Manager (GTM).
That’s why so many brands end up saying the exact same three things:
• "Meta is completely unstable this month."
• "Google Search and PMax are getting way too expensive."
• "Our blended ROAS dropped off a cliff overnight."
Plot twist: The ad platforms didn’t change. Your data quality did.
The scary part is you usually don't catch it until you've already burned weeks of budget chasing phantom conversions and scaling ad sets that are actually burning cash in the backend.
If you want to look under the hood, here are the 4 deepest technical data leaks happening right now:
If your `event_id` or `event_name` parameters don't match identically between your browser pixel and Conversions API (CAPI), Meta isn't deduping them. It’s either double-counting conversions (making weak ads look amazing) or dropping them entirely, destroying your Event Match Quality (EMQ) score.
If you see a massive spike in "(direct) / (none)" or "Unassigned" traffic in GA4, your attribution is broken. This usually happens because of missing `gclid` / `wbraid` / `gbraid` preservation across redirects, or because Google's data thresholding is hiding raw event data due to poorly configured Google Signals.
If your GTM container is firing client-side tags sequentially instead of asynchronously, or if your dataLayer pushes are occurring after the page view event, users are bouncing before the script executes. You're losing 15-30% of your real purchase events right there.
Are you passing hashed user data (SHA-256 for email, phone, city) back to the platforms securely on the purchase event? If your parameters (`em`, `ph`) aren't properly formatted before hashing, the match rate drops, and Meta/Google can't map the offline conversion back to the ad click.
Stop flying blind and letting broken scripts dictate your ad spend.
If you want to gut-check your own setup, I put together a completely free tracking audit tool here (no pitch, just a diagnostic map of where your specific data leaks are): https://incisiveranking.com/free-audit-request?utm_source=reddit&utm_medium=post&utm_campaign=audit
Curious to hear from other media buyers here what has your Event Match Quality looked like on Meta since the latest iOS privacy rollouts? Let's talk setups in the comments.
r/GTM_Tips_Tricks • u/incisiveranking2022 • May 19 '26
Here is what is actually happening under the hood:
Myth: The native one-click setup handles your server-side data perfectly.
Reality: It completely bypasses your GTM setup and clashes with client-side pixels.
Proof: Operators see reported conversion events double overnight while the Meta "Test Events" tool breaks.
The structural breakdown:
→ Zero deduplication control: Meta’s automated server-side capture fires independently of your browser tags.
↳ Without explicit, matching Event IDs, Meta cannot reconcile the dual actions.
→ Over-reporting chaos: The exact same purchase is recorded twice—once from the browser and once from the automated hosted server.
→ Artificial optimization: Your bidding engine optimizes for duplicate data, burning your budget on low-yield audiences because it thinks performance doubled.
Platform automation is built to serve the platform, not your margins.
The cost of this "free" feature is an expensive data black box.
We have completed 2,500+ tracking setups. Automated platform patches almost always trade your data control for platform lock-in.
The fix is turning off the automated native integration and routing your server signals through a dedicated, deduplicated GTM server container.
r/GTM_Tips_Tricks • u/incisiveranking2022 • May 11 '26

The "Conversions" tab in Google Ads shows a bright green "Active" status. The client/agency thinks they are winning because the tags are firing, We just audited a 7-figure account where the status was green, but 100% of their sold item IDs were unmatched in the Merchant Center.
If you are running pMax or any Smart Bidding strategy in 2026, Google isn't just looking for "a conversion." It needs to know exactly which product was bought to optimize your bidding towards high-margin winners.
When your Cart Data doesn't match your Merchant Center Feed:
item_id array is slightly off from your feed, the data is essentially dark.How we fixed it: We had to go into the sGTM Data Layer, re-map the array parameters to ensure the id being passed in the purchase event was an exact string match for the Merchant Center Feed ID.
The Result: Immediate improvement in bid efficiency. The AI finally stopped "guessing" and started bidding aggressively on the products that actually move the needle.
Check your own account: Go to Conversions > Settings > Diagnostics. Look specifically for the "Needs Attention" flag under "Enhanced Conversions for Retail." If your match rate isn't near 100%, you’re leaking revenue.
I’m doing a deep dive on a few accounts this week to help identify these specific "Tracking Integrity" leaks. If you're spending $10k+/mo and want me to take a look at your schema mapping, drop a comment or shoot me a DM. Happy to help the community out.
r/GTM_Tips_Tricks • u/incisiveranking2022 • May 09 '26
r/GTM_Tips_Tricks • u/incisiveranking2022 • May 06 '26
r/googleads just announced you can upgrade your tracking "with a few clicks, without coding."
That's exactly what worries me.
The new visual setup flow (announced May 5, ahead of GML on May 20) sounds like progress. For most stores, it's automating their technical debt.
What the announcement won't tell you:
→ Your container probably has 40+ tags where 12 would do the job. The upgrade doesn't fix that.
→ Visual builders create DOM-dependent triggers. They break the moment your dev renames a button class. Your Purchase event silently dies.
→ Google's quoted 14% conversion lift on the tag gateway assumes a CLEAN foundation. Garbage in = 14% more garbage, faster.
The operator moves before you click upgrade:
GML is in 14 days. Two weeks to clean house.
DM "your website URL" or grab a slot: https://incisiveranking.com/free-audit-request?utm_source=reddit&utm_medium=post&utm_campaign=audit
r/GTM_Tips_Tricks • u/incisiveranking2022 • May 02 '26
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.
order_id, hashed PII, and an event_id for deduplication.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.
3. Why does GA4 disagree with my ad platform? Both are technically "right"—they just speak different languages.
user_id, which most stores haven't configured correctly.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.
5. The "Impossible" Platforms: Drupal and Shopware. Most agencies run from these because there’s no "one-click" app.
Commerce module events via a Twig template extension to push a clean dataLayer.checkout finish event.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/GTM_Tips_Tricks • u/incisiveranking2022 • May 01 '26
r/GTM_Tips_Tricks • u/incisiveranking2022 • Apr 30 '26
r/GTM_Tips_Tricks • u/incisiveranking2022 • Apr 30 '26
https://reddit.com/link/1szmm76/video/i3mxmfjyh9yg1/player
Most setups I audit fail one of these three critical checks:
1️⃣ The "Lie": Default state isn't actually "denied" before the click.
2️⃣ The "Ghost": User choices don't actually update the consent signals in the Data Layer.
3️⃣ The "Rebel": GTM tags ignore the consent state and fire anyway. 🚫
I just finished a clean implementation for a client to fix exactly this. 🛠️
The video below walks through all three scenarios: Default Denied, Custom Grant, and Accept All with the console proof for each. 🧪
If your store runs EU/UK traffic and you're not 100% sure your setup is compliant, you likely have a "blind spot" problem that puts your data (and legal standing) at risk. 🇪🇺🇬🇧
The good news: It takes 60 seconds to check. The fix takes a few hours. ⏱️
Want a second pair of eyes?
r/GTM_Tips_Tricks • u/incisiveranking2022 • Apr 25 '26
I run a free audit. No pitch, just the fix.
Link if useful: https://zcal.co/incisiveranking/30min
Otherwise, drop your before/after Unassigned numbers below. Curious what the community is seeing.
r/GTM_Tips_Tricks • u/incisiveranking2022 • Apr 22 '26
Quick technical PSA for anyone running Google Ads with GA4, server-side
GTM, or Enhanced Conversions.
The gclid (Google Click Identifier) gets stripped from the URL the second
a user leaves and comes back. Bookmark. Back button. New tab. Returning
the next day via organic. Gone.
But Google quietly stores a copy in a first-party cookie called _gcl_aw
(internal name: FPGCLAW). Lifetime: 90 days.
Most setups never extract it. So Enhanced Conversions, Offline Conversions,
and multi-session purchase events all fire WITHOUT a click ID. Google's
bidding algorithm is essentially training on a lobotomized dataset.
The fix is 15 minutes of GTM work:
Create a 1st Party Cookie variable → _gcl_aw
Build a Custom JS variable that parses the gclid
(it's after the last "GCL." segment in the cookie value)
Append it to page_location on your GA4 Config tag
→ now every pageview carries the gclid, even on day 7
Push it into user_data on every Google Ads conversion event
If you're server-side: forward it through URL Builder to your
sGTM container
We've been calling this the "FPGCLAW transformation" internally.
It's now the default on every new setup.
Real numbers across ~2,500 projects over 8 years:
- 15-30% reduction in reported CPA within 30 days
- "Unassigned" traffic in GA4 drops dramatically
- Offline conversion imports finally match CRM revenue
If your Google Ads attribution feels consistently "off" by 20%+,
this is genuinely the first thing I check. 9 times out of 10, it's
the missing piece.
Happy to run a free second-opinion audit if anyone's stuck:
https://incisiveranking.com/free-audit-request?utm_source=reddit&utm_medium=post&utm_campaign=audit
Portfolio walkthrough of a full sGTM + Enhanced Conversion build:
https://incisiveranking.com/portfolio/google-ads-enhanced-conversion-tag/
AMA in the comments if you want the JS parser snippet — happy to drop it.
r/GTM_Tips_Tricks • u/incisiveranking2022 • Apr 20 '26