Push notification analytics that actually answer questions
Sent and clicked tell you whether a notification worked. UTM tags, events and webhooks tell you whether it mattered — visits, sign-ups and sales.
- Start with three campaign numbers: sent, expired and clicked.
- Tag every link with UTM parameters so your analytics tool attributes visits and revenue to push.
- Send subscribe/dismiss events to analytics to track opt-in.
- Use signed webhooks if you want push activity in your own database or CRM.
The core numbers
| Metric | What it tells you | Where |
|---|---|---|
| Sent | How many active subscriptions the message went to | Pusharoo campaign stats |
| Expired | Subscriptions the push service reported gone (cleaned automatically) | Pusharoo campaign stats |
| Clicked | Notifications tapped | Pusharoo campaign stats + click webhook |
| Sessions / conversions | What clicked visitors did next | Your analytics, via UTM tags |
| Opt-in rate | How well your prompt converts | Browser events → analytics |
UTM tags: the most useful five minutes
Add UTM parameters to every notification link so analytics tools (GA4, Plausible, Matomo and others) can attribute sessions and revenue to push:
https://yourstore.com/sale?utm_source=pusharoo&utm_medium=web-push&utm_campaign=spring-sale- Keep
utm_mediumconstant (web-push) so all push traffic groups together. - Use
utm_campaignfor the campaign name and, optionally,utm_contentfor A/B variants. - Use lowercase and hyphens consistently; analytics treats
Springandspringas different values.
Browser events for opt-in tracking
The Pusharoo snippet fires pusharoo:prompt-shown, pusharoo:subscribed, pusharoo:dismissed, pusharoo:permission and pusharoo:unsubscribed on window. Forward them to your analytics tool:
window.addEventListener('pusharoo:subscribed', e => {
// e.detail.isNew is true for a brand-new subscription
if (e.detail.isNew) plausible('Push subscribe'); // or gtag('event', 'push_subscribe')
});See opt-in rate for what to do with the numbers.
Webhooks: push data in your own systems
If you want a permanent record — or to connect push activity to logged-in users — add an HTTPS webhook URL to a website in Pusharoo. It POSTs signed JSON for subscribe, unsubscribe and click events, retrying failed deliveries with backoff. Verify the HMAC signature and timestamp before trusting a request; the docs include a PHP example (webhooks).
A weekly push report in five lines
- Subscribers gained and lost this week.
- Campaigns sent and their CTR (clicks ÷ sent).
- Best and worst campaign, with the title of each.
- Sessions and conversions from
utm_medium=web-push. - One change to try next week.
GA4 in two minutes
- Tag notification links with
utm_source=pusharoo,utm_medium=web-pushand a campaign name. - In GA4, open Reports → Acquisition → Traffic acquisition and filter session source/medium to
pusharoo / web-push. - Mark key events (purchase, sign-up) so you see conversions from push.
- Compare with
emailandorganicfor context.
Use A/B tests as analytics
The cleanest way to learn what works is to test it: Pusharoo’s A/B tests show both variants’ delivered, clicks and CTR side by side, and “send the winner” applies the result automatically. Run one test per week on your regular campaign — emoji vs. none, question vs. statement, image vs. no image — and keep a simple log. After a month you’ll have evidence specific to your audience, which beats any industry benchmark.
Pull stats into your own dashboards
The REST API exposes GET /api/v1/stats (active subscribers, new this week, deliveries and clicks over 30 days) and per-campaign stats including A/B results via GET /api/v1/campaigns. A nightly job can write these to a spreadsheet or warehouse next to GA4 sessions, so push shows up in the same report as email and social.
Measure without over-collecting
You don’t need cookies, fingerprinting or personal data to measure push. Aggregate counts plus UTM-tagged sessions answer almost every business question. Pusharoo itself stores only the push endpoint, browser type, language and timezone (privacy), and our privacy guide covers the rest.
Questions
How do I see push notification traffic in Google Analytics 4?
Add UTM parameters to notification links (for example utm_medium=web-push). GA4 then groups those sessions under that source/medium in its acquisition reports.
Can I track revenue from push notifications?
Yes, through your analytics or ecommerce platform’s attribution, using UTM-tagged links. Push tools see the click; your store sees the sale.
Does Pusharoo have an analytics dashboard?
Each campaign and automation shows targeted, delivered, expired, clicks and CTR, A/B tests show both variants side by side, and the REST API’s /api/v1/stats returns active subscribers, new this week, and 30-day deliveries and clicks. For deeper analysis, use UTM tags, browser events and webhooks.
Can I see who clicked a push notification?
You see subscription-level click status and aggregated stats, not names. Use UTM tags to see what clickers did on your site.
What’s a good benchmark to watch?
Your own trend: compare each campaign to your median CTR for similar messages rather than chasing industry averages.
Keep reading
Push notification click-through rate (CTR), explained
How to calculate CTR consistently, why benchmarks disagree and ten practical ways to raise it.
Push notification opt-in rate: measure it, then raise it
How to measure opt-in at each step, why Chrome may quiet your prompt, and ways to raise sign-ups.
Writing and scheduling push campaigns
Copy length, images, links, timing, frequency and how to read your stats.
Push notification deliverability: what really affects delivery
Expired subscriptions, TTL, offline devices, Focus modes and worker errors — and how to fix each.
More in Growth: The push opt-in prompt, done right · Push notifications for online stores · How to get more push notification subscribers · Switching web push providers: a practical migration plan · Win-back push notifications that bring people back · Push notifications vs. pop-ups · All guides
Free for life. No limits.
Unlimited subscribers, campaigns and automations. No badges. About five minutes to install.