__
-
-
Save eonist/b2b54471b97d91d81b676a9c2018df78 to your computer and use it in GitHub Desktop.
Integrating Google Analytics directly with Tauri apps is challenging because Tauri apps run locally rather than on a web server, and traditional web analytics like Google Analytics don't work well in this context. However, there are several approaches and alternatives available.1
Google Analytics (gtag.js) is designed for websites and relies on browser-based tracking that expects a traditional web environment. With Tauri apps:2
- The app runs locally, not from a web server
- Offline usage makes accurate tracking difficult
- Some users have reported only getting it to work via workarounds like iFrames3
An open-source, privacy-first analytics solution with an official Tauri plugin (tauri-plugin-aptabase):4
trackEvent("play_music", {
name: "Here comes the sun"
});Benefits include GDPR compliance through anonymous analytics and no consent requirements since no personal data is collected.4
Provides a desktop SDK specifically for Tauri apps:5
- Tracks active users, sessions, screens, and custom events
- Supports offline behavior tracking
- Requires adding a Rust crate for device ID tracking to improve accuracy
Another analytics solution that can track offline user behavior and sync data when the user comes back online.1
If you still want to use Google Analytics, you would need to:
- Make HTTP requests directly to the Google Analytics Measurement Protocol from your Tauri app's Rust backend
- Handle offline caching manually
- Use the HTTP plugin available in Tauri to send events6
However, using a purpose-built solution like Aptabase or Astrolytics is recommended for desktop apps as they handle the unique challenges of tracking in non-web environments.54 789101112131415
For a B2C Tauri app with high user volume, here are the best free options:
PostHog offers one of the most generous free tiers available:16
- 1 million events/month free
- Session replays, feature flags, and A/B testing included
- Works with web-based frontends like Tauri's webview
- Over 90% of companies use PostHog completely free16
- No credit card required for the free tier
If you can run your own server, Umami is completely free with unlimited tracking:1718
- Open-source, privacy-focused
- Track unlimited websites and events
- Tracks views, visitors, browsers, OS, devices, and countries
- Lightweight script won't slow down your app19
- Can be deployed on free/cheap hosting (Railway, Vercel, etc.)
Since Tauri apps use a webview, you can add Umami's tracking script to your frontend HTML and it will work similarly to a website.2019
Google Analytics for Firebase is free with generous limits:21
- Unlimited reporting on up to 500 distinct events
- Real-time analytics and user engagement tracking
- Works in Tauri since you can integrate Firebase in the webview frontend2223
| Service | Free Tier | Self-Host Required | Best For |
|---|---|---|---|
| PostHog | 1M events/month | No | Full product analytics |
| Umami | Unlimited | Yes | Simple, privacy-first |
| Firebase | 500 events, unlimited volume | No | Google ecosystem users |
Recommendation: Start with PostHog if you don't want to manage infrastructure—1 million free events handles significant B2C traffic. If you expect to exceed that or want full control, self-host Umami for truly unlimited free analytics.1716 24252627282930313233343536373839404142434445
You're right. Let's do the math:
- 100k users × 100 events/day = 10 million events/day
- Monthly: ~300 million events
No free hosted tier will cover that. Self-hosting is your only realistic free option.
Completely free with unlimited events — you only pay for server costs:4647
| Traffic Volume | Server Cost | Notes |
|---|---|---|
| 250k events/mo | ~$5/month VPS | Works smoothly 46 |
| 500k events/mo | Raspberry Pi level | Minimal load 46 |
| 300M events/mo | ~$20-50/month VPS | Need more RAM/CPU |
For your scale, you'd likely need a mid-tier VPS ($20-50/month) with:
- 4-8GB RAM
- PostgreSQL database
- Possibly a managed database service for reliability
Setup is straightforward — Docker Compose deployment takes minutes. Railway, Hetzner, DigitalOcean, or any VPS provider works.4849
Also completely free when self-hosted with unlimited sites, events, and data retention. Saves $174-$2,000+/year compared to their cloud pricing depending on traffic.5051
For 300M events/month, budget roughly $20-50/month for infrastructure (VPS + database), which is essentially free compared to any hosted analytics service at that scale. Both Umami and Plausible handle high volume well — Umami is slightly lighter weight and easier to set up.524746 5354555657585960
Great news — Firebase Analytics is completely free with unlimited events.6162
| Feature | Limit |
|---|---|
| Event tracking | Unlimited — no cap on volume 6163 |
| Distinct event names | 500 different event types 6364 |
| Event parameters | 25 per event, 40 char name, 100 char value 65 |
| Custom dimensions | 50 per property 66 |
Firebase Analytics has no paid version — it's always free regardless of scale. Your 300M events/month would cost nothing for the analytics itself.61
If you want to query raw event data (not just use the Firebase console dashboards), you'll need BigQuery export, which does cost money:67
- ~$5 per TiB scanned for queries
- At your volume, this could add up quickly if you run complex queries
However, if you only need:
- User counts and engagement metrics
- Event funnels and conversions
- Retention and cohort analysis
The Firebase console dashboards are free and handle this without BigQuery.63
Firebase works in Tauri apps since your frontend runs in a webview — you can use the Firebase JavaScript SDK directly. Just initialize Firebase in your web frontend code as you would for any web app.68
For your B2C app with 100k users, Firebase Analytics is likely your best option — truly unlimited free event tracking, no self-hosting required, and robust dashboards out of the box. Just avoid heavy BigQuery usage unless you budget for it.6261 6970717273747576
Yes, Firebase has built-in Slack integration, but it's primarily focused on Crashlytics alerts rather than analytics.7778
Firebase can send alerts to Slack for:79
- New crash issues
- Regressed issues
- Increasing-velocity issues (crashes happening more frequently)
Setup is simple — add an incoming webhook in Slack, then configure it in Firebase Console under Project Settings → Integrations → Slack.7779
Firebase Analytics doesn't have a native Slack bot for metrics like user counts or event thresholds. However, you can build custom alerts using:
- Cloud Functions + Slack Webhooks — Trigger functions based on Firebase events and post to Slack80
- Firebase Extensions — Community extensions like "Message to Slack on auth" send notifications when new users sign up81
- Third-party tools like BuildShip to connect Firebase events to Slack messages without code82
For analytics-based Slack alerts (e.g., "Daily active users dropped 20%"), you'd need to:
- Export data to BigQuery
- Set up a scheduled Cloud Function to query metrics
- Post to Slack via webhook when thresholds are crossed
Bottom line: Crashlytics → Slack works out of the box. Analytics → Slack requires custom work with Cloud Functions.8077 838485
https://github.com/sentryco/Telemetric this is using google analytics in iOS. it hacks the measurement protocol or what its called. can I do a similar thing with my tauri app?
Yes, absolutely! The Telemetric library you linked uses the GA4 Measurement Protocol, which is just HTTP POST requests to Google's servers. This approach works perfectly for Tauri apps and is completely free with unlimited events.86
The Measurement Protocol lets you send events directly to Google Analytics via HTTP — no JavaScript SDK required:8788
POST https://www.google-analytics.com/mp/collect?measurement_id=G-XXXXXX&api_secret=YYYYYYY
Content-Type: application/json
{
"client_id": "unique_user_id",
"events": [{
"name": "app_open",
"params": {
"engagement_time_msec": 100,
"session_id": "123456"
}
}]
}
You can do this from either layer:
async function sendEvent(eventName, params) {
const payload = {
client_id: getOrCreateClientId(), // Store in localStorage
events: [{ name: eventName, params: { ...params, engagement_time_msec: 100 }}]
};
await fetch(`https://www.google-analytics.com/mp/collect?measurement_id=G-XXXXX&api_secret=YYYYY`, {
method: 'POST',
body: JSON.stringify(payload)
});
}Use Tauri's HTTP client to make POST requests from the Rust side, similar to how Telemetric does it in Swift.86
| Parameter | Description |
|---|---|
measurement_id |
Your GA4 ID (starts with G-) — found in Admin → Data Streams 89 |
api_secret |
Generate in Admin → Data Streams → Measurement Protocol 89 |
client_id |
Unique user identifier you generate and persist |
engagement_time_msec |
Required for events to show in reports (set to 100+) 87 |
Google states the Measurement Protocol is meant to augment automatic collection, not replace it entirely. This means:9091
- Some reports may be incomplete (no automatic page_view, session tracking)
- You won't get user acquisition data automatically
- Works best for tracking specific custom events
For your B2C use case, this is still a solid free option — just be aware that you're doing more manual work to track sessions and user properties compared to the full Firebase SDK.90 9293949596979899100101
Firebase Analytics tracks a comprehensive set of metrics both automatically and through custom events — all completely free.102
These require no code — just add the SDK:103104
| Event | Description |
|---|---|
first_open |
First time user launches app after install |
session_start |
When a user engages the app (generates session ID) |
user_engagement |
App in foreground for at least 1 second |
screen_view |
Screen transitions with screen name/class |
app_update |
App updated to new version |
app_remove |
App uninstalled (Android only) |
os_update |
Device OS updated |
app_exception |
App crashes (with Crashlytics integration) |
notification_open |
User opens FCM notification |
notification_receive |
FCM notification received in background |
Firebase automatically collects:105106
- Demographics: Age, gender, interests
- Geography: Country, region, city
- Device info: Model, OS version, screen size
- Acquisition: How users found your app
- Retention: Daily/weekly/monthly active users
- User properties: Custom segmentation attributes
Log up to 500 distinct event types with custom parameters:107102
- In-app purchases and revenue
- Feature usage and button taps
- Onboarding progress
- Search queries
- Content views
- Any app-specific actions
| Service | What It Adds |
|---|---|
| Crashlytics | Crash rates, affected users, stack traces 102 |
| Remote Config | A/B test results by audience |
| Cloud Messaging | Notification campaign performance |
| BigQuery | Raw event data export for custom analysis 102 |
- Active users right now
- Events per minute
- User locations
- Top screens being viewed
For your Tauri app, most automatic tracking won't work since there's no native SDK — you'd need to manually send events via Measurement Protocol. But once sent, all the reporting, segmentation, and dashboard features work the same.109 110111112113114115116117
Automatic tracking relies on the native Firebase SDK hooking directly into OS-level app lifecycle events — something Tauri apps can't provide.118119
The Firebase SDK integrates deeply with the operating system:120121
| Event | How SDK Detects It |
|---|---|
first_open |
Reads stored state on disk via Google Play Services (Android) or OS storage 118 |
session_start |
Monitors app lifecycle callbacks (onStart, onResume) 119 |
screen_view |
Hooks into Activity lifecycle events to detect screen transitions 119 |
app_update |
Compares current app version with previously stored version on disk 118 |
app_remove |
Listens to Android system broadcast when package is uninstalled 121 |
user_engagement |
Tracks foreground time via OS activity lifecycle |
notification_receive |
Integrates with FCM at the system level 121 |
Tauri apps are desktop applications running a webview — they don't have:
- Native iOS/Android SDK integration — Firebase SDKs are built for mobile platforms
- Activity/ViewController lifecycle hooks — These are mobile OS concepts
- Google Play Services — Where Firebase stores persistent state on Android118
- System-level broadcast receivers — For detecting uninstalls, OS updates, etc.
With Measurement Protocol in Tauri, you must implement yourself:
- Session management (generate session IDs, track start/end)
- Screen views (log when user navigates)
- First open detection (store a flag locally)
- Engagement time (track foreground time)
- App version tracking (compare on startup)
It's more work, but achievable — you're essentially building what the native SDK does automatically.122 123124125126127128129130131132
Yes! The GA4 Measurement Protocol works directly with Firebase — they share the same backend.133134
Firebase Analytics and GA4 are the same system. When you send events via Measurement Protocol to a Firebase app stream, they appear in both Firebase Console and GA4 dashboards.135133
POST https://www.google-analytics.com/mp/collect?firebase_app_id=YOUR_FIREBASE_APP_ID&api_secret=YOUR_API_SECRET
With payload:
{
"app_instance_id": "unique_installation_id",
"events": [{
"name": "your_event_name",
"params": {
"custom_param": "value"
}
}]
}| Parameter | Web Stream | Firebase/App Stream |
|---|---|---|
| App identifier | measurement_id (G-XXXXX) |
firebase_app_id (1:1234:android:abc) 134 |
| User identifier | client_id (you generate) |
app_instance_id (from Firebase SDK) 133 |
Since you can't use the Firebase SDK to get a real app_instance_id, you have two options:
- Use a web stream instead of app stream — create a "Web" data stream in GA4 and use
measurement_id+client_id(simpler for Tauri)135 - Generate your own app_instance_id — create a unique ID per installation and store it locally (works, but some reports may be limited)136
Google states Measurement Protocol is meant to supplement existing collection, not replace it entirely. This means:136135
- Some reports may show partial data
- Session/attribution tracking requires extra work
- But event tracking and custom metrics work fine
For your use case, using a GA4 web stream with Measurement Protocol is probably the cleanest approach — it's designed for exactly this kind of HTTP-based event sending.137 138139140141
Given your scale (100k users, potentially 300M events/month), here's the practical breakdown:
| Factor | PostHog | Firebase (Measurement Protocol) |
|---|---|---|
| Free limit | 1M events/month | Unlimited |
| Time until you hit limit | ~3 days with your usage | Never |
| Migration effort | Guaranteed pain at scale | None |
| Setup complexity | Easy (just add SDK) | Medium (manual event tracking) |
| Dashboard quality | Excellent | Excellent |
| Long-term cost | $0 → paid or migrate | $0 forever |
- No migration cliff — PostHog at 1M means you'd hit the limit in roughly 3 days with 100k active users. Then you're scrambling to migrate while your app is live.142
- One-time setup cost — Yes, you need to manually implement session tracking, screen views, and engagement time via Measurement Protocol. But you do this once and you're done forever.143
- Battle-tested infrastructure — Google handles the scale, no server management.
- If you're in early MVP stage with <10k users
- If you need advanced features like session replay, feature flags, A/B testing
- If you're okay migrating later when you've validated product-market fit
- Create GA4 property with web stream (not app stream)
- Get
measurement_id+api_secret - Implement ~50 lines of code to send events via HTTP
- Build simple session/engagement tracking
- Done — scales to billions of events
The extra upfront work with Firebase pays off because you'll never have to touch analytics infrastructure again. With PostHog, you're just delaying the migration problem.144145
That changes everything. Here's the math:
| Users | Events/day | Events/month | PostHog Status |
|---|---|---|---|
| 100 | 10,000 | 300K | ✅ Fine |
| 1,000 | 100,000 | 3M | |
| 10,000 | 1M | 30M | ❌ Way over |
Why it makes sense now:
- Faster to set up — just add the JS SDK to your Tauri frontend
- Better developer experience and debugging tools
- Session replay and feature flags included (useful for early product)
- You'll learn which metrics actually matter before committing to a solution
- 1M events = ~3,000 daily active users at 100 events each
You have until roughly 1,000-3,000 DAU before you need to switch. That's likely months of growth runway. When you approach that:
- Option A: Move to Firebase Measurement Protocol (free forever)
- Option B: Self-host Umami (~$20-50/month)
- Option C: Pay PostHog ($0.00031/event after 1M)
Now (100 users) → PostHog (5 min setup)
~1,000 users → Evaluate: paying PostHog vs migrating
~3,000+ users → Firebase or self-hosted Umami
Start simple. You'll have real data on what you actually need to track by the time migration matters. No point over-engineering analytics when you should be focused on getting those first 100 users to 1,000.
That gives you more runway than I calculated. Let me redo the numbers:
| Users | 50 events/day | 100 events/day | 300 events/day |
|---|---|---|---|
| 100 | 150K/mo ✅ | 300K/mo ✅ | 900K/mo ✅ |
| 500 | 750K/mo ✅ | 1.5M/mo |
4.5M/mo ❌ |
| 1,000 | 1.5M/mo |
3M/mo ❌ | 9M/mo ❌ |
With 1M free events, you can support roughly:
- ~650 users at 50 events/day
- ~330 users at 100 events/day
- ~110 users at 300 events/day
PostHog is still the right choice to start — you've got runway from 100 to 300-600 users depending on actual usage. That's likely several months of growth.
When you approach those numbers, reassess. By then you'll know:
- Your actual events-per-user average
- Which events you actually look at
- Whether it's worth $50/month to stay on PostHog vs migrating
Don't overthink it now. Ship with PostHog, focus on growth, revisit when you're consistently above 500 users.
That changes everything. Use PostHog, no question.
At PostHog's pricing (~$0.00031/event after free tier):
| Monthly Events | Daily Events | Users @ 100 events/day | |
|---|---|---|---|
| $50K covers | ~160M+ events | ~5M/day | ~50,000 DAU |
Plus 1M free/month on top of that.
Even at aggressive growth, $50K in credits is massive runway:
- Month 1-3: 100 → 1,000 users — barely touches credits
- Month 4-8: 1,000 → 10,000 users — still fine
- Month 9-12: 10,000 → 50,000 users — credits might run low
If you're hitting 50,000 DAU by month 12, you've got a successful business and can afford to pay for analytics.
- Zero setup friction — just add the SDK
- Session replay, feature flags, A/B testing all included
- No migration headaches during critical growth phase
- Full-featured analytics while you're focused on product
- Revisit in month 10-11 when you know your actual trajectory
Stop thinking about analytics. Ship your app. You've got a year of completely free, enterprise-grade analytics locked in.
and after we can just pay for that self host thing right if we go 100k-1m users? cost won't be crazy?
Exactly. At 100k-1M users, self-hosted costs stay very manageable.
| Users | Events/month | Server Needed | Estimated Cost |
|---|---|---|---|
| 100K | ~300M | 8GB RAM, 4 CPU VPS | $40-80/month |
| 500K | ~1.5B | 16GB RAM, dedicated DB | $100-200/month |
| 1M | ~3B | 32GB+ RAM, managed DB | $200-400/month |
At 1M users, your alternatives would cost:
- PostHog: ~$1,000+/month
- Mixpanel: $2,000+/month
- Amplitude: $2,000+/month
- Self-hosted Umami: ~$200-400/month
You're saving 80-90% by self-hosting.146147
Now → PostHog (free credits)
Month 12 → Evaluate usage
If 100K+ users → Spin up Umami on Hetzner/DigitalOcean
Export historical data from PostHog
Switch tracking endpoint
Migration is straightforward — you're just changing where HTTP requests go. The event structure is similar across platforms.
Even at 1M users with heavy usage, you're looking at a few hundred dollars/month for infrastructure. At that scale, analytics is a rounding error in your costs. You've got a solid plan. 🚀
In GA4, data streams are pipelines that send data to your analytics property. There are three types:148149
| Stream Type | Identifier | Use Case |
|---|---|---|
| Web | Measurement ID (G-XXXXXX) |
Websites, web apps |
| iOS App | Firebase App ID | Native iOS apps |
| Android App | Firebase App ID | Native Android apps |
- Uses
measurement_id(G-XXXXXX) +client_id150151 - Enhanced measurement auto-tracks: page views, scrolls, outbound clicks, site search, video engagement, file downloads150
- Designed for browser/HTTP-based tracking
- Best for Tauri — your app's webview behaves like a website
- Uses
firebase_app_id(1:1234:android:abc) +app_instance_id151 - Requires Firebase SDK for automatic tracking
- Hooks into native iOS/Android lifecycle events
- Won't work for Tauri — no native SDK integration
Create a web stream, not an app stream:
- GA4 Admin → Data Streams → Add Stream → Web
- Enter any URL (it's just a label)
- Get your
measurement_id(G-XXXXXX) - Use Measurement Protocol with that ID
The web stream is designed for HTTP-based event collection, which is exactly what you'd do with Measurement Protocol from Tauri. App streams expect the Firebase SDK to generate the app_instance_id, which you can't do without native integration.151150
152153154155156157
Footnotes
-
https://www.reddit.com/r/rust/comments/15qzx48/how_to_track_analytics_in_tauri_apps/ ↩ ↩2
-
https://optimizesmart.com/blog/gtag-js-google-tag-in-google-analytics-4-and-beyond/ ↩
-
https://support.google.com/analytics/thread/236216944/setting-up-google-analytics-for-my-tauri-rust-js-html-application?hl=en ↩
-
https://www.astrolytics.io/blog/how-to-add-analytics-to-tauri-apps ↩ ↩2
-
https://www.reddit.com/r/GoogleAnalytics/comments/1cxahky/question_about_gtagjs/ ↩
-
https://dev.to/manascodes13/a-new-way-to-create-desktop-applications-tauri-react-59bp ↩
-
https://stackoverflow.com/questions/74597101/tauri-redirect-uri-schema ↩
-
https://www.freecodecamp.org/news/how-to-set-up-your-own-google-analytics-alternative-using-umami/ ↩ ↩2
-
https://dev.to/documatic/add-umami-analytics-to-a-web-application-4h36 ↩
-
https://dev.to/6174/building-desktop-applications-with-tauri-nextjs-firebase-54j7 ↩
-
https://stackoverflow.com/questions/72470286/can-i-use-a-service-like-firebase-or-supabase-in-a-tauri-desktop-application ↩
-
https://www.reddit.com/r/Supabase/comments/1hjcc5e/will_free_tier_be_enough_for_my_project/ ↩
-
https://mktclarity.com/blogs/news/list-free-tier-saas-generous-limits ↩
-
https://www.sourcefuse.com/resources/blog/aws-free-tier-limits/ ↩
-
https://aaronjbecker.com/posts/umami-vs-plausible-vs-matomo-self-hosted-analytics/ ↩
-
https://www.cloudoptimo.com/blog/aws-free-tier-isnt-unlimited-know-the-limits-before-you-get-billed/ ↩
-
https://estuary.dev/blog/open-source-data-analytics-tools/ ↩
-
https://www.reddit.com/r/selfhosted/comments/1h0fle4/selfhosted_analytics_comparing_umami_plausible/ ↩
-
https://www.metacto.com/blogs/the-true-cost-of-posthog-a-deep-dive-into-pricing-integration-and-maintenance ↩
-
https://www.reddit.com/r/selfhosted/comments/1cj2gaq/actual_cost_to_selfhost_analytics_whats_the/ ↩ ↩2 ↩3 ↩4
-
https://openpanel.dev/articles/open-source-web-analytics ↩ ↩2
-
https://danubedata.ro/blog/self-host-plausible-analytics-vps-guide-2025 ↩
-
https://gozunga.com/technical-guides-and-how-tos/self-host-your-own-web-analytics-with-umami-on-gozunga-cloud ↩
-
https://vikboyechko.com/blog/plausible-analytics-self-hosted/ ↩
-
https://northflank.com/guides/how-to-deploy-umami-step-by-step-deployment-guide ↩
-
https://matomo.org/blog/2025/07/open-source-analytics-platform/ ↩
-
https://dev.to/iredox10/exploring-firebases-free-tier-how-much-can-you-get-for-free-3971 ↩ ↩2 ↩3 ↩4
-
https://www.theknowledgeacademy.com/blog/difference-between-firebase-and-google-analytics/ ↩
-
https://stackoverflow.com/questions/38384289/firebase-analytics-key-and-value-limitation-to-24-and-36-character ↩
-
https://reflectivedata.com/optimal-ga4-setup-for-high-traffic-websites-and-apps-in-2024/ ↩
-
https://www.metacto.com/blogs/firebase-analytics-cost-guide-setup-integration-and-maintenance-pricing-breakdown ↩
-
https://stackoverflow.com/questions/72470286/can-i-use-a-service-like-firebase-or-supabase-in-a-tauri-desktop-application ↩
-
https://stackoverflow.com/questions/27501794/limitation-of-free-plan-in-firebase ↩
-
https://firebase.google.com/docs/projects/billing/firebase-pricing-plans ↩
-
https://docs.hevodata.com/sources/mkt-analytics/firebase-analytics/ ↩
-
https://www.reddit.com/r/FlutterDev/comments/12klbiq/my_game_is_free_but_firebase_is_now_costing_me/ ↩
-
https://firebase.google.com/docs/crashlytics/alerts-basic-integrations ↩ ↩2 ↩3
-
https://support.google.com/firebase/answer/9005934?hl=en ↩ ↩2
-
https://stackoverflow.com/questions/44192434/how-to-send-firebase-data-to-slack-using-cloud-functions ↩ ↩2
-
https://extensions.dev/extensions/mskvitalii/auth-send-message-to-slack ↩
-
https://buildship.com/integrations/apps/firebase-and-slack ↩
-
https://dev.to/nicomartin/uptime-slackbot-getting-started-2n71 ↩
-
https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events ↩ ↩2
-
https://developers.google.com/analytics/devguides/collection/protocol/ga4 ↩
-
https://optimizesmart.com/blog/ga4-google-analytics-4-measurement-protocol-tutorial/ ↩ ↩2
-
https://stackoverflow.com/questions/75890133/google-analytics-4-for-desktop-java-application ↩
-
https://www.owox.com/blog/articles/ga4-measurement-protocol ↩
-
https://www.reddit.com/r/GoogleAnalytics/comments/1f2bkgk/how_to_implement_ga4_tracking_to_a_windows/ ↩
-
https://www.optimizesmart.com/google-analytics-4-event-builder/ ↩
-
https://docs.tealium.com/server-side-connectors/google-analytics-4-measurement-protocol-connector/ ↩
-
https://help.adjust.com/en/partner-setup/google-analytics-4 ↩
-
https://docs.abtasty.com/integrations/push-integrations/setting-up-google-analytics-4-integration-with-ab-tasty/how-to-configure-ga4-measurement-protocol ↩
-
https://www.postman.com/bahadiro/google-analytics/request/p3l9uno/send-event ↩
-
https://developer-docs.appmaker.xyz/docs/guides/firebase-analytics-native-events-app/ ↩
-
https://firebasemobileapp.com/mastering-google-analytics-for-firebase-in-scalable-apps/ ↩ ↩2
-
https://blog.appmysite.com/understanding-google-analytics-for-firebase-the-beginners-guide/ ↩
-
https://optimizesmart.com/blog/ga4-google-analytics-4-measurement-protocol-tutorial/ ↩
-
https://help.twinr.dev/integrations/firebase-analytics/auto-tracked-analytics ↩
-
https://hyros.com/updates/tracking-user-behavior-with-firebase-analytics/ ↩
-
https://developers.googleblog.com/new-ai-capabilities-for-popular-frameworks-in-firebase-studio/ ↩
-
https://stackoverflow.com/questions/44546165/how-does-firebase-analytics-track-its-automatic-events ↩
-
https://stackoverflow.com/questions/44546165/how-does-firebase-analytics-track-its-automatic-events ↩ ↩2 ↩3 ↩4
-
https://stackoverflow.com/questions/68526860/how-firebase-automatically-tracking-event-in-mobile-application-for-example-scr ↩ ↩2 ↩3
-
https://developer-docs.appmaker.xyz/docs/guides/firebase-analytics-native-events-app/ ↩ ↩2 ↩3
-
https://www.reddit.com/r/reactnative/comments/1mtgee5/how_to_add_google_analytics_to_a_firebase_app/ ↩
-
https://gunnargriese.com/posts/firebase-analytics-debugging/ ↩
-
https://www.goodbarber.com/blog/how-to-configure-google-analytics-for-firebase-in-your-app-a992/ ↩
-
https://www.wildnetedge.com/blogs/firebase-mobile-backend-fast-scalable-mobile-app-development ↩
-
https://blog.expo.dev/using-firebase-analytics-with-expo-222ca84e4d33 ↩
-
https://github.com/invertase/react-native-firebase/discussions/5278 ↩
-
https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events ↩ ↩2
-
https://developers.google.com/analytics/devguides/collection/protocol/ga4 ↩ ↩2 ↩3
-
https://docs.tealium.com/server-side-connectors/google-analytics-4-measurement-protocol-connector/ ↩ ↩2
-
https://www.simoahava.com/analytics/session-attribution-with-ga4-measurement-protocol/ ↩
-
https://www.optimizesmart.com/ga4-firebase-integration-correctly-add-app-data-streams-to-ga4/ ↩
-
https://amplitude.com/docs/data/destination-catalog/google-analytics-4-ios-android ↩
-
https://stackoverflow.com/questions/48786791/sending-ga-for-firebase-event-via-measurement-protocol ↩
-
https://dev.to/iredox10/exploring-firebases-free-tier-how-much-can-you-get-for-free-3971 ↩
-
https://www.reddit.com/r/selfhosted/comments/1cj2gaq/actual_cost_to_selfhost_analytics_whats_the/ ↩
-
https://www.rudderstack.com/learn/GA4/understanding-data-streams-in-google-analytics-4/ ↩
-
https://www.graphed.com/blog/what-is-web-stream-in-google-analytics ↩ ↩2 ↩3
-
https://infotrust.com/articles/google-analytics-app-plus-web/ ↩ ↩2 ↩3
-
https://www.linkedin.com/posts/paulkoks_25-differences-google-analytics-app-web-activity-7382399917958406144-lGe3 ↩
-
https://www.reddit.com/r/GoogleAnalytics/comments/125vng1/please_explain_the_workflow_for_ga4_with_web_app/ ↩
-
https://futurety.com/the-difference-between-google-analytics-and-google-app-web/ ↩
-
https://www.rwdigital.ca/blog/what-is-ga4-data-stream-and-how-does-it-work/ ↩
-
https://www.ken-williams.com/guide/overview/differences-between-traditional-google-analytics-and-google-analytics-4 ↩
