[aerogear-dev] [UPS] Advanced Analytics

Andres Galante agalante at redhat.com
Mon Apr 13 08:45:09 EDT 2015


Hi!

I've done a few changes:
http://andresgalante.com/ups-console/app-detail-analytics.html

- Added tooltips to make it easier to understand.

- Added a ration sent /open the larger that number the more successful is
your campaign.

- Moved date selector to the top instead of just filtering the chart, does
that make sense?

Thanks!


On Thu, Apr 9, 2015 at 9:51 AM, Luke Holmquist <lholmqui at redhat.com> wrote:

>
>
> On Thu, Apr 9, 2015 at 3:27 AM, Matthias Wessendorf <matzew at apache.org>
> wrote:
>
>> since APNs, and GCM can be used for Desktop and browsers, I don't like
>> the word device here. It's more an installation (that's the origin of this
>> name actually)
>>
> #Agreed
>
>>
>> On Thu, Apr 9, 2015 at 9:15 AM, Sebastien Blanc <scm.blanc at gmail.com>
>> wrote:
>>
>>>
>>>
>>> On Wed, Apr 8, 2015 at 6:57 PM, Andres Galante <agalante at redhat.com>
>>> wrote:
>>>
>>>> Sebi, I just change the demo.
>>>>
>>> I like it more, but I wonder about the stacked bars again, not sure it
>>> is the best visually, maybe having the 2 bar side-by-side like here
>>> http://c3js.org/samples/chart_bar.html or what I really would like to
>>> see but I could not find it in c3 is : the 2 bars superposed a bit like
>>> this http://i.stack.imgur.com/0hjX7.png
>>>
>>>>
>>>> I now understand what you mean, and you are right its hard to explain
>>>> it in a short word.
>>>>
>>> Yes  , what about "Sent out to <number> devices"  ?
>>>
>>>> If we want we can ask someone from marketing, they have a hole sub team
>>>> dedicated to writing.
>>>>
>>>> Parse uses "Push Notifications"
>>>>
>>>> http://blog.parse.com/2013/03/18/introducing-push-analytics-improved-insight-into-push-campaigns/
>>>>
>>>> Urban Airship uses "Total Pushes sent"
>>>> http://urbanairship.com/products/mobile-analytics
>>>>
>>>>
>>>>
>>>> On Wed, Apr 8, 2015 at 1:46 PM, Matthias Wessendorf <matzew at apache.org>
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Wed, Apr 8, 2015 at 6:05 PM, Andres Galante <agalante at redhat.com>
>>>>> wrote:
>>>>>
>>>>>> Do we always successful deliver messages to all registered devices?
>>>>>>
>>>>>
>>>>> no, it's not even us. we just give the payload to the networks. They
>>>>> all (APNS, GCM, Windows) have no SLA for actual delivery.
>>>>>
>>>>> All what we can say is:
>>>>> delivered "payload" to APNs for distribution to n devices
>>>>>
>>>>> Once they open the app, our server is hit, and we know: n devices did
>>>>> receive it
>>>>>
>>>>>
>>>>>>
>>>>>> On Wed, Apr 8, 2015 at 12:51 PM, Matthias Wessendorf <
>>>>>> matzew at apache.org> wrote:
>>>>>>
>>>>>>> Again, I doubt that there will be 3k of messages per app, a day.
>>>>>>> That would mean your "ESPN Sports News" app would send you 3k
>>>>>>> messages - joy, he?
>>>>>>>
>>>>>>> I wonder how the charts would look on more realistic data:
>>>>>>> 500.000 devices
>>>>>>> 1 push message a day (delivered to all 500k)
>>>>>>> opened by 250k, same day
>>>>>>>
>>>>>>>
>>>>>>> Now if I sent two messages: Breaking news A, Breaking news B
>>>>>>> How would I see how many directly opened "Breaking news A" (or the
>>>>>>> other one)?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Apr 8, 2015 at 5:44 PM, Andres Galante <agalante at redhat.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Good idea! take a look:
>>>>>>>>
>>>>>>>>
>>>>>>>> https://rawgit.com/andresgalante/UPS/master/app-detail-analytics.html
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Apr 8, 2015 at 12:24 PM, Sébastien Blanc <
>>>>>>>> scm.blanc at gmail.com> wrote:
>>>>>>>>
>>>>>>>>> I wonder if a bar chart (even maybe stacked bar) would not be more
>>>>>>>>> clear to show this data ?
>>>>>>>>> Wdyt ?
>>>>>>>>>
>>>>>>>>> Envoyé de mon iPhone
>>>>>>>>>
>>>>>>>>> Le 8 avr. 2015 à 15:44, Andres Galante <agalante at redhat.com> a
>>>>>>>>> écrit :
>>>>>>>>>
>>>>>>>>> Yes, you are right, it should be something like:
>>>>>>>>>
>>>>>>>>> 5 message sent
>>>>>>>>> 3k delivered
>>>>>>>>> 2k open
>>>>>>>>> 4k devices.
>>>>>>>>>
>>>>>>>>> Just change the example. Also the x-axis should be dates.
>>>>>>>>>
>>>>>>>>> Thanks!
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Apr 8, 2015 at 10:32 AM, Matthias Wessendorf <
>>>>>>>>> matzew at apache.org> wrote:
>>>>>>>>>
>>>>>>>>>> One thing: I think the numbers on the chart are confusing, and
>>>>>>>>>> incorrect.
>>>>>>>>>> It's usually not a ton of messages that are sent. that's more
>>>>>>>>>> like 5 or 10 per day (speaking of vanilla marketing pushes). If more, I'd
>>>>>>>>>> UNINSTALL the damn app.
>>>>>>>>>> Therefore the "app opened due to receiving push" numbers are also
>>>>>>>>>> not 100% correct here.
>>>>>>>>>>
>>>>>>>>>> On Wed, Apr 8, 2015 at 2:59 PM, Matthias Wessendorf <
>>>>>>>>>> matzew at apache.org> wrote:
>>>>>>>>>>
>>>>>>>>>>> :-) I like that too.
>>>>>>>>>>>
>>>>>>>>>>> But Andres, again, awesome UX !
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Apr 8, 2015 at 2:46 PM, Sebastien Blanc <
>>>>>>>>>>> scm.blanc at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Apr 8, 2015 at 2:37 PM, Lukáš Fryč <
>>>>>>>>>>>> lukas.fryc at gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Looks good so far, Andres,
>>>>>>>>>>>>>
>>>>>>>>>>>>> you are right, we want to show time-aggregated data, not
>>>>>>>>>>>>> particular events.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Idea:
>>>>>>>>>>>>> My perspective might be very technical rather then marketing,
>>>>>>>>>>>>> but a pie chart with Push Network split would be interesting to me.
>>>>>>>>>>>>>
>>>>>>>>>>>> +1 (or Donut :) )
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> st 8. 4. 2015 v 14:12 odesílatel Andres Galante <
>>>>>>>>>>>>> agalante at redhat.com> napsal:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> With the new data we have I've compared sent vs open messages
>>>>>>>>>>>>>> on a chart for each App:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> https://rawgit.com/andresgalante/UPS/master/app-detail-analytics.html
>>>>>>>>>>>>>> (the x axis should be dates)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I am wondering if we can generate a ratio that's useful for a
>>>>>>>>>>>>>> marketing person and show a benchmark comparing with other UPS users to
>>>>>>>>>>>>>> know if the users campaign is successful or not. Something like: open/sent
>>>>>>>>>>>>>> or device/open
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I believe that to show the first and last time a message was
>>>>>>>>>>>>>> open is not very useful. Maybe I am wrong, but, If we want to show an over
>>>>>>>>>>>>>> time chart for each notification we should collect periodical data, for
>>>>>>>>>>>>>> example # of open messages per hour to generate a linear graph that
>>>>>>>>>>>>>> represents a day.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> What do you think?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Mon, Mar 30, 2015 at 5:00 PM, Sébastien Blanc <
>>>>>>>>>>>>>> scm.blanc at gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 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
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Matthias Wessendorf
>>>>>>>>>>>
>>>>>>>>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>>>>>>>>> sessions: http://www.slideshare.net/mwessendorf
>>>>>>>>>>> twitter: http://twitter.com/mwessendorf
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Matthias Wessendorf
>>>>>>>>>>
>>>>>>>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>>>>>>>> sessions: http://www.slideshare.net/mwessendorf
>>>>>>>>>> twitter: http://twitter.com/mwessendorf
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> aerogear-dev mailing list
>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> aerogear-dev mailing list
>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> aerogear-dev mailing list
>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Matthias Wessendorf
>>>>>>>
>>>>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>>>>> sessions: http://www.slideshare.net/mwessendorf
>>>>>>> twitter: http://twitter.com/mwessendorf
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> aerogear-dev mailing list
>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> aerogear-dev mailing list
>>>>>> aerogear-dev at lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Matthias Wessendorf
>>>>>
>>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>>> sessions: http://www.slideshare.net/mwessendorf
>>>>> twitter: http://twitter.com/mwessendorf
>>>>>
>>>>> _______________________________________________
>>>>> aerogear-dev mailing list
>>>>> aerogear-dev at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> aerogear-dev mailing list
>>>> aerogear-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>
>>>
>>>
>>> _______________________________________________
>>> aerogear-dev mailing list
>>> aerogear-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>
>>
>>
>>
>> --
>> Matthias Wessendorf
>>
>> blog: http://matthiaswessendorf.wordpress.com/
>> sessions: http://www.slideshare.net/mwessendorf
>> twitter: http://twitter.com/mwessendorf
>>
>> _______________________________________________
>> aerogear-dev mailing list
>> aerogear-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>
>
>
> _______________________________________________
> 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/20150413/85811e73/attachment-0001.html 


More information about the aerogear-dev mailing list