How to track push notification performance in Google Analytics 4 (GA4)
PushPushGo automatically adds tracking parameters (UTMs) to every link used in your push notifications. These UTMs allow you to measure the effectiveness of your web and mobile push campaigns directly inside Google Analytics 4.
This article explains:
- How PushPushGo applies UTMs,
- How UTMs differ between web push and mobile push,
- How to find push campaign statistics inside GA4,
- Recommended best practices for clear analytics attribution.
How PushPushGo tracks notification clicks
Whenever a user clicks a push notification, PushPushGo appends UTM parameters to the destination URL. These UTMs are recognized by GA4 and allow you to see:
- Traffic attributed to pushes,
- Campaign performance,
- Conversions resulting from push notifications.
The default UTMs applied by PushPushGo are:
utm_source=pushpushgo
utm_medium=push
utm_campaign={campaignName}
These parameters help GA4 understand where the traffic came from and group it under specific push campaigns.
Tracking web push campaigns
How UTMs Work for web push
When you send a web push campaign, all links automatically receive UTM parameters. A typical URL looks like this:
https://yourwebsite.com?utm_source=pushpushgo&utm_medium=push&utm_campaign=spring_sale
What You need to do?
No additional setup is required. As long as your Google Analytics script is active on your website, Web push traffic will be properly recorded.
Tracking mobile push campaigns
If you use PushPushGo for mobile app push notification delivery, links are tracked similarly—UTMs are applied to deep links or universal links that lead into your mobile app.
Example:
myapp://product/123?utm_source=pushpushgo&utm_medium=push&utm_campaign=spring_sale
To ensure accurate tracking:
- Your app must support deep links or universal links.
- Your mobile analytics SDK (Firebase + GA4) must preserve UTM parameters.
If this setup is correct, GA4 will attribute sessions and events to PushPushGo’s UTMs just like it does for Web push campaigns.
Where to find push notification statistics in Google Analytics (GA4)
Google Analytics automatically groups all sessions that contain your UTM parameters. You can view push performance in a few key places.
Traffic acquisition report (most common)
Navigate to:
Reports → Acquisition → Traffic acquisition
Then use the following dimensions:
- Session source → shows “pushpushgo”,
- Session medium → shows “push”,
- Session campaign → shows individual campaign names.
You can use filters or comparisons to isolate PushPushGo traffic.
This report displays:
- Number of users arriving from push notifications,
- Engagement rate,
- Average engagement time,
- Conversions,
- Revenue (for e-commerce setups).
View campaign performance
Navigate to:
Reports → Acquisition → Traffic acquisition → Add comparison → Session campaign
There you can filter using:
- The exact campaign name,
- A name pattern (e.g., contains “promo”, “alert”, etc.).
This view gives you detailed results for each push campaign, including sessions, conversions, and behavior metrics.
Explore section (custom analysis)
For deeper insights:
Explore → Free Form → Dimensions: Session source / medium + Session campaign
In this view, you can:
- Compare Web Push vs. Mobile Push traffic,
- See which campaigns drive the highest engagement,
- Analyze conversion funnels by source.
This is ideal for creating a reusable internal dashboard.
Best Practices for clear push attribution
To maintain clean and consistent reporting in GA4:
Use clear campaign names
Your campaign name appears as utm_campaign.
Use names that reflect goals or content (e.g., cart_recovery_jan).
Separate channels when needed
If you want to differentiate Web Push vs. Mobile Push more clearly, PushPushGo allows customizing UTMs.
You might choose:
Web Push:
utm_source=webpush
Mobile Push:
utm_source=mobilepush
This is optional but useful for detailed multi-channel reporting.
Ensure Deep Links preserve UTMs
For mobile apps, confirm that your deep-linking logic passes UTM parameters into Firebase.
Without this, GA4 cannot attribute mobile push traffic correctly.