FFastero

Connect any database. Ask in plain English.

Try free
Back to blog

Blog article

PostHog vs Google Analytics: Product Insight vs Traffic Data

PostHog and GA4 both collect events, but they answer fundamentally different questions. GA4 tracks where users come from. PostHog tracks what they do inside your product. Most SaaS teams running paid acquisition need both.

Fastero Dev TeamFastero Dev Team
2026-08-12
posthoggoogle-analyticsproduct-analyticsweb-analyticsga4open-source
PostHog vs Google Analytics: Product Insight vs Traffic Data

PostHog is product analytics: funnels, retention, session recordings, feature flags, A/B tests -- all in one self-hostable package. GA4 is marketing analytics: traffic sources, campaign attribution, landing page performance, and a free BigQuery export. They're both event-based, but they track different events for different audiences. Pick based on the question you need answered, not a feature checklist.

What questions does each tool actually answer?

This is where I'd start, because the feature lists overlap just enough to be misleading.

GA4 answers acquisition questions:

  • Which Google Ads campaign drove the most signups?
  • What's the conversion rate from organic search to trial start?
  • Which landing pages have the lowest bounce rate?
  • How does paid traffic from Google compare to paid traffic from Meta?

PostHog answers product questions:

  • What percentage of signups create their first dashboard within 7 days?
  • Where exactly do users drop off in the onboarding flow?
  • Which features correlate with 90-day retention?
  • Did enabling the new checkout flow increase conversion, or was it a fluke?

Both tools collect events. Both attach properties to those events. Both let you build funnels. But the default event schemas, the reporting UIs, and the underlying data models are designed for different jobs.

How do the data models differ?

The difference becomes obvious when you look at how each tool identifies users and structures data.

┌──────────────────────────────────────────────────┐
│                    GA4                            │
│                                                  │
│  Event ──► Session ──► User (probabilistic)      │
│   │                     │                        │
│   ├─ page_view          ├─ Client ID (cookie)    │
│   ├─ session_start      ├─ Google Signals        │
│   ├─ first_visit        └─ Modeled data          │
│   └─ scroll                                      │
│                                                  │
│  Identity: probabilistic, cookie-based           │
│  Default events: web-centric (pages, sessions)   │
│  Attribution: built-in channel groupings         │
└──────────────────────────────────────────────────┘
 
┌──────────────────────────────────────────────────┐
│                   POSTHOG                        │
│                                                  │
│  Event ──► Person (deterministic)                │
│   │         │                                    │
│   ├─ created_project    ├─ distinct_id           │
│   ├─ invited_teammate   ├─ posthog.identify()    │
│   ├─ ran_query          └─ Cross-device merge    │
│   └─ upgraded_plan                               │
│                                                  │
│  Identity: deterministic, your user IDs          │
│  Default events: none (you instrument everything)│
│  Attribution: not built-in                       │
└──────────────────────────────────────────────────┘

GA4 starts with sessions and pageviews. Its auto-collected events -- page_view, session_start, first_visit, scroll -- assume you're measuring a website. User identity is probabilistic: cookies, device IDs, Google Signals, and modeled data fill the gaps. This works well for anonymous visitors on a marketing site, poorly for logged-in users of a SaaS product.

PostHog starts with persons and custom events. There are no default events. You instrument everything yourself: posthog.capture('created_dashboard'). Once a user logs in and you call posthog.identify(userId), PostHog ties all their events to a deterministic identity. That's what makes retention charts, cohort analysis, and cross-device tracking actually reliable.

Fastero

Connect your database. Ask questions. Get dashboards.

Postgres, BigQuery, Snowflake, and 10+ sources — live-connected, AI-powered, no dashboard builder learning curve.

Try free →

How does privacy and data control compare?

This is where PostHog's open-source roots create a genuine differentiator.

GA4 runs on Google's infrastructure. Your event data lives in Google's cloud. You can export to BigQuery (free), but the raw data processing, the identity resolution, the attribution modeling -- all of it happens on Google's servers. If you're subject to GDPR, HIPAA, or any regulation that requires knowing exactly where user data resides, GA4 means trusting Google's compliance posture. For most companies, that's fine. For healthcare, fintech, or companies with European customers who ask pointed questions about data residency, it's a conversation with legal.

