second try - as the first thread was hijacked around other discussions.

For a first round of collecting some more data around the usage of the push server (aka analytics/metrics), I'd propose we keep it very simple!

Overall, I see one major area of interest:
*metrics around push messages being sent:
- time of sending (using timezone of the server?)
- group of receivers (e.g. everyone or the provided cirterias(e.g. alias, categories,...))
- payload (the entire payload, including custom keys - not only alert, sound, badge etc)
- info on: "could we deliver to the 3rd party networks?"

This is a nice feature, and would enrich the UPS. The server will have a RESTful endpoint, and an UI for displaying the data. The view would be bascially a history for all the push sent (per "Push Application" construct).

However, I can see also some interest around device specific metrics:

Today we obivously store all the registered devices, but we also remove them from the database table if needed (to not send messages to phones that would no longer receive them anyways).

Something that would be interesting as well, might be the following data:
- how often was an app has reached the push server  (note: every time the app starts, the metadata of the server is being updated (see [2])
- number of device-tokens / registrationIDs that have been removed, when receiving errors from Apple/Google (see [3] or [4])
- number of devices, that were activly removed using our APIs (supported only on Android/SimplePush due to Apple policy, see [5])

While the initial focus should be around the message related metrics, capturing some device data is nice too.

Any thoughts ? 


PS: Oh, for the longer run(...), I'd also like to see metrics like "was mobile app opened due to a push notification". BUT that also requires some more work/reseach on the client Push SDKs. But seriously, this is not a priority for the next few months! 

[1] https://issues.jboss.org/browse/AGPUSH-116
[2] https://github.com/aerogear/aerogear-unifiedpush-server/blob/master/jaxrs/src/main/java/org/jboss/aerogear/unifiedpush/rest/registry/installations/InstallationRegistrationEndpoint.java#L98-L112
[3] https://github.com/aerogear/aerogear-unifiedpush-server/blob/master/push/src/main/java/org/jboss/aerogear/unifiedpush/message/sender/APNsPushNotificationSender.java#L87-L94
[4] https://github.com/aerogear/aerogear-unifiedpush-server/blob/master/push/src/main/java/org/jboss/aerogear/unifiedpush/message/sender/GCMPushNotificationSender.java#L93-L94
[5] https://github.com/aerogear/aerogear-unifiedpush-server/blob/master/jaxrs/src/main/java/org/jboss/aerogear/unifiedpush/rest/registry/installations/InstallationRegistrationEndpoint.java#L117-L119

Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf