[aerogear-dev] [UPS] Advanced Analytics

Sébastien Blanc scm.blanc at gmail.com
Mon Mar 30 16:00:45 EDT 2015



Envoyé de mon iPhone

> Le 30 mars 2015 à 21:31, Daniel Passos <dpassos at redhat.com> a écrit :
> 
>> On Mon, Mar 30, 2015 at 12:29 PM, Sebastien Blanc <scm.blanc at gmail.com> wrote:
>> Folks ! 
>> 
>> For AGPUSH-969[1] and to kick off the discussions,  I started a small POC mainly focused on the backend. To sum up quickly : we want to know how many installations/users has  opened the application after that a Push Notification has been touched. 
> 
> Let me see if I understood. UPS will send a message to the client and when the message be *read* (instead of delivered), the client will send a message back to the UPS saying: "The message was read"?
>  
Yes , but let me be more specific here : us when the app is in the background or not running and that the user "tap" the notification 
>> So, the very first thing that had to be done was to give the Push Notification a unique identifier, so that we can track it and do the metrics on it.
> 
> +1. Not only us (UPS) but also the backend app
>  
>> For that, I have been using an existing model object that we have , the PushMessageInformation[2], and that is currently used to provide information for our dashboard.
>> This object has now some extra fields, like a appOpenCounter etc ... 
>> 
>> The ID of this PushMessageInformation is now passed into the payload of the Push Message, just before we send it,  this way the client library can use this ID to pass extra information to the UPS when a notification is touched. 
>> For this POC, I hijacked the cordova-helloworld, so that it extracts the ID from the payload and pass it as header when registering.
> 
> The message back (from client to UPS) will be send every time the user _read_ that?
Well normally that will only happen once per installation per Push message 
>  
>> When the UPS receive the request, it looks for the header and if it exist it updates the existing PushMessageInformation instance. 
>> 
>> Please note, that for this POC, all is happening on Application level and not on Variant level but that can be easily changed. It depends on how fined grained we want to have these analytics.
>> 
>> I did a small screencast that shows this in action : https://www.youtube.com/watch?v=PseBBJZLz6s&feature=youtu.be
>> 
>> The UPS branch containing the changes is here (the 2 latests commits are relevant) : https://github.com/sebastienblanc/aerogear-unified-push-server/tree/analytics
>> 
>> The client app is not really relevant since I really hacked badly the app (and the push plugin) ;) , however if interested I may share it.
>> 
>> Now, let's discuss :)
>> 
>> Sebi
>> 
>> [1] https://issues.jboss.org/browse/AGPUSH-969
>> [2] https://github.com/aerogear/aerogear-unifiedpush-server/blob/master/model/api/src/main/java/org/jboss/aerogear/unifiedpush/api/PushMessageInformation.java
>> 
>> _______________________________________________
>> aerogear-dev mailing list
>> aerogear-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
> 
> 
> 
> -- 
> -- Passos
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20150330/b78aa8e2/attachment.html 


More information about the aerogear-dev mailing list