PostHog gives you two options: PostHog Cloud (hosted by PostHog, US or EU data centers) or self-hosted via a Kubernetes Helm chart. Self-hosting means you run the full stack -- ClickHouse, Kafka, PostgreSQL, Redis -- in your own infrastructure. Your data never leaves your network. The ops burden is real (ClickHouse clusters are not trivial to maintain), but for companies with genuine compliance requirements, it's the only analytics platform in this class that offers full data sovereignty.

Both tools let you disable cookies. PostHog can run in cookieless mode for privacy-conscious deployments. GA4 offers cookieless pings and consent mode, but some features degrade without cookies -- Google Signals and cross-session identity resolution depend on them.

How does pricing actually work?

Both tools have generous free tiers. The math diverges at scale.

GA4 PostHog
Free tier Unlimited events (standard) 1M events/month
Session recordings Not available 5,000/month free, then $0.005 each
Feature flags Not available Unlimited free, $0.0001/request past 1M
A/B testing Not available Included with feature flags
Paid tier GA4 360: starts ~$50K/year $0.00031/event past 1M
Data export BigQuery (free) Built-in SQL (HogQL), API, webhooks
Pricing model Free or enterprise contract Self-serve, usage-based

GA4's free tier is remarkably generous -- there's no event cap on the standard product. You get limited data retention (14 months), sampling at high cardinality, and no SLA, but for most small and mid-size teams, the free version is sufficient for acquisition analytics.

PostHog's free tier covers 1 million events per month plus 5,000 session recordings. A startup tracking 50K MAU with moderate event volume can run PostHog for free for months. At scale -- say 100M events/month -- you're looking at roughly $30K/year, which is where comparing against GA4 360's enterprise pricing becomes relevant.

The real cost difference isn't in the analytics tier. It's in the tools PostHog bundles that GA4 doesn't offer at all: session recordings, feature flags, A/B tests, and surveys. Without PostHog, you'd be paying separately for LaunchDarkly, Hotjar, and an experimentation platform. Those subscriptions add up fast.

What about funnels, retention, and session recordings?

Here's the feature-by-feature breakdown for the things product teams actually use daily.

Capability PostHog GA4
Funnels Flexible, any event sequence, breakdown by property Built-in but rigid, tied to conversions
Retention First-time/recurring, cohort-based, property breakdowns Basic cohort exploration, limited customization
Session recordings Built-in, linked to analytics events Not available
Feature flags Built-in, percentage/property-based targeting Not available
A/B testing Built-in experiments with statistical analysis Not available (use Google Optimize successor tools)
Surveys Built-in, targeted by user property or event Not available
Attribution modeling Not built-in Data-driven, last-click, first-click, linear
Channel groupings Not available Auto-categorizes traffic (Organic, Paid, Social, etc.)
Google Ads integration Not available Native (auto-tagging, conversion import, audiences)
SQL access HogQL (full SQL over events) BigQuery export (separate query cost)

The pattern is clear. PostHog dominates in-product analytics. GA4 dominates acquisition analytics. Trying to make either tool do the other's job results in fighting the UI, hacking around missing features, and getting worse data than a purpose-built tool would give you.

When should you pick PostHog?

You're building a SaaS product and need to understand what happens after signup. Your team is engineering-led and comfortable with event instrumentation. You want session recordings, feature flags, and analytics in one platform instead of three vendor contracts. Data ownership matters to you -- either for compliance or because you've been burned by a vendor shutting down an API. You think in SQL and want HogQL access to your raw events.

When should you pick GA4?

You're spending money on Google Ads and need attribution data that ties ad spend to on-site conversions. Your marketing team needs to understand which channels drive traffic and how landing pages perform. You want a free tool with no event caps for basic web analytics. You need Google Ads audience syncing for remarketing campaigns.

Do you actually need both?

For most SaaS teams running paid acquisition: yes.

┌─────────────┐    ┌───────────┐    ┌──────────────┐
│  Google Ads  │───►│   GA4     │───►│  Acquisition │
│  Meta Ads    │    │           │    │  insights    │
│  Organic     │    │ sessions, │    │              │
│  Referrals   │    │ channels, │    │ "Where do    │
│              │    │ attribution│   │  users come  │
│              │    │           │    │  from?"      │
└─────────────┘    └───────────┘    └──────────────┘
 
