Pulzivo Analytics (@Pulzivo) header
Pulzivo Analytics (@Pulzivo) profile picture

The Pulse of Modern Web Analytics 📊 - No cookies, no personal data - ~9KB script, one-line setup - Events, goals, revenue, vitals - Free up to 10K events/mo

Joined March 2026
Photo by Pulzivo Analytics (@Pulzivo)Photo by Pulzivo Analytics (@Pulzivo)Photo by Pulzivo Analytics (@Pulzivo)
🚀 Introducing Pulzivo Analytics! The Pulse of Modern Web & Product Analytics. What we built: ✅ Privacy-first tracking (no cookies!) ✅ One script tag setup (5KB) ✅ Free forever plan (10K events/mo) ✅ GDPR & CCPA compliant ✅ Real-time dashboard ✅ Error & click tracking Perfect for developers who care about user privacy 🔒 Try it free: pulzivo.com
362
Consent bugs are rarely the banner UI. They're the wrong instruction reaching Google. Run a mapping check before you trust Ads measurement.
Five consent-setup mistakes to check before relying on your Google Ads measurement: 1. Wrong parameter mapping. Your banner captures the choice correctly, but sends the wrong instruction to Google. Check ad_storage, ad_user_data, ad_personalization and analytics_storage against the purposes the visitor actually agreed to. Do not assume one banner category correctly covers every advertising permission. 2. Missing Consent Mode v2 parameters. A setup that only handles ad_storage and analytics_storage misses the v2 advertising user-data and personalization signals. 3. Default state fires too late. The default consent command needs to run before Google tags send measurement data. If other tags fire first, you've already lost control of the order. 4. No update after the visitor chooses. Consent Mode doesn't save choices by itself. If the update never fires, tags keep operating under the default state — regardless of what the visitor clicked. 5. Assuming the banner label matches what the tags received. "Accept All" is one button that can trigger four different consent parameters. Don't assume the label tells the full story. Test accept, reject, partial choices, withdrawal and a later page load. Check what the tags receive and send in each case. A visible banner alone does not verify the setup.
8
Framing the prompt as ‘why did X cause Y’ locks the answer before you look. Ask what changed in the window first.
The correct way to use AI for data analysis is to ask neutrally, even when you are sure. Wrong way to ask an LLM: “Why did conversions drop after the consent banner went live?” It's the wrong way to ask because you have already concluded that the conversions dropped and the banner caused it. Now you are asking the model to start building a case for your hypothesis. Now the model is less likely to check whether conversions actually dropped, whether the drop started on the banner date, or whether something else changed that week. You contaminated the entire session just by disclosing your views upfront. I learned this the hard way over a thousand hours of working with LLMs. Once the model knows your position, its answer tends to follow that position. This is a well-documented LLM failure mode called 'sycophancy'. Sycophancy happens when the LLM tells the user what they want to hear, even at the expense of accuracy. It treats the user’s opinion, objection or confidence as evidence, instead of testing it against the facts. The following is the neutral way to ask the same question: "What happened to conversions between 1 and 31 October? Were there any step changes and on which dates?" Note: I am not telling the LLM whether conversions rose or fell. I am not mentioning the consent banner. I want to see what the LLM finds first. Another example: Wrong way to ask LLM: “That revenue figure is too low. It should be around £80k.” Now the model may find a way to get to £80k, perhaps by dropping a refund filter or including test orders and say it fixed the error. Neutral way to ask the same question: “GA4 shows £62k for October and Shopify shows £80k. Find the source of the gap.” In data analysis, your certainty usually comes from a pattern you have seen before: “a drop after a banner launch is always consent”. That pattern is often right, which is exactly why you stop checking it. When it’s wrong (say the tag broke on the same day), a model that already knows your view won’t challenge it. You end the session more confident in the wrong cause, with analysis that appears to back it up. The damage doesn’t stop at one answer. Once you have said “it’s the banner”, later questions about segments, dates or fixes get answered inside that frame. Even if you never mention the banner again. Even one loaded question can contaminate the entire AI-powered data analysis. Best Practices for asking LLMs. >> Always ask before revealing your view. Get the model’s answer first, then give your opinion. Once the model knows your position, its answer tends to follow that position. >> Describe your observation, not the cause. >> Ask for candidate causes, including measurement causes, before giving your own. >> Give evidence, not your verdict to the LLM. >> Fix the metric, date range and filters yourself, so the model can’t choose the cut that fits a hypothesis. >> If you’ve already contaminated the session, start a new one with the neutral question and the raw data. Correcting the frame in the same thread rarely removes it.
2
12
Cheap test, high signal: decline the banner in a private window, then watch Network. If ad tags still fire, your “consent” UI is theater.
Meta's pixel is named in 100 of 116 public US privacy settlements since January 2025, per Privado. Cheap test: decline your cookie banner in a private window, then check the Network tab to see if ad tags still fire.
1
12
This is what "lightweight" should feel like in the UI too — not just the script. Fast goals breakdowns keep people diagnosing instead of exporting CSVs.
Goals report loading time has gone from 9 seconds to 0.5 seconds for one of our heaviest sites. We just shipped an improvement that makes goal breakdowns load faster. ✓ No settings to change ✓ Not limited to higher plans, everyone gets fast dashboards More traffic means more data to analyze. It shouldn't mean more time spent waiting for your reports.
10
A one-line GA4 bug hid every key event for five months. Custom gtag wrapper pushed `args` (Array) into dataLayer. gtag.js only acts on the Arguments object. Pageviews looked fine. Conversions looked dead. Check Network → collect → en= before you rewrite the funnel.
1
21
A free GA4 funnel view that shows where 77% drop off — still rarer than another slide deck. Open the exploration.
A GA4 funnel exploration costs nothing, and plenty of teams never open it. On a telco app I worked on, it showed 23% of users reached purchase. Knowing where the other 77% drop off is the most useful thing to bring to a media planning meeting.
15
Every platform is confident. None share a conversion definition. Attribution theater until you pick one source of truth and stick to it.
Web analytics in 2026 is a comedy show. -Google Ads says 100 conversions. -Meta says 145. -GA4 says 72. -Your CRM says 38. -Your client says only 12 were qualified. And somehow, every platform is confident it's right. 😂 The real problem isn't just tracking. It's attribution: -Different attribution windows -View-through conversions -Cross-device journeys -Consent mode limitations -Duplicate events -Different conversion definitions
4
Check your event counts before you compare October to September.
5
eep a dated log of every settings change, or your old reports stop matching.KCookback window changes? Forward only. Lhanging GA4's attribution model rewrites history: Google says it applies to past data too, so the months you already reported get recalculated.
15
Google's new "optimized" GTM setup means one Google tag now loads Tag Manager, GA4 and Ads together. Fewer tags, sure. But your analytics now ships bundled with your ad stack. If you just want to know which pages people read, that's a lot of tag for one question.
11
Gemini quietly started adding utm_source=gemini to cited links in September, then dropped it about 3 weeks later. Desktop clicks still pass a gemini.google.com referrer. Clicks from the Gemini apps often arrive with nothing, so GA4 files them as Direct.
15
GA4 tip: a spike in "Direct" traffic often isn't direct. Links opened from apps, PDFs, Slack, or an https-to-http hop drop the referrer, so GA4 files them as (direct)/(none). Tag shared links with UTMs before blaming SEO. What's your weirdest Direct spike?
13
Supply chain risk is mostly about how many third-party scripts run on pages that handle payments. Fewer, smaller scripts, with no cookies and no personal data, means less to leak when something upstream is compromised.
Who got compromised in Polymarket’s frontend supply chain? Potential third-party exposure: Google Tag Manager, Google Analytics, Amplitude, AppsFlyer, Segment, Plausible, Tinybird, Meta, TikTok, X, Reddit, Snapchat, LiveIntent, Google Ads, DoubleClick, Dub, Intercom, Customer.io, Braze, Pusher, Magic, FUN.xyz, WalletConnect, MetaMask, Coinbase, MoonPay, Daimo, Alchemy, QuickNode, Goldsky, Polygon RPC, Cloudflare, Vercel, AWS S3, DigitalOcean Spaces, jsDelivr, Datadog, Sentry, DebugBear, Jam.dev, LaunchDarkly, Cloudflare Turnstile, Vercel Speed Insights, Sportradar, Stats Perform, GRID, YouTube, Twitch, OpenWeather, Open-Meteo, ip-api, ipapi.co. Our guess? A compromised third-party JavaScript dependency. Who’s your bet?
19
Good checklist. Start with order count in the platform vs your backend. If that number is off, everything downstream (ROAS, attribution, consent modeling) is built on sand.
Shopify orders ≠ ad platform ROAS? 🚨 Audit before Black Friday: checkout tracking, Meta match quality, Pixel+CAPI event IDs, TikTok purchase events, Consent Mode V2, UTMs, real order value, mobile checkout, and ROAS vs store revenue. How many are covered?
18
GA4 throwing traffic into "Unassigned"? Check your UTMs first. A utm_medium like "newsletter" or "social-post" doesn't match GA4's default channel rules, so it lands nowhere. Use mediums GA4 expects (email, social, cpc) and the channel report cleans up fast.
14
Owning your analytics and link data means you can drop the tracking wrappers and the extra scripts. Less third-party code on a page is better for speed and for visitors.
This quoted post is unavailable.
19
The scariest analytics failures still return numbers. A dead tag gets fixed in a day; a tag firing on half of checkouts quietly corrupts every decision for a quarter. Reconcile against orders regularly.
the worst analytics bug is the one that still returns numbers. a tag that dies completely gets fixed in a day. a tag that fires on half your checkouts can sit there for a quarter, because every chart still looks plausible.
20
The scariest analytics failures still return numbers. A dead tag gets fixed in a day; a tag firing on half of checkouts quietly corrupts every decision for a quarter. Reconcile against orders regularly.
the worst analytics bug is the one that still returns numbers. a tag that dies completely gets fixed in a day. a tag that fires on half your checkouts can sit there for a quarter, because every chart still looks plausible.
19
GA4 showing "(not set)" as a top landing page? Usually a session started without a page_view: the 30-min timeout lapsed on an open tab, then a scroll or click kicked off a new session. The report isn't broken. It's counting sessions you'd never call visits.
1
16
Lesson here: any third-party script on a checkout page is attack surface. Keep it small, keep it updated, and don't load analytics on payment steps at all.
Skimmer no checkout da Convertr, que atende dezenas de lojas de moda no Brasil: invadiram o Plausible desatualizado e o script de analytics passou a levar cartão, CVV e CPF desde 24/10. Comprou com cartão nessas lojas? Fala com o banco. Script de terceiro no checkout é risco.
13