┌─────────────┐    ┌───────────┐    ┌──────────────┐
│  Your app   │───►│  PostHog  │───►│  Product     │
│             │    │           │    │  insights    │
│  Signup     │    │ funnels,  │    │              │
│  Onboarding │    │ retention,│    │ "What do     │
│  Features   │    │ recordings│    │  users do    │
│  Upgrades   │    │ flags     │    │  inside?"    │
└─────────────┘    └───────────┘    └──────────────┘

GA4 on the marketing site and landing pages. PostHog inside the product. The gap between them -- connecting "which campaign brought this user" to "did they actually activate and pay" -- is where most teams struggle. GA4 doesn't know what happened after signup. PostHog doesn't know which ad campaign brought the user in.

You can partially bridge this by passing UTM parameters through signup and storing them as PostHog person properties. But that's a manual pipeline, and it breaks whenever someone clears cookies or signs up on a different device than they clicked the ad on.

What if you need to connect both to business data?

This is the gap that neither PostHog nor GA4 fills on its own. You have acquisition data in GA4. You have product usage data in PostHog. You have revenue data in Stripe, deal data in HubSpot, and support tickets in Zendesk.

The question nobody answers cleanly: "Which Google Ads campaign produces users who actually activate, retain, and pay?"

Answering that requires joining data across sources. You could export everything to a warehouse and write SQL. You could build a Fivetran pipeline into BigQuery and run dbt models. Both work, both take weeks to set up, and both require a data engineer to maintain.

Fastero connects to PostHog, GA4, Stripe, HubSpot, and your product database. You ask questions across sources in plain English -- "show me activation rate by acquisition channel for users who signed up in the last 90 days" -- and get answers without building a warehouse pipeline first. If you're running PostHog and want to combine it with business data, or if you're trying to connect GA4 marketing data with product analytics, that's the problem we built Fastero to solve.

Further reading

FAQ

Can PostHog replace Google Analytics entirely? Only if you don't run paid acquisition through Google Ads. PostHog has no Google Ads integration, no attribution modeling, and no channel groupings. For a bootstrapped SaaS product with no paid marketing, PostHog alone is fine. The moment you're spending money on ads and need to tie spend to conversions, you need GA4 (or something that integrates with Google Ads).

Is GA4 good enough for product analytics? No. You can fire custom events via gtag.js, but GA4 will try to shove them into its session-based, attribution-oriented reporting model. You can't build proper retention charts, you don't get session recordings, and the funnel builder is designed around website conversion paths, not multi-step product onboarding flows. For in-product analytics, use a product analytics tool.

Does PostHog support Google Ads conversion tracking? Not directly. PostHog doesn't integrate with Google Ads for conversion import or audience syncing. You'd need to fire a GA4 event alongside the PostHog event, or use the Google Ads conversion tracking pixel separately. This is one reason running both tools in parallel makes sense.

Is PostHog really free? The first 1 million events per month are free on PostHog Cloud, along with 5,000 session recordings and unlimited feature flag evaluations. Self-hosting the open-source version has no event caps, but you're paying for infrastructure (ClickHouse clusters aren't cheap to run). Some enterprise features like SAML SSO require a paid license even on self-hosted deployments.

Can I self-host GA4? No. GA4 is a Google-managed service. Your data is processed and stored on Google's infrastructure. The BigQuery export gives you a copy of the raw events, but the analytics processing itself is not self-hostable. If data sovereignty is a hard requirement, PostHog self-hosted or Matomo are your options for analytics.

How do I connect PostHog data with GA4 data for cross-source analysis? Export both to a common data store. GA4 exports natively to BigQuery. PostHog can export to BigQuery, S3, or Snowflake via its data pipeline feature. Once both datasets are in the same warehouse, you join on user ID or a shared identifier. Alternatively, tools like Fastero connect to both sources directly and let you query across them without setting up a warehouse pipeline.


Try Fastero free -- connect PostHog, GA4, Stripe, and your product database, then ask questions across all of them in plain English. No credit card required.

Ready to try it yourself?

Connect your database, ask questions in plain English, and get live dashboards — in under 2 minutes. No credit card required.